根据R-Breaker原理琢磨出来的代码,实测效果不太理想,收益率偏小。有需求的小伙伴可以拷贝优化。

void OpenOrder(){double a =0.2 ;double b =0.5 ;double c= 0.04;double d= 0.3;double Highs = High[iHighest(NULL,PERIOD_D1,MODE_HIGH,0,0)];//获取当天的最高价double Lows = Low[iHighest(NULL,PERIOD_D1,MODE_LOW,0,0)];//获取当天的最低价double Closes = Low[iHighest(NULL,PERIOD_D1,MODE_CLOSE,0,0)]; //前一级别的收盘价double SellSetup = Highs + a*(Closes - Lows);//观察卖出价double BuySetup = Lows - a*(Highs - Closes);//观察买入价double SellEnter = b*(Highs+Lows)+c*(Highs-Lows);//反转卖出价double BuyEnter = b*(Highs+Lows)+c*(Highs-Lows);//反转买入价double SellBreak = BuySetup - d * (SellSetup - BuySetup);//突破卖出价*/double BuyBreak = SellSetup + d * (SellSetup - BuySetup);//突破买入价Print("突破买入价:"+BuyBreak);Print("突破卖出价:"+SellBreak);//统计订单int buys=0,sells=0,signal=0;bool result;for(i=0; i<=OrdersTotal()-1; i++){result=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue;if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){if(OrderType()==OP_BUY){buys++;}if(OrderType()==OP_SELL){sells++; }}}int position_long = buys;int position_short = sells; double THigh = High[iHighest(NULL,PERIOD_D1,MODE_HIGH,0,0)];//获取当天的最高价double TLow = Low[iHighest(NULL,PERIOD_D1,MODE_LOW,0,0)];//获取当天的最低价//突破策略if(position_long == 0 && position_short ==0){//在空仓的情况下,如果盘中价格超过突破买入价,则采取趋势策略,即在该点位开仓做多if(Close[0] > BuyBreak){o_rs = OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,0,"RBreaker",Magic,0,clrGreen);Print("空仓,盘中价格超过突破买入价: 开仓做多");if(o_rs == false)Print("盘中价格超过突破买入价,开仓失败,错误:"+DoubleToString(GetLastError()));//在空仓的情况下,如果盘中价格跌破突破卖出价,则采取趋势策略,即在该点位开仓做空}else if(Close[0] < SellBreak){o_rs = OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,0,"RBreaker",Magic,0,clrRed);Print("空仓,盘中价格跌破突破卖出价: 开仓做空");}//设置止损条件}else{//有持仓时,反转策略://多仓条件下if(position_long && OrdersTotal()<2){if(THigh > SellSetup && Close[0]<SellEnter){/*多头持仓,当日内最高价超过观察卖出价后,盘中价格出现回落,且进一步跌破反转卖出价构成的支撑线时,采取反转策略,即在该点位反手做空*/CloseOrder(1);o_rs = OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,0,"RBreaker",Magic,0,clrRed);Print("空多头持仓,当日内最高价超过观察卖出价后跌破反转卖出价: 反手做空");if(o_rs == false)Print("盘中价格超过破卖出价,开仓失败,错误:"+DoubleToString(GetLastError()));}}else if(position_short && OrdersTotal()<2){if(TLow <BuySetup && Close[0]>BuyEnter){/* 空头持仓,当日内最低价低于观察买入价后,盘中价格出现反弹,且进一步超过反转买入价构成的阻力线时,采取反转策略,即在该点位反手做多*/CloseOrder(0);o_rs = OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,0,"RBreaker",Magic,0,clrGreen);Print("空头持仓,当日最低价低于观察买入价后超过反转买入价: 反手做多");if(o_rs == false)Print("当日最低价低于观察买入价后超过反转买入价,反手做多开仓失败,错误:"+DoubleToString(GetLastError()));}}}if(Hour()==23 && Minute()==54){CloseOrder(0);CloseOrder(1);}
}
void CloseOrder(int type){for(i=0; i<=OrdersTotal()-1; i++){o_rs=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);if(OrderType() == OP_BUY && type==1){orderclosebuy(i,OrderLots());}else{orderclosebuy(i,OrderLots());}}
}

R-Breaker策略交易代码,适用MT4,MT5平台相关推荐

  1. MT4外汇平台模拟交易对新手投资者有什么好处?

    外汇交易看似简单,任何人都可以交易货币.基本上就是买入或卖出一定数量的货币.但事实上是不是真的这么简单呢?外汇交易的过程牵涉很多不同的选择和决定,例如账户类型.点差.存款和杠杆水平,这些因素都将影响你 ...

  2. 如何加载交易策略EA到MT4/MT5

    1.打开MT4/MT5软件 2.首先,必须有一个EA,而且必须是mq4/ex4为扩展名.点击左上角"文件"-"打开数据文件夹",找到安装路径 3.将EA的ex4 ...

  3. 【QMT策略编写】如何优雅地调教QMT量化平台编写量化策略(使用notepad++、pycharm、vscode等外部IDE编写量化交易代码)

    如何优雅地调教QMT量化平台编写量化策略(使用notepad++.pycharm.vscode等外部IDE编写量化交易代码) 前言 一.先搞清楚QMT的安装目录 二.QMT调教步骤 1.QMT里新建量 ...

  4. Python量化交易策略--双均线策略及代码

    双均线策略是比较经典的策略,股票的价格均线是投资参考的重要指标.均线有快线和慢线之分,当快线向上穿过慢线则是金叉,一般执行买入操作,当快线向下穿过慢线时则形成死叉,一般执行卖出操作.基于这个基本思路, ...

  5. MT4/MT5外汇交易VPS(Virtual Private Server 虚拟专用服务器)技术

    MT4/MT5外汇交易VPS(Virtual Private Server 虚拟专用服务器)技术 伴随着国内EA智能交易的兴起,VPS技术在外汇零售交易领域的应用也在逐渐扩大,那么什么是VPS技术?它 ...

  6. 【零基础】MT4/MT5一条语句让EA发微信消息推送

    提示:原创文章,转载请注明本地址 前几年写过一篇MT4/MT5推送微信消息报警的文章,最近又实现了一个更简便的方法,只需两步就可以让你的EA发微信提醒消息了,在此分享给大家. ( 推送方法使用了&qu ...

  7. MT4/MT5使用dll调用matlab

    前言 matlab中具有很多丰富的函数,可以很方便地进行统计分析和科学计算,而MT4/MT5有很好的回测平台和可扩展的MQL语言,但是缺少很多分析函数库.在MT5的社区上有很多将matlab引擎封装成 ...

  8. matlab symbol filled,策略交易 - MATLAB - 掘金量化

    策略交易 分享 阅读 11624 更新 2020-10-29 09:40:19 策略交易相关的功能包括: 交易接口.查询委托.查询交易回报 查询资金信息.查询持仓信息 交易接口面对策略的函数形式保持不 ...

  9. 详解策略分析师的日常是怎么样的?策略数据代码篇

    一.开篇 在魔蝎被警方带走调查后,目前还没有对该案件公开的法律定性定罪.但是爬虫市场好像早已离去,也许它是高利贷的推波助澜,也许它是使用数据的过分泛滥.我们理解,我们遵守,我们敬畏. 以下面的案列来告 ...

最新文章

  1. 青少年电子信息智能创新大赛 赛项说明(Python编程创新挑战赛)
  2. Java序列化接口的作用总结1
  3. 面试之数据库SQL编写实战案例
  4. python安装成功第三方库但import出问题_为什么会在pyspark在RDD中调用python第三方库失败?...
  5. How is setModel triggering propery binding
  6. 北京西格玛大厦微软社区精英 Visual Studio 2010 技术交流会记录
  7. Nginx的反向代理的配置
  8. c++中delete和析构函数之间的区别
  9. pythonturtle库填充_Python turtle库学习笔记
  10. Data Analysis - Day7 - Pandas
  11. Linux命令 - rm命令
  12. bootstrap按钮组btn-group
  13. 【js学习笔记】去除省、市、区、特别行政区、自治区
  14. matlab自动运行,自动运行matlab的方法步骤
  15. VMware安装树莓派(一)
  16. 学人工智能以后从事什么工作?这6大就业方向前景广阔
  17. android夯实总结(设计、细节及思想)
  18. java-通知-阿里云短信服务
  19. Linux磁盘监控工具说明
  20. [年终总结] 2023,希望一切都能够好起来

热门文章

  1. 计算机主板型号进bios,电脑怎么在不开机的状况下看主板型号,还有怎么进入BIOS。。。...
  2. oss控制台删除bucket
  3. node.js+uniapp计算机毕业设计安卓基于Android的线上水果店(程序+APP+LW)
  4. windows server 服务器基本操作
  5. ERR Error compiling script (new function):   问题解决
  6. 问题记录:编译失败,报错Fatal error compiling
  7. 追觅、戴森、小狗吸尘器,谁的性价比最高
  8. 【报告分享】互联网餐饮外卖消费营养健康趋势洞察-饿了么(附下载)
  9. 基于FreeRTOS与MQTT的物联网技术应用系列——步进电机控制(一)前言
  10. Unity 3D 导航系统||Unity 3D 障碍物