写个半成品一运行就把TB干崩溃了
2022-08-30 22:18

Params
    String sym("lu2211.INE");
    Numeric N(5);

Vars
    Global Array<integer> OrderIds;
    Global Integer entryID;
    Global Integer DelID;
    Global Integer ordL1;    //首张多单ID
    Global Integer ordS1;    //首张空单ID
    Global Map<Integer,Order> array_order;
    Global Numeric midioff;
    Global Order myorder;
    Array<Integer> Array_temp;
Defs
    Integer LogFile(String str)
    {
        LogFile("D:\\"+FormulaName()+"["+dateTimeToString(SystemDateTime)+"] "+ str);
        Return 0;
    }
    
Events
    //此处实现事件函数
    
    //初始化事件函数,策略运行期间,首先运行且只有一次
    OnInit()
    {
        FileDelete("D:\\"+FormulaName());
        LogFile("Let's Go!");
        SubscribeBar( sym,"TICK",SystemDateTime);
        SubscribeBar( sym,"10s",SystemDateTime);
        entryID = CreateTimer(5000);
    }
    OnReady()
    {
        midioff=PriceScale*minmove;
    }
    OnTimer(Integer id,Integer millsecs)
    {
        Position my_pos;
        A_GetPosition(my_pos);
    
        If(my_pos.longCurrentVolume+my_pos.longActiveVolume+my_pos.longActiveCloseVolume+
             (my_pos.shortCurrentVolume+my_pos.shortActiveVolume+my_pos.shortActiveCloseVolume)<6)
        {
            LogFile("-----------------------------");
            LogFile(DateTimeToString(Date+time));
            LogFile("多头当前持仓"+Text(my_pos.longCurrentVolume));
            LogFile("多头未成交量"+Text(my_pos.longActiveVolume));
            LogFile("多头未成交平仓量"+Text(my_pos.longActiveCloseVolume));
            LogFile("空头当前持仓"+Text(my_pos.shortCurrentVolume));
            LogFile("空头未成交量"+Text(my_pos.shortActiveVolume));
            LogFile("空头未成交平仓量"+Text(my_pos.shortActiveCloseVolume));
            If(id==entryID)
            {
                If(Data1.close>data1.Open)
                {
                    A_SendOrderEx(Enum_Buy,Enum_Entry,1,Q_askPrice,orderIds);
                    ordL1=orderIds[0];
                    DelID=CreateTimer(3000);
                    LogFile("-----------------------------");
                    LogFile(DateTimeToString(Date+time));
                    LogFile("委买多1手,委托价: "+Text(Q_BidPrice));
                    LogFile("委托单编号: "+Text(orderIds[0]));        
                 }
            If(Data1.close<data1.Open)
            {
                A_SendOrderEx(Enum_Sell,Enum_Entry,1,Q_bidPrice,orderIds);
                 ordS1=orderIds[0];
                 DelID=CreateTimer(3000);            
                 LogFile("-----------------------------");
                 LogFile(DateTimeToString(Date+time));
                 LogFile("委卖空1手,委托价: "+Text(Q_AskPrice));
                 LogFile("委托单编号: "+Text(orderIds[0]));        
            }
            }
        }
        If(id==DelID)
        {
            Order myorder;
            A_GetOrder(orderIds[0],myorder);
            LogFile("-----------------------------");
            LogFile(DateTimeToString(Date+time));
            LogFile("委托单编号: "+Text(orderIds[0]));
            LogFile("委托单状态: "+Text(myorder.status));
            If(myorder.status==Enum_Declared&&myorder.orderId==ordL1)
            {
                A_DeleteOrder(ordL1);
                LogFile("-----------------------------");
                LogFile(DateTimeToString(Date+time));
                LogFile("委托已撤,编号: "+Text(orderIds[0]));
            }
            Else If(myorder.status==Enum_Declared&&myorder.orderId==ordS1)
            {
                A_DeleteOrder(ordS1);
                LogFile("-----------------------------");
                LogFile(DateTimeToString(Date+time));
                LogFile("委托已撤,编号: "+Text(orderIds[0]));
            }
            StopTimer(DelID);            
        }
    }
    OnFill(FillRef ordFill)
    {
        If(GetMapKeys(array_order,Array_temp) > 0)
        {
            Integer i;
            For i=0 to GetArraySize(Array_temp)-1
            {
                If(array_order[Array_temp[i]].side == Enum_Buy)
                    {
                     A_SendOrderEx(Enum_Sell,Enum_Exit,1,array_order[Array_temp[i]].price + N*midioff,OrderIds); //多单5跳止盈
                    }Else
                    {
                     A_SendOrderEx(Enum_Buy,Enum_Exit,1,array_order[Array_temp[i]].price - N*midioff,OrderIds); //空单5跳止盈    
                    }
            }    
        }
    }
    OnBar(ArrayRef<Integer> indexs)
    {
        
    }
 

评论区
hn0512

是我的浏览器自动翻译非汉语,所以我看到的代码都是汉语,我以为出错了

请各位老师看看哪写的不对,运行或打开K线就会把TB关闭,dmp文件已上传

2022-08-31 11:43
hn0512

我晕 ctrl+v,还是这样

2022-08-30 22:23
hn0512
2022-08-30 22:21
hn0512
2022-08-30 22:20
顶部