用A函数撤单问题---

//------------------------------------------------------------------------ // 简称: YBBDECLARYER // 名称: // 类别: 公式应用 // 类型: 用户应用 // 输出: Void //------------------------------------------------------------------------ Params Numeric Length1(5); Vars Series<Numeric> MA5; Global Array<Integer> oid; Events OnBar(ArrayRef<Integer> indexs) { MA5=Average(Close[1],Length1); } OnOrder(OrderRef ord) { If(ord.status==Enum_Declared And ord.orderId == oid[0] And MarketPosition>0 and close<ma5) { A_DeleteOrderV2(oid[0]); } If(ord.status==Enum_Declared And ord.orderId == oid[0] And MarketPositionn<0 And close>ma5) { A_DeleteOrderV2(oid[0]); } } 老师请问收盘价破5均线,就把挂单全撤,这样写错在哪里?谢谢

A函数不能和图表指令函数混在一起用。A函数撤单,也不会改变Marketposition的状态。

回复:Params //此处添加参数 Numeric length1(5); Vars Global Numeric CD(0); Global Map<Integer,Order> my_order; Series<Numeric> ma5; Events OnOrder(OrderRef ord) { my_order[ord.orderid]=ord; If(ord.status == Enum_Declared) { If(CD==1 Or CD==-1) A_DeleteOrderEx(ord.orderid); } } OnBar(ArrayRef<Integer> indexs) { MA5=Average(Close[1],Length1); If (MarketPosition>0 And Close[1]<MA5 ) { CD=1; } If( MarketPosition<0 And Close[1]>MA5 ) { CD=-1; } } 老师,我这样用一个全局变量放到A函数里好像也不行,那请问我要写收盘价破5均线就把所有单撤掉,应该怎么写?给我提供个思路也行,谢谢