利用A函数报单,trade_mark的作用

老师:

      在30分钟周期的K线上利用A函数报单后,trade_mark=False;那么,是不是在5分钟周期上不能再报单了?

       如何做到30分钟周期上trade_mark标识为False时,5分钟周期的K线上还能报单?

      请指导,谢谢!

多周期数据引用时,A函数发单与trade_mark的问题
希望每个函数的文档能标注作用的事件域
利用A函数读取可用资金控制仓位的问题
“把双均线策略改写成A函数报单”的意义是什么呢?
IF作用域
报单编号
利用a函数没有顺利的读出帐户信息
怎么处理自动报单交易
TBQ有个bug,FileDelete 这个函数不起作用,请改正
报单索引值的使用问题

trade_mark自己定义的变量吗?

建议你贴完整的代码上来看


Params

……



Vars

……

   Global Bool trade_mark;




Events

   

   OnInit()

   {


   }

   

   onBar(ArrayRef<Integer> indexs)

   {

       MP = MarketPosition;

       Range[0:7]

       {

           //交易指标计算

           ……


           //开多仓条件计算

           If(MarketPosition == 0 And BarsSinceExit >= 0 And MA5 / MA5[1] > MA10 / MA10[1])

           {

               If(MACDDiff[1] > MACDDiff[2] )

               {

                   Buy(1 , Max(O, MA5), Enum_Signal_NotSend());

                   myEntryPrice = Max(O, MA5);

               }

           }

……

           Buyksign = 0;    

           IF(MP[1] == 0 And MarketPosition == 1)

           {

               Buyksign = 1;

           }

   

           //开空仓条件计算

           If(MarketPosition == 0 And BarsSinceExit >= 0 And MA5[1] / MA5 > MA10[1] / MA10)

           {

               If(MACDDiff[1] < MACDDiff[2])

               {

                   Sellshort(1, Min(O, MA5), Enum_Signal_NotSend());

                   myEntryPrice = Min(O, MA5);

               }

           }

……

           Sellksign = 0;

           IF(MP[1] == 0 And MarketPosition == -1)

           {

               Sellksign = 1;

           }

   


           //平多仓条件计算

           If(MarketPosition == 1 And BarsSinceEntry >= 1)

           {

               If(MACDDiff < MACDDiff[1] or MA20 < MA20[1])

               {

                   Sell(0, Min(O, MA5), Enum_Signal_NotSend());

                   ExitPrice == Min(O, MA5);

               }

           }

……

           Sellpsign = 0;    

           IF(MP[1] == 1 And MarketPosition == 0)

           {

               Sellpsign = 1;

           }


           //平空仓条件计算

           If(MarketPosition == -1 And BarsSinceEntry >= 1)

           {

               if(MACDDiff > MACDDiff[1] or MA20 > MA20[1])

               {

                   Buytocover(0, Max(O, MA5), Enum_Signal_NotSend()) ;

                   ExitPrice == Max(O, MA5);

               }

           }

 ……


           Buypsign == 0;

           IF(MP[1] == -1 And MarketPosition == 0)

           {

               Buypsign = 1;

           }

   

           if(MarketPosition == MP[1])

           {

               Buyksign = Buyksign[1];

               Sellksign = Sellksign[1];

               Buypsign = Buypsign[1];

               Sellpsign = Sellpsign[1];

           }

       }

       

       

//A函数下单

//各图层周期:0-5M,1-15M,2-30M,3-60M,4-120M,5-D,6-1M

//A函数开多仓

       if ((currenttime > 0.090030 And currenttime < 0.145930) or (currenttime > 0.210030 And currenttime < 0.232930))

       {

           If(A_BuyPosition == 0 And A_SellPosition == 0 And (data1.Buyksign == 1 or data2.Buyksign == 1))

           {

               IF(((data5.K > data5.D And data4.K > data4.D) And data0.K < 80) And trade_mark)  

               {

                   array<Integer> orderids;

                   A_SendOrderEx(Enum_Buy, Enum_Entry, VolT, O, orderids);

                   myEntryPrice = O;

                   trade_mark = False;

               }

           }


//A函数开空仓

           If(A_BuyPosition == 0 And A_SellPosition == 0 And (data1.Sellksign == 1 or data2.Sellksign == 1))

           {

                IF(((data5.K < data5.D And data4.K < data4.D) And data0.K > 20) And trade_mark)

               {

                   array<Integer> orderids;

                   A_SendOrderEx(Enum_Sell, Enum_Entry, VolT, O, orderids);

                   myEntryPrice = C;

                   trade_mark = False;

               }

           }

   

//A函平多仓

           If(data4.MarketPosition == 1 And A_BuyPosition == 1 And data1.Sellksign ==1)

           {

               IF(data1.K < data1.D And trade_mark)

               {

                   array<Integer> orderids;

                   A_SendOrderEx(Enum_Sell, Enum_Exit, VolT, O, orderids);

                   trade_mark = False;

               }

           }

//应对开多仓信号消失

           If(data2.MarketPosition == 0 And data1.MarketPosition == 0 And A_BuyPosition == 1 And data6.Sellpsign == 1)

           {

               IF(data6.K < data6.D And trade_mark)

               {

                   array<Integer> orderids;

                   A_SendOrderEx(Enum_Sell, Enum_Exit, VolT, O, orderids); //平多单

                   trade_mark = False;

               }

           }

   

//A函数平空仓

           If(data4.MarketPosition == -1 And A_SellPosition == -1 And data1.Buyksign == 1)

           {

               IF(data1.K > data1.D And trade_mark)

               {

                   array<Integer> orderids;

                   A_SendOrderEx(Enum_Buy, Enum_Exit, VolT, O, orderids);

                   trade_mark = False;

               }

           }


//应对开空仓信号消失

           If(data2.MarketPosition == 0 And data1.MarketPosition == 0 And A_SellPosition == -1 And data6.Buypsign == 1)

           {

               IF(data6.K > data6.D And trade_mark)

               {

                   array<Integer> orderids;

                   A_SendOrderEx(Enum_Buy, Enum_Exit, VolT, O, orderids); //平pw 单

                   trade_mark = False;

               }

           }                

       }

   }

   onBarOpen(ArrayRef<Integer> indexs)

   {

       trade_mark = True;

   }    

麻烦老师给看看,开仓单能正常发单,但平仓单不能正常发单。

你这个代码编译不了