全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
用A函数撤单问题---
2023-02-14 21:29

//------------------------------------------------------------------------
// 简称: 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均线,就把挂单全撤,这样写错在哪里?谢谢

tblaocai

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

2023-02-14 23:56
qq124745646
@tblaocai


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均线就把所有单撤掉,应该怎么写?给我提供个思路也行,谢谢

2023-02-15 22:39
您未登录,请先 登录注册 后发表评论
顶部