程序报价,报价锚定不准。出现开仓偷价,附代码

/*

问题:进场价格抓取出现BUG,平仓的时候,也会出现BUG

主要是锁定的价格,当下开仓棒体如果无法给予,就无法延续到后面的棒体。


模型概要

级别15分钟图,商品,白银

1:出现向上跳空大于30跳,符合多单开仓条件

2:多单开仓价格算法: open - 3*(high[1]-low[1])*minpoint

3:平仓条件:

     盈利:40跳平仓, 止损:亏损20跳平仓。


*/


Params

   Numeric lots(10);      // 开仓手数

 

Vars

   Global Numeric MinPoint;     // 最小变动价位

   

   Global Numeric RR;//

   Global Numeric yy; //

   

   Global Numeric aa; // 状态变量

   Global Numeric bb; //

   

   Global Numeric ddEntryPrice;  // 多头开仓价格

   Global Numeric kkEntryPrice; // 空头开仓价格

   

   Global Numeric ddExitPrice;   // 多头止损价格A

   Global Numeric ddProfitPrice;  // 多头止盈价格A

   Global Numeric kkExitPrice;  // kong头止损价格B

   Global Numeric kkProfitPrice;     // kong头止盈价格B



Events


OnBarOpen(ArrayRef<Integer> indexs)

{

   MinPoint = MinMove * PriceScale;  // 判断跳空空间,大于30跳 开单模式成立

   

   if(open-close[1]>= 30)  // 向上跳空。

   {

       rr= 3*(high[1]-low[1])*minpoint; //计算开仓空间

       ddEntryPrice = open-RR*MinPoint;// 多单开仓价格计算

       ddProfitPrice = ddEntryPrice + 40*MinPoint ;

       ddExitPrice = open-20*MinPoint;

       

       buy(lots,max(low,ddEntryPrice));  // 实盘或模拟测试写法

       

       // 回测的时候,出现的问题如下。

       // 如果按上述的方式写 开仓代码,开盘单根棒体,如果不符合开仓条件,会偷价到最低价开仓。

       // 需要的结果是,如果开盘当根棒体没有合适的成交价,那么就等后面的棒体给予开仓价格,即可。

       //同理,这里的盈利价格和止损价格有时也抓不住平仓价格。

   }

}    //如果放在if条件外面写,有时会出现多伦开仓。


OnBar(ArrayRef<Integer> indexs)

{

   if(MarketPosition == 1 )

   {

       

       if(low <= ddExitPrice)

       {

           sell(lots, max(low, ddExitPrice));

            // 为反手做准备!

       }

       

       else if(high >= ddProfitPrice) // 止盈

       {

           sell(lots, min(high, ddProfitPrice));

       }

   }

}

这个代码,出现偷价,原本的意思,出现向上跳空,下行到开仓位置,进场,如果当根棒体不到开仓价格,等待即可

如果到下轮跳空,还没有到开仓价格,那么在符合条件的情况下,开仓价格自动更新,即可。

但现在数据复盘时候,有时候出现,没有到开仓价格,却在最低价格,偷价成交了。。

所以影响了回测数据的真实性。不知道有什么方法可以解决吗


为什么报价变成了涨停价/跌停价
代码是否有偷价问题
偷价问题
关于偷价
关于偷价问题
保存TICK报价到series类型变量中,调用出现问题。
如何避免偷价
如何进行【报价模板设置】
关于偷价的问题
关于策略是否偷价问题

。。。你这一大堆global变量谁教你的

全局变量实时变化,每次运行结果也会不同


😒

😆

哈哈哈哈哈哈哈哈哈

这不,想着调用方便。我回头修改下试下。