📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    求教:历史订单的注释为什么只能获取到tp

    2016-06-22 · 4434 阅读
    我的EA多单和空单注释不一样,具体是多单BUY-1.12535,空单SELL1.12434  ,我现在要搜索历史记录,代码如下:
        for(i=0;i<30;i++)
          {
            if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)&& OrderSymbol()==Symbol()&&OrderMagicNumber()==MyMagicNum)
             
                Print("719MyBuyComment=",MyBuyComment,"OrderComment()=",OrderComment(),"SringSubStr(OrderComment(),0,13)=",StringSubstr(OrderComment(),0,13));
          }

    结果:OrderComment()     没有显示BUY-1.12535[tp],而只显示tp,请高手赐教,如何能获取到历史订单的完整注释
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 2 个

    DX冲云海 LV4

    发表于 2016-6-22 17:21:23 | 显示全部楼层

    comment参数的特殊作用
    A:这参数本意是用于记录这个订单的描述信息,程序只能在订单入场的时候设定它。同时系统会在这个订单发生止损 止赢或者拆单的时候自动修改这里的内容。
    既然订单发生止损 止赢或者拆单的时候自动修改这里的内容。
    那我可以在下单的时候给comment赋值”on”,当订单生成后我可以用OrderComment()
    函数实时获取它的comment值如果不等于”on”那就说明订单已经止损或止赢了。



    @string OrderComment()  返回定单的注释。
    int ticket=12345678;
    if ( OrderSelect( ticket, SELECT_BY_TICKET ) == true )
                {
                if( OrderCloseTime() != 0 && OrderProfit() < 0 )
                   {
                    Print(StringConcatenate("Order #", ticket, " closed by stoploss!");
                  }
              }
    这种方法就是判断订单的盈利是小于0来判断的,但是有个问题,就是如果是移动止损,虽然止损了但是有可能是盈利的,这样的就没法判断出来了
    用OrderComment 函数,每次止损或者止盈后,系统自动给订单加入一个注释,如果是止损就是s/l,判断字符串里包含这个字符串就行了。同理,只赢的就是t/p。

    dre_dre LV0

    发表于 2016-6-22 21:55:30 | 显示全部楼层

    谢谢您的指点,对我很有帮助!
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服