I created a # region Position to define target and stop the long and short positions, then once # region OrderRouting, private void MenagerOrder. Then, in section protected override void OnBarUpdate () First, recall MenagerOrder (), then if I define the input. Why in the chart when I apply the strategy does not occur in transactions as MenagerOrder ()?
Here is the code I wrote:
CalculateOnBarClose = true;
# Region Position
private void GoLong ()
(
SetStopLoss (LongBuy "CalculationMode.Price, Low [2] - ATR (14) [0] * 0.3 * TickSize, false);
SetProfitTarget ("1st Step LongBuy" CalculationMode.Price, Close [0] + ATR (14) [0]);
Print ("level LongBUy Stop Loss");
)
private void GoShort ()
(
SetStopLoss (ShortSell "CalculationMode.Price, High [2] + ATR (14) [0] * 0.3 * TickSize, false);
SetProfitTarget ("1st Step ShortSell" CalculationMode.Price, Close [0] + ATR (14) [0]);
Print ("Stop Loss level ShortSell");
)
#region OrderRouting
private void MenagerOrder()
{
if (Position.MarketPosition == MarketPosition.Long)
{
if( High[0]> Position.AvgPrice + ATR (14)[0])
ExitLong(1, "1° Target LongBuy", "");
SetStopLoss("LongBuy",CalculationMode.Price,Positi on.AvgPrice,false);
}
if (Position.MarketPosition == MarketPosition.Short)
{
if( Low[0]< Position.AvgPrice - ATR (14)[0])
ExitShort(1, "1° Target ShortSell", "");
SetStopLoss("LongBuy",CalculationMode.Price,Positi on.AvgPrice, false);
}
protected override void OnBarUpdate()
{
MenagerOrder();
if (Position.MarketPosition == MarketPosition.Flat &&
CrossAbove(StochasticsFast(3, 14).K, StochasticsFast(3, 14).D, 1)
&& StochasticsFast(3, 14).D[0] >= 75)
{
EnterLong(2, " Long Stocastico");
Print (" long" );
}
if (Position.MarketPosition == MarketPosition.Flat &&
CrossBelow(StochasticsFast(3, 14).K, StochasticsFast(3, 14).D, 1)
&& StochasticsFast(3, 14).D[0] < 26)
{
EnterShort(2, " Short Stocastico");
Print (" short");
}
Thank you.
Ciao.
Italy

Comment