重新编译后同一时间开出很多单,有空单也有多单,价格也相差很远

请问老师,我用A函数写的策略,每次重新编译后同一时间开出很多单,有空单也有多单,价格也相差很远。我的策略开单都是按每次开一手。也不是由于tick变化引起的,它是同时开的单,价格也不一样。当然很多都是废单,价格太离谱。我想是不是因为重新编译后在这个Numeric millsecs(1000)时间段里的符合条件的会全开委托单?不然我想不到其它原因了。

请问下,我的空单有很多补平,多单没有
麻烦老师把文字部分(先平掉所有空单再开多单,先平掉所有多单再开空单)
多单开仓条件下,多单止损后如何不让再开多单
怎么做到开多单不平空单
能只开多单或者只开空单吗
在持有多单的情况下开空单如何表达
实现多空单同时存在问题?
buy指令只开了多单,但没有把原有的空单平仓。请问这样合理吗?
是否有函数能够获取该品种合约的空单和多单的持仓量。
单品种多策略比较

估计历史图表也发单了

试试用

BarStatus == 2 && QuoteStatus == Enum_QuoteStatus_RealTime

控制一下

你虽然描述了一些情况,但你想先解决什么问题呢?(你没有截图也没有代码)

//止盈止损代码    

   MinPoint = MinMove*PriceScale;

   MyEntryPriceBuy = A_BuyAvgPriceO;

   MyEntryPriceSell =A_SellAvgPriceO;  

    Print("多仓="+Text(A_BuyPosition)+"空仓="+Text(A_SellPosition));  

   Print("MyEntryPriceBuyO="+Text(MyEntryPriceBuyO)+"MyEntryPriceSellO="+Text(MyEntryPriceSellO))  ;

   Print("MyEntryPriceBuy="+Text(MyEntryPriceBuy)+"MyEntryPriceSell="+Text(MyEntryPriceSell))  ;  

   If(A_BuyPosition >= 1) // 有多仓的情况

   {      

       If(C >= MyEntryPriceBuy + TakeProfitSet*MinPoint) // 止赢条件表达式

       {

           Print("多仓止盈平仓");

           MyExitPrice = MyEntryPriceBuy + TakeProfitSet*MinPoint -TakeProfitOffset*MinPoint;

           // 如果该Bar开盘价即跳空触发,用开盘价代替  

           If(Open > MyExitPrice) MyExitPrice = Open -TakeProfitOffset*MinPoint;

           Array<Integer> orders;

           A_SendOrderEx(Enum_Sell, Enum_Exit, 1, MyExitPrice, orders);

       }Else If(C <= MyEntryPriceBuy - StopLossSet*MinPoint) // 止损条件表达式

       {

           Print("多仓止损平仓");

           MyExitPrice = MyEntryPriceBuy - StopLossSet*MinPoint - StopLossOffset*MinPoint;

           // 如果该Bar开盘价即跳空触发,则用开盘价代替

           If(Open < MyExitPrice) MyExitPrice = Open - StopLossOffset*MinPoint;

           Array<Integer> orders;

           A_SendOrderEx(Enum_Sell, Enum_Exit, 1, MyExitPrice, orders);

       }

   }

   Else If(A_SellPosition >=1) // 有空仓的情况

   {

       If(C <= MyEntryPriceSell - TakeProfitSet*MinPoint) // 止赢条件表达式

       {

           Print("空仓止盈平仓");

           MyExitPrice = MyEntryPriceSell - TakeProfitSet*MinPoint + TakeProfitOffset*MinPoint;

           If(Open < MyExitPrice) MyExitPrice = Open + TakeProfitOffset*MinPoint;

           Array<Integer> orders;

           A_SendOrderEx(Enum_Buy, Enum_Exit, 1, MyExitPrice, orders);

       }

       Else If(C >= MyEntryPriceSell + StopLossSet*MinPoint) // 止损条件表达式

       {

           Print("空仓止损平仓");

           MyExitPrice = MyEntryPriceSell + StopLossSet*MinPoint + StopLossOffset*MinPoint;

           If(Open > MyExitPrice) MyExitPrice = Open + StopLossOffset*MinPoint;

           Array<Integer> orders;

           A_SendOrderEx(Enum_Buy, Enum_Exit, 1, MyExitPrice, orders);

       }

   }

   //止盈止损代码

我单独刷了这个止盈止损代码,就是这里开出来的委托单

你虽然描述了一些情况,但你想先解决什么问题呢?(你没有截图也没有代码)