请教老师关于分段止盈的排序问题

    有个问题还没弄明白,就是分段止盈的时候,触发阈值的排序问题,从小到大,和从大到小,我都回测过,但是结果不一样,为什么?实盘时又该如何正确排序,才能保证和回测结果一样,谢谢老师。比如:

   Numeric StartPro1(2);  //1级跟踪止盈,盈利2%启动

Numeric StopPro1(50); //1级跟踪止盈,盈利回撤50%触发

Numeric StartPro2(4); //2级跟踪止盈,盈利4%启动

Numeric StopPro2(30);  //2级跟踪止盈,盈利回撤30%触发

Numeric StartPro3(6); //3级跟踪止盈,盈利6%启动

Numeric StopPro3(10);  //3级跟踪止盈,盈利回撤10%触发

从大到小

  If(MarketPosition >0 && CurrentBar > entBar) 
		{
			If(HighAfterEntry[1] >= LastEntryPrice * (1+ 0.01* StartPro3))
			{
				Stop_L = HighAfterEntry[1] * (1- 0.01 * StopPro3) + LastEntryPrice *0.01 * StopPro3 ;
			}Else
			If(HighAfterEntry[1] >= LastEntryPrice * (1+ 0.01* StartPro2))
			{
				Stop_L = HighAfterEntry[1] * (1- 0.01 * StopPro2) + LastEntryPrice *0.01 * StopPro2 ;
			}Else
			If(HighAfterEntry[1] >= LastEntryPrice * (1+ 0.01* StartPro1))
			{
				Stop_L = HighAfterEntry[1] * (1- 0.01 * StopPro1) + LastEntryPrice *0.01 * StopPro1 ;
			}Else
			{
				Stop_L = 0 ;
			}
		}

从小到大

 If(MarketPosition >0 && CurrentBar > entBar) 
		{
		    If(HighAfterEntry[1] >= LastEntryPrice * (1+ 0.01* StartPro1))
			{
				Stop_L = HighAfterEntry[1] * (1- 0.01 * StopPro1) + LastEntryPrice *0.01 * StopPro1 ;
			}Else
			If(HighAfterEntry[1] >= LastEntryPrice * (1+ 0.01* StartPro2))
			{
				Stop_L = HighAfterEntry[1] * (1- 0.01 * StopPro2) + LastEntryPrice *0.01 * StopPro2 ;
			}Else
			If(HighAfterEntry[1] >= LastEntryPrice * (1+ 0.01* StartPro3))
			{
				Stop_L = HighAfterEntry[1] * (1- 0.01 * StopPro3) + LastEntryPrice *0.01 * StopPro3 ;
			}Else
			{
				Stop_L = 0 ;
			}
		}


关于dataframe的排序问题,每个dataframe第二次排序的时候会出问题。
请教老师关于000和888的使用问题
关于指标用于品种排序
分段新建优化任务??
请教老师关于序列变量问题
关于Stop函数止盈止损的历史回测问题
关于止损止盈的写法
请教老师多图层排序后执行的顺序
请教老师,关于套利,自己系统如何与帮助中的代码结合
请老师看看为何排序总是出错

代码的执行顺序是从上到下的,所以判断顺序也是先执行上面的判断再执行下面的。如果进了上面的,下面的进不去了

还是不太明白,那这个分段止盈到底应该怎么排序?从大到小,还是从小到大?