[Backtest] Not able to make ApplyStop(stopTypeLoss) to work

Hi Seniors -

My intent is to (backtest) generate Buy trigger based on first 5 Min Candle and then Apply Loss Stop based on 2% of Entry Price OR Low Of the Entry day (Which Ever is Smaller).

My base TF is 5Min.

Refer the Backtest output, it only Evaluating the "Long (Profit)" Stop and not the StopType Loss. Ofcourse, I am making some mistake but not able to figure out what is it.

Requesting for any help Please.

SetBarsRequired(100,0);

bi = Barindex();
fvb = FirstVisibleValue( bi );
lvb = LastVisibleValue( bi );


open_htf = TimeFrameGetPrice("O", inDaily, 0, expandFirst);
high_htf = TimeFrameGetPrice("H", inDaily, 0, expandFirst); 
low_htf = TimeFrameGetPrice("L", inDaily, 0, expandFirst);
close_htf = TimeFrameGetPrice("C", inDaily, 0, expandFirst);
vol_htf = TimeFrameGetPrice("V", inDaily, 0, expandFirst);









up_bar = (open_htf <= close_htf);
down_bar = NOT up_bar;

dn = Day();
first_bar_cd = dn != Ref( dn, -1 );


_SECTION_BEGIN("Plot Price Chart");


condcol= IIf( up_bar, colorBrightGreen,  
		IIf( up_bar, colorBrightGreen,  
		IIf( down_bar,colorRed ,
		IIf(  down_bar, ColorRGB(234, 136, 123), //Light Red
		
		
		colorWhite
		) ) )

		)
		
		;


SetBarFillColor( condcol); // Color for Interiors of the CandleStick
Plot( C, "Price", condcol, styleCandle  | styleNoLabel  ); // Color of Outline of Candlestick

_SECTION_END();


true_range = (high_htf - low_htf);
body_range = abs( close_htf - open_htf );

body_fill =  body_range / true_range * 100;






lower_wick_range = (Min(close_htf, open_htf) - low_htf);

lower_wick_gap = lower_wick_range / true_range * 100;

upper_wick_range = (high_htf - max(close_htf, open_htf));

upper_wick_gap = upper_wick_range / true_range * 100;


close_htf_prev = ValueWhen(first_bar_cd, close_htf, 2); 
gap_open = ( open_htf - close_htf_prev) / close_htf_prev * 100;

starting_price_prev = Min(open_htf, close_htf);

starting_price_prev_prev = ValueWhen(first_bar_cd, starting_price_prev, 2); 
open_gapup = open_htf >= (starting_price_prev_prev * 0.995 );


close_htf_prev = ValueWhen(first_bar_cd, close_htf, 2); 

c_on_prev_close = ( close_htf - close_htf_prev) / close_htf_prev * 100;
c_on_curr_low = (close_htf - low_htf) / low_htf * 100;

true_range_prev = ValueWhen(first_bar_cd, true_range, 2); 
low_htf_prev = ValueWhen(first_bar_cd, low_htf, 2); 
c_on_prev_true_range = (close_htf - low_htf_prev) / true_range_prev * 100;




curr_bar_aroc = abs(close_htf - open_htf) / min(open_htf, close_htf) * 100; //ROC of an indivisual bar


v_comp = TimeFrameCompress(V, inDaily, compressVolume); 

v_ma_50_comp = MA(v_comp, 50);
v_ma_50_prev_comp = Ref(v_ma_50_comp, -1);
v_ma_50_prev = TimeFrameExpand(v_ma_50_prev_comp, inDaily, expandFirst);


v_ma_20_comp = MA(v_comp, 20);
v_ma_20_prev_comp = Ref(v_ma_20_comp, -1);
v_ma_20_prev = TimeFrameExpand(v_ma_20_prev_comp, inDaily, expandFirst);


rel_vol_20 = vol_htf / v_ma_20_prev * 100;
rel_vol_50 = vol_htf / v_ma_50_prev * 100;
rel_vol_20_prev = ValueWhen(first_bar_cd, rel_vol_20, 2); 






v_comp = TimeFrameCompress(V, inDaily, compressVolume); 

v_ma_50_comp = MA(v_comp, 50);
v_ma_50_prev_comp = Ref(v_ma_50_comp, -1);
v_ma_50_prev = TimeFrameExpand(v_ma_50_prev_comp, inDaily, expandFirst);


v_ma_20_comp = MA(v_comp, 20);
v_ma_20_prev_comp = Ref(v_ma_20_comp, -1);
v_ma_20_prev = TimeFrameExpand(v_ma_20_prev_comp, inDaily, expandFirst);


TimeFrameSet(inDaily); //Time Compressed
true_range_htf = (H - L);
body_range_htf = abs( C - O);

body_fill_htf =  body_range_htf / true_range_htf * 100;


body_fill_htf_ma_20_prev_comp = Ref( MA(body_fill_htf, 20), -1);
body_fill_htf_ma_20_prev = TimeFrameExpand(body_fill_htf_ma_20_prev_comp, inDaily, expandFirst);

body_fill_htf_ma_50_prev_comp = Ref( MA(body_fill_htf, 50), -1);
body_fill_htf_ma_50_prev = TimeFrameExpand(body_fill_htf_ma_50_prev_comp, inDaily, expandFirst);

TimeFrameRestore();




rel_body_20 = body_fill / body_fill_htf_ma_20_prev * 100;
rel_body_50 = body_fill / body_fill_htf_ma_50_prev * 100;

rel_body_20_prev =  ValueWhen(first_bar_cd, rel_body_20, 2); 





//Debug on Title

//if(Interval() == inDaily)
{
Title = EncodeColor(colorWhite) + 
"Strong Open" 
+ "\n" + "--- gap_open %: " + NumToStr(gap_open,1.1)
+ "\n" + "--- open_gapup : " + NumToStr(open_gapup,1) 
+ "\n" + "\n"

+ "Strength"
 + "\n" + "--- upper_wick_gap %: " + NumToStr(upper_wick_gap,1)
+ "\n" + "--- body_fill %: " + NumToStr(body_fill,1)
+ "\n" + "--- lower_wick_gap %: " + NumToStr(lower_wick_gap,1)
//+ "\n" + "--- ppv_up_bar %: " + NumToStr(ppv_up_bar,1) 
+ "\n" + "\n"

+ "Urgency" 
/*
+ "\n" + "--- rel_vol_1 %: " + NumToStr(rel_vol_1,1)
+ "\n" + "--- rel_body_1 %: " + NumToStr(rel_body_1,1)
+ "\n"
*/
+ "\n" + "--- rel_vol_20 %: " + NumToStr(rel_vol_20,1)
+ "\n" + "--- rel_body_20 %: " + NumToStr(rel_body_20,1)

/*
+ "\n" + "--- rel_vol_50 %: " + NumToStr(rel_vol_50,1)
+ "\n" + "--- rel_body_50 %: " + NumToStr(rel_body_50,1)
*/
+ "\n" + "\n"


+ "Contraction" 
+ "\n" + "--- rel_vol_20_prev %: " + NumToStr(rel_vol_20_prev,1)
+ "\n" + "--- rel_body_20_prev %: " + NumToStr(rel_body_20_prev,1)
+ "\n" + "\n"

+ "Risk" 
+ "\n" + "--- c_on_curr_low %: " + NumToStr(c_on_curr_low,1.1)
+ "\n" + "\n"


+ "Entry" 
+ "\n" + "--- c_on_prev_true_range %: " + NumToStr(c_on_prev_true_range,1)
+ "\n" + "\n"

+ "Misc" 
+ "\n" + "--- c_on_prev_close %: " + NumToStr(c_on_prev_close,1)
+ "\n" + "--- curr_bar_aroc %: " + NumToStr(curr_bar_aroc,1.2)
+ "\n" + "\n"

;

}
 















Buy = 
up_bar 
&& lower_wick_gap < 5 
&& body_fill > 50 
&& rel_vol_20 >= 7
&& rel_body_20 > 90
&& TimeNum() <= 091500
;






ATR_ma_length = Param("ATR MA", 14, 5, 50, 1 );
ATR_Multi_length = Param("ATR_Multi_length", 5, 5, 20, 1 );


c_comp = TimeFrameCompress(C, inDaily, compressLast);
c_comp_ma = MA(c_comp, ATR_ma_length);
c_expnd_ma = TimeFrameExpand(c_comp_ma, inDaily, expandFirst);

h_expand = TimeFrameGetPrice("H", inDaily, expandFirst);



BuyPrice = C;                        							
SellPrice = C;                        							

Sell = Short = Cover = 0;




PlotShapes(Buy*shapeUpTriangle, colorBrightGreen, 0, L, -80 );
PlotShapes(Sell*shapeDownTriangle,colorRed,0,High, 80);

// Plots Stops & Applies Stops


SetTradeDelays(0,0,0,0);

L_expand = TimeFrameGetPrice("L", inDaily, expandFirst);
Max_loss_stop_points = Min(BuyPrice * 0.98, L_expand); 

ApplyStop( stopTypeLoss, stopModePoint, Max_loss_stop_points, True );
ApplyStop( stopTypeProfit, stopModePercent, 20, True );

Equity( 1, 0 ); // evaluate stops, all quotes

InTrade = Flip( Buy, Sell );

SetOption("EveryBarNullCheck", True );











ok, after setting below as false, it worked.

SetOption( "ActivateStopsImmediately", False );