您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

为什么实盘与回测总差好几个点的价格 [开拓者 TB]

  • 咨询内容: Params        Numeric lots(1);        Numeric Length(6);        Numeric StopLossSet(2);        //Numeric TrailingStop(5);  // 跟踪止损百分比                Numeric AmplitudeSet(80);               
    Numeric XZ(16);       
    Numeric Offset(4);  
    Vars        Numeric stopPoint;        NumericSeries highChannel;        NumericSeries lowChannel;        NumericSeries rateOfHighToLow;//收盘价到的最低价 在 最高价到最低价的比列(N个Bar)        NumericSeries avgRateOfHTL;        NumericSeries doubleAvgRateOfHTL;                NumericSeries fastMA;        NumericSeries slowMA;                Bool bBuyCon;        Bool bSellCon;        NumericSeries tradeNum;                Numeric MinPoint;//最小价格调动点        Numeric StopProfitPrice;//止盈价格        NumericSeries HigherAfterEntry;//进场后,K线走势的最高价        NumericSeries LowerAfterEntry;//进场后,K线走势的最低价        Numeric StopLine(0);//止损、止盈线                Begin        If( High == Low) return ;         MinPoint = MinMove*PriceScale;                stopPoint = OpenD(1)*StopLossSet*0.01;                         If(Date != DATE[1])        {                highChannel = High;                lowChannel = Low;                //tradeNum = 0;        }Else        {                highChannel = Max(highChannel[1],High);                lowChannel = Min(lowChannel[1],Low);        }                        rateOfHighToLow = Abs(Close - Lowest(Low,3*Length))/(Highest(High,3*Length)-Lowest(Low,3*Length))*100;//收盘价与最低价占比整根K线的比例        avgRateOfHTL = SMA(rateOfHighToLow,Length,1); // 比例再平均        doubleAvgRateOfHTL = SMA(avgRateOfHTL,Length,1);// 比例再平均                //PlotNumeric("rateOfHighToLow",rateOfHighToLow);          //PlotNumeric("avgRateOfHTL",avgRateOfHTL);        //PlotNumeric("doubleAvgRateOfHTL",doubleAvgRateOfHTL);                fastMA = Average(Close,Length/2);           slowMA = Average(Close,Length);                   bBuyCon = avgRateOfHTL[1] > AmplitudeSet //占比大于80%  多是阳线或者上涨情况                           And fastMA[1] > slowMA[1] And Close[1] > fastMA[1] //两重均线判断是否是多头排列情况                           And highChannel[1]/lowChannel[1] < 1+0.001*XZ And MarketPosition != 1;  //当日振幅不大于 千XZ的值 防止突破价位已经不好        bSellCon = avgRateOfHTL[1] < 100 - AmplitudeSet //占比小于20%                           And fastMA[1] < slowMA[1] And Close[1] < fastMA[1]  //两重均线判断是否是空头排列情况                           And highChannel[1]/lowChannel[1] < 1+0.001*XZ And MarketPosition != -1;   //当日振幅不大于 千XZ的值 防止突破价位已经不好        If(bBuyCon == True)        {                //PlotString("bBuy","bBuy",Low,Red);               
    Buy(lots,Open -Offset*MinPoint);                Return;        }        If(bSellCon == True)        {                //PlotString("bSell","bSell",High,Green);                SellShort(lots,Open+Offset*MinPoint);                Return;        }                                //Commentary("bBuyCon = "+IIFString(bBuyCon,"True","false"));        //Commentary("bSellCon = "+IIFString(bSellCon,"True","false"));        //Commentary("(avgRateOfHTL) "+Text(avgRateOfHTL));                                  If(MarketPosition == 1 And Low <= AvgEntryPrice - stopPoint)        {                Sell(0,Min(Open,AvgEntryPrice - stopPoint)+Offset*MinPoint);                Return;                }       
    If(MarketPosition == -1 And High >= AvgEntryPrice + stopPoint)        {                BuyToCover(0,Max(Open,AvgEntryPrice + stopPoint)-Offset*MinPoint);                Return;        }          End

     

     来源:CXH99.COM

  • TB技术人员: 这代码没法看吧?
    可以先看一下信号发生的时间所在的价格与实盘委托价格是否接近?
    若不接近,原因是什么?公式的价格写得不合理?信号所在合约是指数而下单是主力?等等原因 

     

  • TB客服: 复制到软件下看看,价格怎么调成合理?

     

  • 网友回复: Params        
    Numeric lots(1);        
    Numeric Length(6);        
    Numeric StopLossSet(2);        Numeric TrailingStop(5);  // 跟踪止损百分比               
    Numeric AmplitudeSet(80);               
    Numeric XZ(16);      
    Numeric Offset(4);  
    Vars        
    Numeric stopPoint;        NumericSeries highChannel;        NumericSeries lowChannel;        NumericSeries rateOfHighToLow;//收盘价到的最低价 在 最高价到最低价的比列(N个Bar)        
    NumericSeries avgRateOfHTL;        NumericSeries doubleAvgRateOfHTL;                NumericSeries fastMA;        NumericSeries slowMA;                Bool bBuyCon;      
    Bool bSellCon;        NumericSeries tradeNum;                Numeric MinPoint;//最小价格调动点        Numeric StopProfitPrice;//止盈价格        NumericSeries HigherAfterEntry;//进场后,K线走势的最高价        NumericSeries LowerAfterEntry;//进场后,K线走势的最低价      
    Numeric StopLine(0);//止损、止盈线                Begin        
    If( High == Low) return ;         MinPoint = MinMove*PriceScale;                stopPoint = OpenD(1)*StopLossSet*0.01;                         If(Date != DATE[1])      
      {                highChannel = High;                lowChannel = Low;                //tradeNum = 0;        }Else        
    {                highChannel = Max(highChannel[1],High);                lowChannel = Min(lowChannel[1],Low);        }                        rateOfHighToLow = Abs(Close - Lowest(Low,3*Length))/(Highest(High,3*Length)-Lowest(Low,3*Length))*100;//收盘价与最低价占比整根K线的比例        avgRateOfHTL = SMA(rateOfHighToLow,Length,1); // 比例再平均        doubleAvgRateOfHTL = SMA(avgRateOfHTL,Length,1);// 比例再平均                //PlotNumeric("rateOfHighToLow",rateOfHighToLow);          //PlotNumeric("avgRateOfHTL",avgRateOfHTL);        //PlotNumeric("doubleAvgRateOfHTL",doubleAvgRateOfHTL);                fastMA = Average(Close,Length/2);           slowMA = Average(Close,Length);                   bBuyCon = avgRateOfHTL[1] > AmplitudeSet //占比大于80%  多是阳线或者上涨情况                           And fastMA[1] > slowMA[1] And Close[1] > fastMA[1] //两重均线判断是否是多头排列情况                           And highChannel[1]/lowChannel[1] < 1+0.001*XZ And MarketPosition != 1;  //当日振幅不大于 千XZ的值 防止突破价位已经不好      
    bSellCon = avgRateOfHTL[1] < 100 - AmplitudeSet //占比小于20%                           And fastMA[1] < slowMA[1] And Close[1] < fastMA[1]  //两重均线判断是否是空头排列情况                           And highChannel[1]/lowChannel[1] < 1+0.001*XZ And MarketPosition != -1;   //当日振幅不大于 千XZ的值 防止突破价位已经不好        
    If(bBuyCon == True)        {                //PlotString("bBuy","bBuy",Low,Red);               
    Buy(lots,Open -Offset*MinPoint);                Return;        }        If(bSellCon == True)        {                //PlotString("bSell","bSell",High,Green);                SellShort(lots,Open+Offset*MinPoint);                Return;        }                                //Commentary("bBuyCon = "+IIFString(bBuyCon,"True","false"));        //Commentary("bSellCon = "+IIFString(bSellCon,"True","false"));        //Commentary("(avgRateOfHTL) "+Text(avgRateOfHTL));                                  If(MarketPosition == 1 And Low <= AvgEntryPrice - stopPoint)        {                Sell(0,Min(Open,AvgEntryPrice - stopPoint)+Offset*MinPoint);                Return;                }      
    If(MarketPosition == -1 And High >= AvgEntryPrice + stopPoint)        {                BuyToCover(0,Max(Open,AvgEntryPrice + stopPoint)-Offset*MinPoint);                Return;        }         
    End

 

有思路,想编写各种指标公式,交易模型,选股公式,还原公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流或微信号:cxh99cxh99  进行 有偿收费 编写!

怎么收费,代编流程等详情请点击阅读!

(注:由于人数限制,QQ或微信请选择方便的一个联系我们就行,加好友时请简单备注下您的需求,否则无法通过。谢谢您!)


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容