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

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);}}

【漆学军】MT4进阶到MT5速成之路(4)修改和删除挂单相关推荐

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

    MT5在持仓获取上,要比MT4复杂些,分两部分,获取持仓和挂单采用了不同的方法. 一.获取持仓中的buy和sell单 int b=0;//获取buy单个数 int s=0;//获取sell单个数 do ...

  2. 漆学军:为什么要学MT4而不直接学更强大的MT5呢?

    ​​​​​​很多人在纠结到底是学MT4还是MT5的自动交易编程,我的建议是先学MT4. 理由如下: MT4相对简单易学. MT4跟MT5比起来,简单很多,数据类型更少,订单处理方式更简单,指标 值的获 ...

  3. 漆学军:MT4平台量化交易故事

    1. 我姓汤,是一名宝妈,83年生于重庆,因为性格内向,不善言辞,大学毕业后,在家里炒股票和期货,2008年结婚后跟随老公移民到了加拿大,我开始接触mt4平台的ea交易,因为考虑到要带孩子,ea自动交 ...

  4. 【漆学军】EA编程速成教程(5)增加一个下单条件:抛物线指标

    这次,我们在之前课程的基础上,给EA设定一个下单条件,也就是抛物线指标转向的时候,下单,去掉之前的挂上就买入一单. 具体是,抛物线从k线下面转到k线上面去之后,第二根k线开盘价卖出,如图中标记5处. ...

  5. 【漆学军】EA编程速成教程(4)修改止损止盈

    本课程的目标是给之前下的单子添加止损止盈价. 首选添加外部参数 input int SL=600; //止损点数 input int TP=200; //止盈点数 给单子添加止损止盈有两个方法: 一. ...

  6. 【漆学军】分享一个自定义K线的指标的源码

    实现方法:在每根k线上绘制柱子,粗柱子作为K线主体,细柱子作为k线引线. 技术难点:本例没有使用绘制对象的方法,而是直接使用MT4指标的方法绘制DRAW_HISTOGRAM,主图指标使用这个方法必然是 ...

  7. 漆学军:MACD交叉,金叉做多,死叉做空的例子程序

    <MT4EA编程速成教程>中第33页习题: 第二题:将交易信号改成MACD交叉,金叉做多,死叉做空. 这道题的重点和难点就是获取MACD的指标值,MACD和之前的抛物线指标或者均线指标不一 ...

  8. 漆学军:RSI信号,RSI<20做多,RSI>80做空的例子程序

    <MT4EA编程速成教程>中第33页习题: 第三题:将交易信号改成RSI,RSI<20做多,RSI>80做空. RSI指标又叫相对强弱指标,是一个很简单的指标,只有一个缓存,获 ...

  9. 【漆学军】如何编写健壮的一键平仓脚本

    在MT4的各种快捷工具中,一键平仓脚本是非常有用的一个小脚本程序. 在面对账户有几十个甚至几百个单子的时候,一个一个去手动平仓将会是非常痛苦麻烦的事情,使用MT4自带的MQL4语言,编写一个小程序,只 ...

最新文章

  1. 提取LSA密码lsadump
  2. //某父元素(.class)底下相同class的第二的取值
  3. 如何处理scrum中未完成的用户故事?
  4. iptables连接跟踪ip_conntrack
  5. 70 个数据分析常用网址,我先收藏了!
  6. 计算机linux入门教程,Turbolinux入门教程1
  7. Redis Sentinel 机制与用法(二)
  8. Zipkin-1.19.0学习系列2:Nodejs范例(Client Send,Client Receive))
  9. 20221103使用ffmpeg提取mp4视频的字幕
  10. 利用计算机发布调度命令时必须严格遵守,调度命令规范格式(22页)-原创力文档...
  11. A/B/C类ip地址 掩码 广播地址 路由汇集 保留地址
  12. 互联网数据分析岗实习感受
  13. 摄影基础知识——光圈
  14. 多智能体系统的分布式协同控制——采样控制、脉冲控制、弹性控制
  15. 程序员叫啥名字_什么是资深程序员?看自“配”的网名就真相了!
  16. Trace使用(camera)
  17. jcp jsr_Oracle提交了第三次JCP改革JSR,以提高透明度
  18. 计算机应用基础在线试题,计算机应用基础试题.DOC
  19. IOS证书申请最新版2021
  20. uni-app的由来

热门文章

  1. GroupingComparator分组(辅助排序)的作用以及通过GroupingComparator实现分组topN
  2. 【JZOJ 4599】西行妖
  3. vux 显示 html,浅谈vux之x-input使用以及源码解读
  4. WSL安装centos7
  5. 雷达辐射源调制信号仿真
  6. 2020计算机二级成绩什么时候出来,2020年9月计算机二级成绩大概什么时候出来
  7. vxlan报文 wireshark_配置 VXLAN
  8. VS Code写Python智能提示,代码自动补全(Kite插件)
  9. 「掘金者说」 java后台实现对账功能复盘笔记
  10. Eigen库学习笔记(五)张量计算