Syntax
public bool ExitAtPrice(Bars bars, int bar, Position p, double price, string signalName)
Parameter Description
| Bars |
The Bars object |
| bar |
Bar number on which the position is being created
|
| p |
Position to close |
| price |
Exit price
|
| signalName |
Signal 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.
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
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");
}
}
}
}
}