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

大神请进,帮忙看看代码逻辑上是否有问题 [开拓者 TB]

  • 咨询内容: 本帖最后由 zdyt5683 于 2016-6-7 13:35 编辑

    思路:20日均线,均线上买多,下卖空,持仓时碰线平仓,只允许持仓1手
    症状1:在没有空头持仓的情况下(有多头持仓),会发出买平指令。。。。。。
    症状2:有时候会连发N个开仓单
    1. Vars
    2.         //-----------------------------MACD变量
    3.         NumericSeries MACDValue;
    4.         NumericSeries AvgMACD;
    5.         NumericSeries MACDDiff;
    6.         Bool macd_dt(False);
    7.         Bool macd_kt(False);
    8.        
    9.         //-----------------------------均线变量
    10.         NumericSeries MA20;
    11.        
    12. Begin
    13.        
    14.         //-----------------------------MACD载入
    15.         MACDValue = XAverage( Close, 12) - XAverage( Close, 26 ) ;       
    16.         AvgMACD = XAverage(MACDValue,9);
    17.         MACDDiff = MACDValue - AvgMACD;
    18.        
    19.         //-----------------------------MACD判断
    20.         macd_dt=MACDDiff[1]>0;
    21.         macd_kt=MACDDiff[1]<0;
    22.        
    23.         //-----------------------------均线载入
    24.         MA20=Average(Close,20);
    25.         PlotNumeric("MA20",MA20,0,yellow);
    26.        
    27.        
    28.         //-----------------------------初始化全局变量8(持仓变量),同步为实际持仓
    29.         If(A_BuyPosition==0 And A_SellPosition==0) SetGlobalVar(8,0);
    30.         If(A_BuyPosition>0) SetGlobalVar(8,1);       
    31.         If(A_SellPosition>0) SetGlobalVar(8,-1);
    32.        

    33. //----------------------------------------------------------------------------------------开仓
    34.         If(A_BuyPosition==0 And A_SellPosition==0 And GetGlobalVar(8)==0)
    35.         {
    36.                 If(Close>MA20 And macd_dt)
    37.                 {
    38.                         A_SendOrder(Enum_Buy,Enum_Entry,1,Q_UpperLimit);
    39.                         SetGlobalVar(8,1);//全局8,持多仓为正
    40.                        
    41.                 }       
    42.                 If(Close<MA20 And macd_kt)
    43.                 {
    44.                          
    45.                         A_SendOrder(Enum_Sell,Enum_Entry,1,Q_LowerLimit);
    46.                         SetGlobalVar(8,-1);//全局8,持空仓为负
    47.                 }       
    48.         }
    49.        

    50. //----------------------------------------------------------------------------------------平仓
    51.                 If(A_BuyPosition>0 And GetGlobalVar(8)>0)//持多仓时
    52.                 {
    53.                         If(Close<=MA20)
    54.                         {
    55.                                 A_SendOrder(Enum_Sell,Enum_Exit,1,Q_LowerLimit);  
    56.                                 SetGlobalVar(8,0);
    57.                         }
    58.                          
    59.                 }
    60.                
    61.                 If(A_SellPosition>0 And GetGlobalVar(8)<0)//持空仓时
    62.                 {
    63.                         If(Close>=MA20)
    64.                         {
    65.                                
    66.                                 A_SendOrder(Enum_Buy,Enum_Exit,1,Q_UpperLimit);
    67.                                 SetGlobalVar(8,0);
    68.                                
    69.                         }
    70.                 }
    71.        
    72. End

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容