ThirdPartyTicks - MetaTrader 5脚本
- 显示:
- 1994
- 等级:
- 已发布:
- 2018.04.27 10:56
- 已更新:
- 2018.08.30 13:14
- 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
MetaTrader 4 的第三方应用程序允许从各种来源获取逐笔报价的历史数据,这一直很受欢迎。 此历史数据通常用于策略测试器,用于检查智能交易系统的操作以及进行研究 (如机器学习等)。 用户讨论的一些报价来源几乎已经成为搜索 "圣杯" 的标准。
准则
给定的 MQL5 函数库没有任何比较逐笔报价的标准。 至于选择建议的逐笔报价档案来源的原因并未描述。 但这个档案是绝对新鲜的,因此并未充分研究。 所以,为了开发您自己的价值准则,请执行一个简单的操作 - 在 "基于真实报价的逐笔报价" 模式下,使用任意 MetaTrader 5 中内置的品种,以及由脚本创建的 自定义品种 (基于第三方实时逐笔报价历史数据), 运行您的智能交易系统,然后比较获得的结果。 这个过程不需要对终端有深入的了解,也不需要额外的操作。
脚本
该脚本从内置来源访问逐笔报价历史数据,并在其基础上创建适当的自定义品种。
源代码中的注释一定程度上解释其原理。
// https://www.mql5.com/zh/code/20225 #property script_show_inputs #include <fxsaber\ThirdPartyTicks\ThirdPartyTicks.mqh> sinput bool Sync = true; // 同步 sinput string symbol = ""; // 品种 (NULL - 当前, "AllSymbols" - 所有) THIRDPARTYTICKS ThirdPartyTicks; // 连接到本地的报价档案 // 一个品种 void CreateSymbol() { // 定义要使用的品种 const string Symb = (symbol == "") ? StringSubstr(_Symbol, 0, 6) : symbol; if (Sync) ThirdPartyTicks.Refresh(); // 从逐笔报价档案源读取可用数据 ThirdPartyTicks[Symb].Update(); // 将本地存档与所选品种的来源同步 ThirdPartyTicks[Symb].ToCustomSymbol(true); // 基于本地存档创建自定义品种 } // 所有品种 void CreateAllSymbols() { if (Sync) ThirdPartyTicks.Refresh(); // 从逐笔报价档案源读取可用数据 const uint Amount = ThirdPartyTicks.GetAmount(); for (uint i = 0; _CS(i < Amount); i++) { ThirdPartyTicks[i].Update(); // 将本地存档与所选品种的来源同步 ThirdPartyTicks[i].ToCustomSymbol(); // 基于本地存档创建自定义品种 } } void OnStart() { if (symbol != "AllSymbols") CreateSymbol(); else if (MessageBox("创建所有品种可能需要很长时间。 您同意吗?", __FILE__, MB_YESNO | MB_ICONQUESTION) == IDYES) CreateAllSymbols(); }
为了脚本的正确操作,您应该在 终端设置 中指定报价源的地址,例如:
在脚本操作期间,动作详情会写入日志:
UnZip <source_name>\EURUSD.<suffix>\EURUSD.<suffix>_20180313.csv.zip 724002 bytes - unpack size 5466504 bytes. Total Ticks (EURUSD.<suffix>) = 1645897 Corrected 3 ticks. EURUSD.<suffix>_<source_name> saved ticks = 1645897
之后,您可以使用自定义的新品种 在测试器 中运行您的 EA:
特征
- 仅使用标准 MQL5 功能,所以没有 DLL,它符合市场要求。
- 报价存档将 CSV 文件以 ZIP 文件格式保存在本地计算机上。
- 报价档案与会与源同步: 仅下载缺失的数据。
- 源文件包括以下库: ZIP 和 品种。
- 脚本可以在没有互联网连接的情况下使用本地存档。
- 本地存档中的数据可以进行编辑或手工添加。
- 文件存储的操作不依赖于其中的目录: 您可以自行决定创建文件夹并保存数据。
- 考虑到从 "基于真实报价的每次逐笔报价" 测试模式切换到 "仅限开盘价" 模式 - 交易系统使用限价订单时品质损失最小。
- 该脚本的核心是具有相同名称的函数库。 它允许创建更有趣的场景。
- 该来源尚未优化,并出于教学目的按原样提供。
- 为了令该函数库作为一个彻底通用的核心,您需要修改它以便使用任意源和任意报价格式进行操作。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/20225
改善
一款基于两条 iMA (移动平均,MA) 和一条 iRSI (相对强弱指数,RSI) 的智能交易系统。 它跟踪虚拟盈利。 在两个品种上工作。
OnChart_Stochastic价格图表上的随机振荡器。