转载原文:http://www.popoding.club/post/34/

MT5挂单类型有六种,能够很好地适应回调和突破场景,在一些突破策略交易系统中应用较多,当挂单条件不再有效的时候,就会涉及到挂单的取消操作。六种挂单应用说明如下:

Buy Limit(回踩买入):在当前价格下方,等待行情下跌到挂单位置触发买入单。

Sell Limit(回踩卖出):在当前价格上方,等待行情上涨到挂单位置触发卖出单。

Buy Stop(突破买入):在当前价格上方,等待行情上涨到挂单位置触发买入单。

Buy Stop(突破卖出):在当前价格下方,等待行情下跌到挂单位置触发卖出单。

Buy Stop Limit(突破回踩买入):在当前价格上方,等待行情上涨到突破位置后,再下跌到回踩位置,触发买入单。

Sell Stop Limit(突破回踩卖出):在当前位置下方,等待行情下跌到突破位置后, 再上涨到回踩位置,触发卖出单。

遍历挂单

与持仓单平仓一样,在取消挂单前需要先遍历所有挂单,需要用到函数OrdersTotal(),得到挂单总数,再用for循环实现遍历功能。

for(int i = 0 ; i < OrdersTotal() ; i++)
{//循环体
}

获取挂单属性

在循环体内,需要根据挂单序列号获取挂单号,用到的函数是OrderGetTicket(),这个函数可以取到挂单号,也能定位到当前挂单,之后便可以获取相关挂单信息。

ulong ord_ticket = OrderGetTicket(i);//挂单号
ulong ord_magic = OrderGetInteger(ORDER_MAGIC);//挂单幻数
string ord_symbol = OrderGetString(ORDER_SYMBOL);//挂单品种

取消条件

挂单也有属于自己的订单属性,常用的有挂单时间、挂单类型、挂单价格等,在一些复杂的突破策略交易系统中,就会用到不同的取消条件,比如在超过特定的时间或价格就取消挂单,或取消指定的挂单类型。与持仓单一样,涉及多货币多模式时,也可以通过幻数编码规则进行区分和管理。

取消功能

挂单的取消,实现比较简单,只需要指定挂单号,发送取消指令就可以了。

request.action=TRADE_ACTION_REMOVE;           // 取消操作
request.order = ord_ticket;                      // 订单价格

实现源码

#property copyright "公众号 Luyuanmw 微信 wentxiong"
#property link      "http://www.popoding.club/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
//---
for(int i = 0 ; i < OrdersTotal() ; i++)
{
ulong ord_ticket = OrderGetTicket(i);
ulong ord_magic = OrderGetInteger(ORDER_MAGIC);
string ord_symbol = OrderGetString(ORDER_SYMBOL);
ENUM_ORDER_TYPE ord_type =         (ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE);
if(ord_magic == 0 && ord_symbol == "EURUSD")
{
MqlTradeRequest request = {0};
MqlTradeResult result = {0};
double ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID);
request.action=TRADE_ACTION_REMOVE;             // 取消操作
request.order = ord_ticket;                     // 订单价格
if(!OrderSend(request,result))
{
printf("Ordersend Error : %d",GetLastError());
}
}
}
}
//+------------------------------------------------------------------+

六类挂单一键取消脚本相关推荐

  1. 5类6类7类网线对比_五类,六类,七类网线都有什么区别

    展开全部 双绞线按电气性能划分的话,通常分为:三类.636f707962616964757a686964616f31333365643662四类.五类.超五类.六类.七类双绞线等类型,原则上数字越大, ...

  2. 大数据生态(六)zookeeper集群部署(Linux和Windows[含一键启动脚本])

    目录 前言 1.解压安装Zookeeper到/e3base/zookeeper目录下 2 .创建$E3_INFO_HOME/zookeeper目录 3 .创建数据目录和日志目录 4.配置环境变量 4. ...

  3. 内网穿透神器Frps一键安装脚本及设置教程

    frps 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发. *因为frps是g ...

  4. rsync+inotify一键安装脚本

    一.环境描述 server:192.168.122.54 client:192.168.122.55,192.168.122.56 同步目录:/data/html server端有任何数据更新,即将同 ...

  5. VPS服务器性能一键测试脚本_IP路由/CPU基准/内存读取/下载上传速率测试脚本

    以下脚本均来自网络收集,包括但不限于别人分享,网上分享等路径,可以放心使用.如果脚本已失效请在下方评论告知!1.BBR 锐速一键安装 #脚本1 wget -N "https://github ...

  6. zabbix一键安装脚本

    一.lnmp一键安装脚本 注: /root/目下下需要准备好nginx-1.10.2.tar.gz和php-5.5.38.tar.gz软件包#!/bin/bash#================== ...

  7. 六类布线六大注意事项

    六类布线系统在传输速率上可提供高于超五类2.5倍的高速带宽,在100MHz时高于超五类300%的ACR值.在施工安装方面,六类比超五类难度也要大很多. 六类布线系统的施工人员必须按照国际标准要求的规范 ...

  8. python部署脚本_vsftp一键部署脚本

    vsftp一键创建脚本#!/bin/sh #OS: Centos7.2 #filename: auto_install_vsftp.sh users=/etc/vsftpd/vftpuser.txt  ...

  9. 怎么区分五类线、超五类线和六类线

    打个广告, ---------------------------------------------------------------------------------------------- ...

最新文章

  1. Git 各指令的本质,真是通俗易懂啊!
  2. 【自用】 Android Studio Gradle sync failed
  3. 系统运维|IIS的日志设置
  4. C++中四种类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast要点解析
  5. Notification之 - Android5.0实现原理(二)
  6. 述职答辩提问环节一般可以问些什么_论文答辩一般会问什么问题?需要注意什么事项?...
  7. 这就是数据分析之numpy
  8. 风控上模型中的大小卡、主路旁路的应用
  9. python post body_python写http post请求的四种请求体
  10. ggplot 非常难调的参数
  11. 手机腾讯网mt2.0增量更新算法优化小记
  12. ggtech:您有一份来自Airbnb/Google的配色方案需要查收
  13. 这场直播,我们把 Apache 顶级项目盛会搬来了!
  14. 三角函数及其之间的关系
  15. 基于TI Davinci架构的多核/双核开发高速扫盲(以OMAP L138为例),dm8168多核开发參考以及达芬奇系列资料user guide整理...
  16. 9.9 单片机蜂鸣器
  17. 程序员转行,干什么比较好
  18. D3D9 简单图形的绘制以及显示
  19. 【目标检测】你想知道的手势识别都在这里 【YOLO】网络
  20. 计算机视觉软件安装全教程(python opencv VSCodeUserSetup)

热门文章

  1. MySQL5.7 Waiting FOR TABLE FLUSH
  2. android videoview按钮,Android videoview抢占焦点的处理方法
  3. 快速上手MATLAB图像处理:100种项目全覆盖
  4. 树莓派gpio编程c语言,树莓派gpio编程(一)控制Led灯
  5. 2D与3D人脸识别详解
  6. 防踩坑宝典:对接支付渠道二三事
  7. 不再学哑巴英语,在场景里面学会说英语 spoken english | daily comversation
  8. vue前端移动项目调用微信扫一扫的实现
  9. 3种方法更改Linux系统的主机名(hostname)
  10. 熊猫终于过去了....