系统交易

SaveTicks:MetaTrader 5 的智能报价记录工具
MetaTrader5
SaveTicks:MetaTrader 5 的智能报价记录工具

大家好!今天要跟大家分享一个非常实用的工具——SaveTicks,它是专门为MetaTrader 5设计的报价记录程序。这个程序可以将报价以文本(CSV)和二进制(BIN)格式保存到MQL5\Files文件夹中。它以固定的采样频率记录报价,方便我们在数学程序中进行分析。 输入参数设置 记录间隔 - 报价记录的间隔时间,单位为毫秒。 选择符号方式 - 用于写入符号的选择方式。 所有符号 - 写入经纪商提供的所有符号。 市场观察符号 - 写入市场观察中的所有符号。 从文件加载符号列表 - 从文件加载符号列表。 包含所有符号名称的文件名 - 符号列表的文件名,例如"InputSymbolList.txt"。 记录格式 - 选择CSV或二进制格式。 时间格式 - 时间设置,可以选择服务器时间或电脑时间。 下面是使用“从文件加载符号列表”的算法示例: 运行专家顾问(EA)并使用任意参数,然后卸载EA。 生成的文件"\MQL5\Files\AllSymbols_SaveTicks.txt"将包含经纪商提供的所有符号名称。 将其重命名,例如为"InputSymbolList.txt"。 编辑"InputSymbolList.txt",只保留所需的符号。文件的第一行应显示符号的数量。具体可以参考下载页面顶部的示例。 再次运行EA并设置必要参数,它将根据列表记录符号的报价。 检查"\MQL5\Files\*****"文件夹,应该会有类似EURUSD_SaveTicks.csv的文件。

2017.11.03
ExpertClor_v01 - MetaTrader 5 的智能交易助手
MetaTrader5
ExpertClor_v01 - MetaTrader 5 的智能交易助手

创意作者 — 约翰·史密斯,MQL5代码作者 — barabashkakvn。这是一个辅助型的智能交易顾问(EA),功能仅限于平仓:该EA能够将未平仓的交易调整为保本状态,并根据StopATR_auto指标计算止损,交易在两条移动平均线交叉时平仓。为了让EA正常工作,您需要将编译后的StopATR_auto指标文件放入文件夹 MQL5\Indicators\Downloads://+------------------------------------------------------------------+ //| 专家初始化函数                                   | //+------------------------------------------------------------------+ int OnInit()   { //--- ... //--- 创建指标的句柄 iCustom    handle_iCustom=iCustom(m_symbol.Name(),TimeFrame,"Downloads\StopATR_auto",                           CountBarsForAverage,                           Target                           ); 虽然这个智能顾问仅限于平仓,但我也加入了一小段代码用于开仓://+------------------------------------------------------------------+ //| 专家每次价格变动函数                                             | //+------------------------------------------------------------------+ void OnTick()   { //---    if(MQLInfoInteger(MQL_DEBUG) || MQLInfoInteger(MQL_PROFILER) ||       MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_OPTIMIZATION))      {       static long counter=-50;       static bool trade_buy=true;       if(counter==0)          m_trade.Buy(m_symbol.LotsMin());       else if(counter%1500==0)         {          if(RefreshRates())            {             if(trade_buy)               {                OpenBuy(m_symbol.LotsMin());                trade_buy=false;               }             else               {                OpenSell(m_symbol.LotsMin());                trade_buy=true;               }            }          else             counter=counter-9;         }       counter++;      } //--- 该模块仅在测试或优化此智能顾问时工作。每1,500个价格变动后开一个买入或卖出。

2017.08.10
使用MA、RSI和随机指标的MetaTrader 5交易策略
MetaTrader5
使用MA、RSI和随机指标的MetaTrader 5交易策略

作者信息:本策略的创作者是Oksana Berenko,而代码的编写者是barabashkakvn。这款专家顾问(EA)使用了三种指标:MA(150)、RSI(3),以及随机指标(Stochastic)(6, 3, 3)。你可以根据自己的需求调整这些参数。1. 交易方向交易方向是基于移动平均线(MA)来确定的,每次交易只会在一个方向上开一个单。如果买价(Bid)大于MA,则考虑做多。如果卖价(Ask)小于MA,则考虑做空。2. 进场条件进场条件在RSI和随机指标满足特定条件时触发。当RSI和随机指标低于下限时,执行买入,即RSI < 20且随机指标 < 30。当RSI和随机指标高于上限时,执行卖出,即RSI > 80且随机指标 > 70。3. 出场策略出场策略基于随机指标来决定。盈利点出场(若止损跟踪=0) 如果设置止损跟踪为零,且交易有一定的盈利点数,当达到相对的随机指标水平时平仓。b) 当随机指标 > 70且开仓价 = 卖价时平空单(若止损跟踪 > 0) 如果设置了止损跟踪值,一旦达到相对的随机指标水平,止损将会在每根新蜡烛开盘时跟踪调整,保持和当前价格指定的距离。请注意,这样可能会导致以亏损平仓,因为止损有时不会立即移动到盈亏平衡点。亏损点出场(允许亏损=0) 如果设置'允许亏损'为0,当达到相对的随机指标水平时,若交易有一定的亏损点数,则平仓。b) 当随机指标 > 70且开仓价 > 买价时平多单s) 当随机指标 < 30且开仓价 < 卖价时平空单(允许亏损 > 0) 如果设置了'允许亏损',并且我们依据随机指标退出了进场区域,而交易有超过指定亏损点数,则平仓。b) 当随机指标 > 30且开仓价 - 买价 >= 允许亏损点数时平多单b) 当随机指标 < 70且卖价 - 开仓价 >= 允许亏损点数时平空单在EURUSD,H1上的测试结果:

2017.08.10
Nevalyashka_BreakdownLevel:MetaTrader 5的高效交易系统
MetaTrader5
Nevalyashka_BreakdownLevel:MetaTrader 5的高效交易系统

创意作者 — Vladimir Khlystov,MQL5代码作者 — barabashkakvn.这款交易系统的策略是突破选定时间区间的高点或低点。当市场出现亏损时,EA会采用“Nevalyashka”策略和马丁格尔技术来增加手数。EA会在指定的时间区间内计算高点和低点,从 “开始时间” 到 “结束时间”:如果价格超过这个时间区间的高点,则会开一个买入(BUY)仓位;如果价格低于低点,则会开一个卖出(SELL)仓位。止损(StopLoss)会设置在相应的区间边界,即买入仓位在低点,卖出仓位在高点。止盈(TakeProfit)则根据控制区间的高度进行设置。如果设置了 使用关闭时间 为真,那么 关闭时间 参数(关闭所有仓位的时间)将会生效。在参数 “开始时间”、“结束时间” 和 “关闭时间” 中,仅考虑小时和分钟。止损的执行由 OnTradeTransaction 监控。当找到 “DEAL_ENTRY_OUT” (即“退出”)时,检查该交易的评论字段。如果 评论中包含“sl”,则表示该交易是由止损关闭的:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(deal_entry==DEAL_ENTRY_OUT) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MqlDateTime str1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TimeToStruct(TimeCurrent(),str1); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- 可能是止盈的关闭 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(StringFind(deal_comment,"tp",0)!=-1 || deal_profit&gt;=0.0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TradeDey=str1.day; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- 可能是止损的关闭 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(StringFind(deal_comment,"sl",0)!=-1) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(TradeDey!=str1.day) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print("检测到止损关闭!"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double loss=MathAbs(deal_profit/m_symbol.TickValue()/deal_volume); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(deal_type==DEAL_TYPE_SELL) // 卖出仓位被关闭 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double SL=m_symbol.Bid()+loss*m_symbol.Point(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double TP=m_symbol.Bid()-loss*m_symbol.Point(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double Lot=LotCheck(deal_volume*InpK_martin); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(Lot==0.0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OpenSell(SL,TP,Lot,"Nevalyashka"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(deal_type==DEAL_TYPE_BUY) // 买入仓位被关闭 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double SL=m_symbol.Ask()-loss*m_symbol.Point(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double TP=m_symbol.Ask()+loss*m_symbol.Point(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double Lot=LotCheck(deal_volume*InpK_martin); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(Lot==0.0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OpenBuy(SL,TP,Lot,"Nevalyashka"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } 在关闭的仓位对面开一个新的仓位(如果交易类型是“DEAL_TYPE_SELL”,那么关闭的是买入仓位;而“DEAL_TYPE_BUY”表示关闭的是卖出仓位),并且手数增加,乘以 K. martin。如果仓位关闭时盈利,EA将等待下一个时间区间的开始时间 “结束时间”,然后重复上述操作。&nbsp;“无损” 参数表示盈亏平衡;当仓位利润达到一半时,止损会调整到开仓价格。例如在 EURUSD,M30 上测试:

2017.08.10
DoubleZigZag:MetaTrader 5的高效交易助手
MetaTrader5
DoubleZigZag:MetaTrader 5的高效交易助手

创意作者是 Maksim,而 mq5代码作者是 barabashkakvn。这款专家顾问使用了两个ZigZag指标进行分析:一个是较小的ZigZag,参数为 (13.5,3),另一个是较大的ZigZag,参数乘以八:(13*8,5*8,3*8)。//--- 创建指标iCustom的句柄 &nbsp;&nbsp; handle_iCustom=iCustom(Symbol(),Period(),"Examples\ZigZag",13,5,3); //--- 如果句柄未创建 &nbsp;&nbsp; if(handle_iCustom==INVALID_HANDLE) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- 输出失败信息和错误码 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintFormat("无法为符号 %s/%s 创建iCustom指标句柄,错误码 %d", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Symbol(), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EnumToString(Period()), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetLastError()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- 提前停止指标 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(INIT_FAILED); &nbsp;&nbsp;&nbsp;&nbsp; } //--- 创建指标iCustomX8的句柄 &nbsp;&nbsp; handle_iCustomX8=iCustom(Symbol(),Period(),"Examples\ZigZag",13*8,5*8,3*8); //--- 如果句柄未创建 &nbsp;&nbsp; if(handle_iCustomX8==INVALID_HANDLE) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- 输出失败信息和错误码 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintFormat("无法为符号 %s/%s 创建iCustomX8指标句柄,错误码 %d", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Symbol(), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EnumToString(Period()), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetLastError()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- 提前停止指标 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(INIT_FAILED); &nbsp;&nbsp;&nbsp;&nbsp; }在做出交易决策时,分析较大ZigZag的最后一个峰的两个腿 (13*8,5*8,3*8),并计算这两个腿中包含的较小ZigZag的峰数 (13,5,3)。如果收到开多单的信号,则关闭所有空单;反之亦然:如果收到开空单的信号,则关闭所有多单。专家顾问参数:k:较大ZigZag的两个腿中较小ZigZag的峰数的比例k2:较大ZigZag峰值的价格差的比例示例:较大ZigZag (13*8,5*8,3*8) 用红色显示,较小ZigZag (13,5,3) 用黄色显示。对应的,ABC 是较大ZigZag (13*8,5*8,3*8) 的峰值。腿 AB 和 AC 包含九个较小ZigZag (13,5,3) 的峰值。测试结果在 EURUSD,M1:

2017.08.10
Exp_XROC2_VG_X2:MetaTrader 5的趋势跟随交易系统
MetaTrader5
Exp_XROC2_VG_X2:MetaTrader 5的趋势跟随交易系统

大家好,今天我们来聊聊一个非常实用的趋势跟随交易系统——Exp_XROC2_VG_X2。这个系统主要依赖于两个XROC2_VG指标生成的信号来进行交易。 系统工作原理 第一个指标用于判断慢趋势的方向,主要根据主线和信号线的位置来判断。而第二个指标则用来确定开仓时机,也就是当这两条线交叉或触碰时,就会产生交易信号。当以下两个条件同时满足时,就会在K线收盘时生成入场信号: 快趋势信号与慢趋势信号一致; 快趋势已经改变方向。 EA参数设置 EA输入参数: //+-------------------------------------------------+ //| EA指标的输入参数 | //+-------------------------------------------------+ input string Trade="交易管理";&nbsp;&nbsp;&nbsp;&nbsp;//+================ 交易管理 ================+ input double MM=0.1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //每笔交易占用的存款比例 input MarginMode MMMode=LOT;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//手数价值检测方法 input uint&nbsp;&nbsp;&nbsp;&nbsp;StopLoss_=1000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//止损点数 input uint&nbsp;&nbsp;&nbsp;&nbsp;TakeProfit_=2000;&nbsp;&nbsp;&nbsp;&nbsp;//获利点数 input string MustTrade="交易权限";&nbsp;&nbsp;&nbsp;&nbsp;//+=============== 交易权限 ===============+ input int&nbsp;&nbsp;&nbsp;&nbsp;Deviation_=10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //最大价格偏差点数 input bool&nbsp;&nbsp; BuyPosOpen=true;&nbsp;&nbsp;&nbsp;&nbsp; //允许开多头仓位 input bool&nbsp;&nbsp; SellPosOpen=true;&nbsp;&nbsp;&nbsp;&nbsp;//允许开空头仓位 //+-------------------------------------------------+ 以上是一些基本的输入参数,帮助大家更好地管理交易。 重要提示 要确保编译好的EA正常运行,需要将和这两个指标文件添加到你的&lt;terminal_data _folder&gt;\MQL5\Indicators目录下。 此外,TradeAlgorithms.mqh库文件可以让你在开仓时设置止损和获利,即使对手盘存在非零点差的情况下也能正常使用。你可以在这个链接下载更多库的版本:交易算法。 测试结果 以下是我们在2015年对AUDUSD的测试结果,慢趋势使用H6图表,快趋势则使用M30图表: 交易示例 测试显示,默认输入参数在测试中得到了很好的表现。希望大家能在实际交易中取得更好的成绩!

2017.08.10
基于XROC2_VG指标的MetaTrader 5交易系统详解
MetaTrader5
基于XROC2_VG指标的MetaTrader 5交易系统详解

大家好!今天我们来聊聊一款基于 XROC2_VG 振荡器信号的交易系统——Exp_XROC2_VG_Digit_Tm专家顾问(EA)。这款EA不仅能帮助我们识别交易信号,还允许我们设定严格的交易时间区间。 当一个K线收盘时,如果指标颜色发生变化(主指标线穿越信号线),就会生成一个交易信号。 我们可以在输入参数中指定交易时间,以便在预定的时间区间内进行交易: input bool&nbsp;&nbsp; TimeTrade=true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//允许在指定时间区间内交易 input HOURS&nbsp;&nbsp;StartH=ENUM_HOUR_0;&nbsp;&nbsp;//交易开始时间(小时) input MINUTS StartM=ENUM_MINUT_0; //交易开始时间(分钟) input HOURS&nbsp;&nbsp;EndH=ENUM_HOUR_23;&nbsp;&nbsp; //交易结束时间(小时) input MINUTS EndM=ENUM_MINUT_59;&nbsp;&nbsp;//交易结束时间(分钟) 在操作开始时间和结束时间中,各自提供了两个变量(小时和分钟)。 默认设置下,这款EA会在午夜0:00开始交易,并在23:59关闭所有仓位。 如果开始时间晚于结束时间,EA将会在第二天按指定时间关闭仓位。 为了确保EA的正常运行,请将编译后的XROC2_VG.ex5指标文件保存在&lt;terminal_data_folder&gt;\MQL5\Indicators目录下。 值得注意的是,TradeAlgorithms.mqh库文件支持在具有非零点差的经纪商使用EA,并在开仓时设置止损和获利点。你可以在以下链接下载更多库的变种:交易算法。 测试中使用了EA的默认输入参数,测试期间没有使用止损和获利。 图1:图表上的交易示例 以下是2015年XAUUSD H4的测试结果: 图2:测试结果图表

2017.08.10
首页 上一页 24 25 26 27 28 29 30 31 32 33 34 下一页 末页