IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【漆学军】MT4进阶到MT5速成之路(4)修改和删除挂单 -> 正文阅读

[C++知识库]【漆学军】MT4进阶到MT5速成之路(4)修改和删除挂单

一、首先我们来看下修改订单函数

int OrderModify(ulong ticket,double tpp,double slp)
  {
//--- 准备请求
   MqlTradeRequest request= {};
   request.action=TRADE_ACTION_SLTP;         // 设置
//  request.symbol=symbol;
//  request.type = type;
   request.position =ticket;
   request.sl=slp;  // 止损价
   request.tp=tpp;  // 止盈价
//--- 发送交易请求
   MqlTradeResult result= {0};
   bool res=OrderSend(request,result);
   if(!res)
      msgbox(GetLastError());
   return(0);
  }

需要注意的是结构体request的元素action的值应该是TRADE_ACTION_SLTP

request.action=TRADE_ACTION_SLTP;

如何使用以上函数来修改订单的止损止盈呢?看例子,跟MT4很相似。

 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)
           {
            if(ordslp+ordtpp==0)
              {
               if(ordcp-ordoop>0)
                 {
                  ordslp=ordoop-2;
                 }
               else
                 {
                  ordtpp=ordoop+2;
                 }
               OrderModify(ticket,ordtpp,ordslp);
              }
           }
         if(ordtype==POSITION_TYPE_SELL)
           {
            if(ordslp+ordtpp==0)
              {
               if(ordcp-ordoop<0)
                 {
                  ordslp=ordoop+2;
                 }
               else
                 {
                  ordtpp=ordoop-2;
                 }
               OrderModify(ticket,ordtpp,ordslp);
              }
           }
        }
     }

?

二、删除挂单则需要注意结构体request的元素action的值应该是TRADE_ACTION_REMOVE

删除挂单函数如下:

void OrderDelete(ulong ticket)
  {
   MqlTradeRequest request= {};
   request.action=TRADE_ACTION_REMOVE;         // 设置
   request.order =ticket;
//--- 发送交易请求
   MqlTradeResult result= {0};
   bool res=OrderSend(request,result);
   if(!res)
      msgbox(GetLastError());
  }

使用的例子,还是跟MT4一样,需要用for循环遍历所有挂单

   ulong    ticket=0;
   double   open_price;
   double   initial_volume;
   datetime time_setup;
   string   symbol;
   string   type;
   long     order_magic;

   int bg=0;
   int sg=0;
   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)
        {
          OrderDelete(ticket);
        }
    
     }

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:22:53  更:2022-04-18 17:25:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:07:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码