I am trying to trigger an entry when the signal is cross above a level but it doesn't want to trigger. I have paste the same code in a different section of the program and worked fine.
if(Position.MarketPosition == MarketPosition.Flat // [utting in place the 1 entry signal
&& entry_short == 0
&& Close[0] < entry_long // lower than the entry threshold - the entire code should be skipped if entry threshold not reached
&& sumFilled_long == 0
&& long_enable == true
&& entry_long !=0
&& firsttimeinloop == false)
{
entry_long_modified = entry_long + abosolutetoentry *TickSize;
Print(" 1st time in loop entry_long_modified: " + entry_long_modified + " entry_long : " + entry_long);
firsttimeinloop = true;
}
else if (Position.MarketPosition == MarketPosition.Flat //updating the entry signal as the future move lower
&& entry_short == 0
&& Close [0] < entry_long
&& sumFilled_long == 0
&& long_enable == true
&& entry_long !=0
&& firsttimeinloop == true
&& Close[0] < candlelow ) // previous close is lower than the candle low then move by that amount the entry.
{
entry_long_modified = Close[0] + abosolutetoentry *TickSize;
candlelow = Close[0];
Print("update entry_long_modified: " + entry_long_modified + " entry_long : " + entry_long + " candlelow : " + candlelow);
}
Print(" Test for entry position entry_long_modified : " + entry_long_modified +" Close : " + Close[0] + " Cross above :" + CrossAbove (Close, entry_long_modified,1) );
if (Position.MarketPosition == MarketPosition.Flat // entry position if crossing up the last entry long modified
&& entry_short == 0
&& CrossAbove (Close, entry_long_modified,1)
&& sumFilled_long == 0
&& long_enable == true
&& entry_long !=0 )
{
EnterLong(Quantity , @"LongEntry");
Print(" entry position entry_long_modified: " + entry_long_modified + " entry_long : " + entry_long + " candlelow : " + candlelow);
sumFilled_long = 1;
}
Log
Here the portion of the code that trigger the entry and the cross over
Print(" Test for entry position entry_long : " + entry_long +" Close : " + Close[0] + " Cross below :" + CrossBelow (Close, entry_long,1) );
if(Position.MarketPosition == MarketPosition.Flat
&& entry_short == 0
&& CrossBelow (Close,entry_long,1)
&& sumFilled_long == 0
&& long_enable == true
&& entry_long !=0 )
{
EnterLong(Quantity , @"LongEntry");
sumFilled_long = 1;
}
Print(" Test for entry position entry_short : " + entry_short +" Close : " + Close[0] + " Cross above :" + CrossAbove (Close, entry_short,1) );
if( Position.MarketPosition == MarketPosition.Flat
&& entry_short != 0
&& entry_long == 0
&& sumFilled_short == 0
&& short_enable == true
&& CrossAbove (Close, entry_short,1))
{
EnterShort(Quantity, @"ShortEntry");
sumFilled_short = 1;
}


Comment