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