【漆学军】MT4进阶到MT5速成之路(2)获取持仓

MT5在持仓获取上,要比MT4复杂些,分两部分,获取持仓和挂单采用了不同的方法。

一、获取持仓中的buy和sell单

int b=0;//获取buy单个数
int s=0;//获取sell单个数
double  lot_total_buy=0;//获取持仓中buy单的总手数
double  lot_total_sell=0;//获取持仓中sell单的总手数
for(int i=0; i<PositionsTotal(); i++)
     {
      ulong ticket=PositionGetTicket(i);
      string ordsymbol = PositionGetString(POSITION_SYMBOL);
      string ordcom = PositionGetString(POSITION_COMMENT);
      long ordmagic = PositionGetInteger(POSITION_MAGIC);
      double ordslp = PositionGetDouble(POSITION_SL);
      double ordtpp = PositionGetDouble(POSITION_TP);
      double ordoop = PositionGetDouble(POSITION_PRICE_OPEN);
      long ordtype = PositionGetInteger(POSITION_TYPE);
      double ordlot = PositionGetDouble(POSITION_VOLUME);
      double ordcp  = PositionGetDouble(POSITION_PRICE_CURRENT);
      if(ordsymbol==Symbol() && PositionGetInteger(POSITION_MAGIC)==magic)
        {
         if(ordtype==POSITION_TYPE_BUY)
           {
            b++;
            lot_total_buy+=ordlot;
           }
         if(ordtype==POSITION_TYPE_SELL)
           {
            s++;
            lot_total_sell+=ordlot;
           }
        }
     }

二、获取挂单的信息

//--- 订单属性返回值的变量
   ulong    ticket=0;
   double   open_price;
   double   initial_volume;
   datetime time_setup;
   string   symbol;
   string   type;
   long     order_magic;

   int bg=0;//获取挂单buystop的个数
   int sg=0;//获取挂单sellstop的个数
   for(int i=0; i<OrdersTotal(); i++)
     {
      //--- 通过列表中的仓位返回订单报价
      ticket=OrderGetTicket(i);
      //--- 返回订单属性
      open_price    =OrderGetDouble(ORDER_PRICE_OPEN);
      time_setup    =(datetime)OrderGetInteger(ORDER_TIME_SETUP);
      symbol        =OrderGetString(ORDER_SYMBOL);
      order_magic   =OrderGetInteger(ORDER_MAGIC);
      // positionID    =OrderGetInteger(ORDER_POSITION_ID);
      initial_volume=OrderGetDouble(ORDER_VOLUME_INITIAL);
      type          =EnumToString(ENUM_ORDER_TYPE(OrderGetInteger(ORDER_TYPE)));
      string ordcom=OrderGetString(ORDER_COMMENT);
      if(symbol==Symbol() && order_magic==magic)
        {
         if(type=="ORDER_TYPE_BUY_STOP")
           {
            bg++;
           }
         if(type=="ORDER_TYPE_SELL_STOP")
           {
            sg++;
           }
        }
     }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漆学军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值