打印本文打印本文 关闭窗口关闭窗口

限制日交易次数为1结果整个2年内交易次数为1,怎么搞的?

作者:金字塔 来源:cxh99.com 发布时间:2016年05月07日
  • 咨询内容:

    随便写了个日内策略,想限制一天内的交易次数为1次(多仓或者空仓,二选一,1次);但是测试了几次发现,整个测试期间2年才1笔交易!

    代码如下,求解!!

     

    VARIABLE:NUM=0;//统计交易次数用

    MA1:MA(C,5);
    MA2:MA(C,10);
    BUYCOND:=CROSS(MA1,MA2);
    BUYSHORTCOND:=CROSS(MA2,MA1);

     

    IF TIME=OPENTIME(0) THEN NUM=0;//每天开盘时置0

     

    IF TIME>091500 AND TIME<145500 AND HOLDING=0 AND NUM<=1 THEN //NUM<=1限制每天只能开仓1次
    BEGIN
      BUY(BUYCOND,1,MARKET);
      NUM=NUM+1;//标记开仓一次
    END

     

    IF TIME>091500 AND TIME<145500 AND HOLDING=0 AND NUM<=1 THEN
    BEGIN
      BUYSHORT(BUYSHORTCOND,1,MARKET);
      NUM=NUM+1;//标记开仓一次
    END

    IF TIME>=145500 THEN EXIT;//最后5分钟平仓

     

  • 金字塔客服:

    察觉了2个问题:

    1、不能用NUM<=1来表达,而要用NUM<CS,INPUT:CS(1,1,2,1);

    但是为啥???NUM不能直接和常数进行比较?参数CS不是视为常数?

    2、语法错误;NUM赋值语句掉了冒号;

     

     

  • 用户回复:

    IF TIME>=145500 THEN EXIT;//最后5分钟平仓

     

    这个不叫最后5分钟平仓

    把这句删了,添加:

    if time<=145500 then begin

        sell(1,0,market);

        sellshort(1,0,market);

    end

     

    if time=closetime(0) then num:=0;

         

打印本文打印本文 关闭窗口关闭窗口