OnBarcalose在跨周期有重大BUG。大家引起注意。
2023-04-17 08:51

Params

       Numeric NumberONE(1);                   //开仓数

Numeric Q(9);         //过阈值    9

Numeric N(120);        //分水岭    120  

Vars

       

       Series<Numeric> H1;

       Series<Numeric> L1;

       Series<Numeric> H2;

       Series<Numeric> L2;

       Series<Numeric> K1;

       Series<Numeric> K2;

       Series<Numeric> G;

       Series<Numeric> MA;

       Numeric MinPoint;

       Bool    Condition1;

       Bool    Condition2;

       Numeric Condition3;

       Numeric Condition4;

       Numeric Condition5;

       Numeric Condition6;  

           


Events

   OnInit()

{

SetbeginBarMaxCount(-1);

SubscribeBar(data0.symbol, \"5m\",Data0.BeginDateTime);

/*

Range[0:DataCount-1]

{

           AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权

AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格

SetOrderMap2MainSymbol(); //设置委托映射到主力

SetSlippage(Enum_Rate_PointPerHand,1); //设置滑点为2跳/手

SetOrderPriceOffset(0); //设置委托价为叫买/卖价偏移2跳

       SetInitCapital(1000000); //设置初始资金为X万

   }

   */

}


OnBarClose(ArrayRef<Integer> indexs)

{


Range[0 : DataCount - 1]

{

       H1 = IIF(H<H[2] And H[1]<H[2],H[2],0);

L1 = IIF(L>L[2] And L[1]>L[2],L[2],0);

If(H1>0) H2 = H1+2*MinPoint;

If(L1>0) L2 = L1-2*MinPoint;

K1 = IIF(C>H2,-1,IIF(C<L2,1,0));

If(K1<>0) K2 = K1;

MinPoint = MinMove*PriceScale;

G = IIF(K2==1,H2,L2);

MA = XAverage(C,N);

       }

       Range[1 : 1]

{

       Plotauto(\"data1.G\",data1.G,0,Yellow,Enum_Solid,Enum_Line,Enum_2Pix);

       Plotauto(\"data1.MA\",data1.MA,0,Red,Enum_Solid,Enum_Line,Enum_2Pix);

       }

       Range[0 : 0]

{

       //Plotauto(\"data1.G\",data1.G,0,Yellow,Enum_Solid,Enum_Line,Enum_2Pix);

      // Plotauto(\"data1.MA\",data1.MA,0,Red,Enum_Solid,Enum_Line,Enum_2Pix);

       }

}

   OnBar(ArrayRef<Integer> indexs)

   {

    Condition1 = data0.C[1]>data1.G[1] And data0.H>data0.H[1] And data0.H>data1.G[1]+Q*MinPoint ;

    Condition2 = data0.C[1]<data1.G[1] And data0.L<data0.L[1] And data0.L<data1.G[1]-Q*MinPoint ;

   

    Condition3 = Max(Max(Max(data0.H[1],data0.O),data1.G[1]+Q*MinPoint),data1.MA[1]);

    Condition4 = Min(Min(Min(data0.L[1],data0.O),data1.G[1]-Q*MinPoint),data1.MA[1]);

   

    Condition5 = Max(Max(data0.H[1],data0.O),data1.G[1]+Q*MinPoint);

    Condition6 = Min(Min(data0.L[1],data0.O),data1.G[1]-Q*MinPoint);

    If(MarketPosition == 1)  //平多

          {  

     If (Condition2 And BarsSinceEntry > 0  )

             Sell(0,Condition6);

      }

   

    If(MarketPosition == -1)  //平空

       {

      If (Condition1 And BarsSinceEntry > 0 )

      BuyToCover(0,Condition5);

           }  

   

       If(MarketPosition == 0 )

       {

       {  //开多

               If (Condition1 And data0.H>data1.MA[1] )

    Buy(NumberONE,Condition3);  

       }

    {  //开空

               If (Condition2 And data0.L<data1.MA[1])

               SellShort(NumberONE,Condition4);

               }

           }  

Commentary(\"浮动盈亏=\"+text(Portfolio_PositionProfit));//当前持仓浮动盈亏

       Commentary(\"建仓价格=\"+text(EntryPrice));//当前持仓建仓价格

       Commentary(\"净持仓=\"+text(MarketPosition));//当前持仓净持仓

   }

   

   

   

   

   

   


评论区
menghuzhiya

data-href=每节都听,而且也都下载了,反复看。。。。我再详细看看,谢谢老师详细讲解。

2023-04-17 10:15
menghuzhiya

kyover老师,我要是只运行data1图层的onbarclose,改怎么修改呢?针对跨周期?

2023-04-17 09:51
menghuzhiya

1

2023-04-17 08:53
顶部