ExitAtPrice

Modified on 2013/05/11 10:59 by Eugene — Categorized as: Community Components

Syntax


public static bool ExitAtPrice(this WealthScript obj, Bars bars, int bar, Position p, double price, string signalName)

public bool ExitAtPrice(Bars bars, int bar, Position p, double price, string signalName)

Parameter Description

BarsBars object
barBar number on which the position is being created
pPosition to close
priceExit price
signalNameSignal name

Description

This function, created by Dion Kurczek, allows you to exit a Position at any specific price within the bar's range. It will trigger an alert correctly, although the alert will be displayed as a limit order for the price specified. The function returns true if the Position was closed. A key component in Wealth-Lab support for importing real (historical) trades.

Note: The function can't be used to enter trades outside of the bar's range.

Example

Below is a demo Strategy that shows how to use the function.

Example using C# extension methods:



using System; using System.Collections.Generic; using System.Text; using System.Drawing; using WealthLab; using WealthLab.Indicators;

namespace WealthLab.Strategies { public class AtPriceDemo : WealthScript { protected override void Execute() { // initialize your average series however you like DataSeries avgSer = 0.5 * Open + 0.5 * Close; /* In the trading loop here's the buy signal that uses your peeking data. It won't create an Alert because they're peeking results. Not a tradeable script! */ for(int bar = 1; bar < Bars.Count; bar++) { if (IsLastPositionActive) { if( true ) // some condition to exit at the average price this month this.ExitAtPrice(Bars, bar, LastPosition, avgSer[bar], "Out"); } else { if( true ) // some condition to buy at the average price this month this.EnterAtPrice(Bars, bar, avgSer[bar], PositionType.Long, "In"); } } } } }

Legacy syntax example:


using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
using Community.Components; // Support for enter/exit at price here
/*** Requires installation of Community.Components Extension from www.wealth-lab.com > Extensions ***/

namespace WealthLab.Strategies { public class AtPriceDemo: WealthScript { protected override void Execute() { // Create an instance of the PositionHelper class, passing WealthScript as "this" PositionHelper ph = new PositionHelper( this ); // initialize your average series however you like DataSeries avgSer = 0.5 * Open + 0.5 * Close; /* In the trading loop here's the buy signal that uses your peeking data. It won't create an Alert because they're peeking results. Not a tradeable script! */ for(int bar = 1; bar < Bars.Count; bar++) { if (IsLastPositionActive) { if( true ) // some condition to exit at the average price this month ph.ExitAtPrice(Bars, bar, LastPosition, avgSer[bar], "Out"); } else { if( true ) // some condition to buy at the average price this month ph.EnterAtPrice(Bars, bar, avgSer[bar], PositionType.Long, "In"); } } } } }