我在均线编程测试时发现一个问题,每当多定义一根均线后(仅仅是定义,还未画图),原来收益结果,就会产生改变。求指教!!!

各位大神,这里有个简单的均线策略问题求解。

问题描述:我在均线编程测试时发现一个问题,每当多定义一根均线后(仅仅是定义,还未画图),原来收益结果,就会产生改变。如以下代码,“//ma2 = Average(close,jx2);”     去除“//”后,原来收益结果就会改变,但这时还未进行过任何策略改变,无法理解,求指教!!!


代码如下:

//------------------------------------------------------------------------

// 简称: demo_10_50

// 名称:

// 类别: 公式应用

// 类型: 用户应用

// 输出: Void

//------------------------------------------------------------------------


Params

Numeric jx1(13);//短期参数

Numeric jx2(62);//中线参数


Numeric shul(101);//单手合约数量



Vars

series<Numeric> ma1;

series<Numeric> ma2;


   Bool bool_crossover;//上穿短线

   Bool bool_crossunder;//下穿短线



   Numeric ss;//开仓手数

   


Events

OnBar(ArrayRef<Integer> indexs)

{

ma1 = Average(close,jx1);

//ma2 = Average(close,jx2);

PlotNumeric(\"ma1\",ma1);

//PlotNumeric(\"ma2\",ma2);

   

       

       ss =  IntPart( Portfolio_CurrentEquity() / (close *shul*MarginRatio)) ;//通过当前组合权益、收盘价,计算可以开仓手数

       bool_crossover = close[1] <= ma1[1]  and close > ma1;

       bool_crossunder = close[1] >= ma1[1] and close < ma1;

     

//组合开仓策略      

       If(MarketPosition<>1 and bool_crossover)  

       {

        Buy(ss,close);

       }

   

       If(MarketPosition<>-1 and bool_crossunder)  

       {

        SellShort(ss,close) ;

       }

       

         

}



//------------------------------------------------------------------------

// 编译版本 2024/03/29 083636

// 版权所有 tbm2724503213

// 更改声明 TradeBlazer Software保留对TradeBlazer平台

// 每一版本的TradeBlazer公式修改和重写的权利

//------------------------------------------------------------------------

如何定义均线收敛?
在15分线求1小时均线
拜求!!请教高手:0日均线数值和图形结果的意义与实际影响(因为一个失误操作,领教了0日均线的存在)
均线对策略的控制问题
请教老师布林强盗中的自适应均线在实盘时如何做到每根K线减少参数1的?
求一下均线思路
单均线回测几个问题,奇怪。
两周期图层均线问题
定义一个变量,判断上次均线交叉后是否有开仓,若有开仓返回1,否则返回0。应该怎么写这个变量表达式?
关于均线输出的问题

非常感谢

tb有一个机制,检测图表最大回溯数量。比如20周均线,那么回溯数量就是20。根据代码里所有需要回溯的内容,找到最大的那个回溯数量,就是最大回溯数量。根据这个回溯数量n,会强制图表最开始的n根bar不出信号。

你因为加了一句均线计算,原来的最大回溯数量是13,那么就是图表最开始13根bar不出信号,加了以后是62,那么就变成最开始62根bar不出信号。如果你原来的策略逻辑,在图表第13根bar到第62根bar之间是有信号的,那么加了均线以后就没有信号了。

这是最有可能引起策略报告不一样的原因

你可以用return语句测试一下,在信号命令前面加一句,必须currentbar返回62以后才执行开平仓,再比较一下看看