请观看如何免费下载自动交易
请在Facebook上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
显示:
1917
等级:
(39)
已发布:
2018.04.27 10:56
已更新:
2018.08.30 13:14
\MQL5\Include\
Dictionary.mqh (38.15 KB) 预览
Symbol.mqh (5.32 KB) 预览
\MQL5\Include\fxsaber\ThirdPartyTicks\
Array.mqh (1.11 KB) 预览
Casting.mqh (0.48 KB) 预览
Data.mqh (1.12 KB) 预览
File.mqh (2.6 KB) 预览
Rates.mqh (2.35 KB) 预览
String.mqh (2.41 KB) 预览
Ticks.mqh (7.89 KB) 预览
Web.mqh (0.9 KB) 预览
\MQL5\Include\Zip\
Zip.mqh (17.22 KB) 预览
ZipContent.mqh (11.62 KB) 预览
ZipFile.mqh (5.91 KB) 预览
ZipHeader.mqh (12.47 KB) 预览
\MQL5\Scripts\fxsaber\
需要基于此代码的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 OnChart_Stochastic

价格图表上的随机振荡器。

PowerSystem PowerSystem

代码实现Alexander Elder的动力系统指标,它将展示价格趋势,以及趋势反转。

显示日开盘价的指标 显示日开盘价的指标

本指标绘制日开盘价,他工作于直到H1的各个时段。