文章 "在 MetaTrader 5 中创建和测试自定义交易品种" - 页 2

 
Rashid Umarov:

根据日志,存款货币= 美元,测试在 EURCHF 符号上进行。 测试者需要 EURUSD 或 USDEUR 报价来计算保证金。

他在可用符号中搜索,找到 EURUSD,下载并同步。

这里 的截图显示了用于测试的自定义符号的所有货币设置。自定义符号的名称并不重要。

 
fxsaber:

自定义符号的名称不应该有任何影响。

请仔细阅读以下文章

在自定义符号上测试交易策略

MetaTrader 5 多线程策略测试器允许您测试 许多金融工具的真实点差 交易策略。充分利用它的优势,在您自己的符号上测试策略。您只需导入高质量的分钟(或更好的刻度)历史记录,并为每种工具设置必要的属性,以详细重现交易环境。之后,只需选择所需的智能交易系统并设置测试设置即可。一切操作都与使用经纪商提供的常规交易符号相同。

重要的是向测试器提供所有必要的符号,这些符号可能是计算保证金要求和交易账户货币利润所必需的。计算保证金和利润时,策略测试器会自动使用可用的交叉汇率。 例如,我们创建了 AUDCAD.custom 符号,其 外汇 保证金计算类型和我们的账户货币是美元。然后,根据外汇 工具的名称,测试器按以下顺序搜索必要的符号:

  1. 首先,搜索 AUDUSD.custom(用于计算保证金)和 USDCAD.custom(用于计算交易利润)等符号。
  2. 然后,如果缺少其中任何一种工具,则搜索第一个符号,其名称分别对应于必要的货币对 - AUDUSD 和 USDCAD。例如,找到 AUDUSD.b 和 USDCAD.b - 这意味着这些工具的汇率将用于保证金和利润计算。

 
Rashid Umarov:

仔细阅读文章

第一次阅读文章时,我就注意到了这一点。对于测试人员来说," 符号基础货币"、"符号保证金货币 "和 "符号利润货币 "这些概念算什么?

我想测试一个 XXXYYY 自定义符号,没错,就是这个名字。它是 EURUSD 符号的克隆。也就是说,该符号的所有货币都已明确定义。

现在测试应该被拒绝,理由是名称不符合您的喜好?

所有符号设置都包含在其属性中,而不是名称中。

如何使 EURCHF_custom 符号能够感知其明确定义的设置,而不是只看名称而忽略它们?

将计算方法从外汇改为期货,结果

2017.09.05 11:25:03.448 Tester  EURCHF_custom: history data begins from 2017.07.26 00:00
2017.09.05 11:25:03.448 Tester  EURUSD: history data begins from 1981.01.02 00:00
2017.09.05 11:25:03.548 Tester  USDCHF: preliminary downloading of M1 history started
2017.09.05 11:25:05.472 Tester  USDCHF: 20% history downloaded
2017.09.05 11:25:07.102 Tester  USDCHF: 31% history downloaded
2017.09.05 11:25:08.023 Tester  USDCHF: 40% history downloaded
2017.09.05 11:25:09.761 Tester  USDCHF: 54% history downloaded
2017.09.05 11:25:10.576 Tester  USDCHF: 61% history downloaded
2017.09.05 11:25:12.310 Tester  USDCHF: 75% history downloaded
2017.09.05 11:25:13.128 Tester  USDCHF: 82% history downloaded
2017.09.05 11:25:14.871 Tester  USDCHF: 95% history downloaded
2017.09.05 11:25:15.685 Tester  USDCHF: preliminary downloading of M1 history completed in 0:12.231
2017.09.05 11:25:15.685 Tester  USDCHF: history data begins from 2015.12.14 00:00
2017.09.05 11:25:15.685 Core 1  agent process started

继续拉动两个主力合约,完全忽略符号设置。

 
许多运行时设置都取决于字符用户组。如何设置?
 

关于交易、自动交易系统和交易策略测试的论坛

图书馆:符号

fxsaber, 2017.09.20 07:31 AM.

从市场上获取 Expert Advisor 的免费演示版,并在测试器中的新报价上进行比赛,复制器从测试器的结果中获取数据。因此,不需要付费版本


也许有必要禁止市场专家顾问对自定义符号进行回溯测试...

 

如果我需要创建一个符号的完整交互式副本,我是否应该只通过CustomTicksAdd 通过指标(它们不会跳过刻度线)抛出刻度线?

这些服务会像智能交易系统一样跳过刻度吗?

 
它缺乏这种功能
// 抛出一个玻璃杯,触发自定义字符上的 BookEvent 事件
bool  CustomMarketBookSet( 
   const string        symbol,     // 符号 
   const MqlBookInfo&  book[]      // 数组引用
   );
我制作合成杯。我希望能像使用传统杯子一样使用它们。
 

外汇很好,但我还是不明白如何让测试仪与MOEX 上的 Si 期货一起工作!?

我从原版复制了历史记录和工具设置,但输出是空的。

日志是这样的 - 我不知道如何解释它

2017.10.14 21:23:55.365 2017.10.01 00:00:00   Si-12.17_custom has type Exchange Execution. The execution policy is set - Return
2017.10.14 21:23:55.368 Si-12.17_custom,M5: history cache allocated for 133714 bars and contains 1131 bars from 2017.09.21 10:00 to 2017.09.29 23:45
2017.10.14 21:23:55.368 Si-12.17_custom,M5: history begins from 2017.09.21 10:00
2017.10.14 21:23:55.372 Si-12.17_custom,Daily: history cache allocated for 464 bars and contains 7 bars from 2017.09.21 00:00 to 2017.09.29 00:00
2017.10.14 21:23:55.372 Si-12.17_custom,Daily: history begins from 2017.09.21 00:00
2017.10.14 21:23:55.375 Si-12.17_custom,H1: history cache allocated for 11142 bars and contains 98 bars from 2017.09.21 10:00 to 2017.09.29 23:00
2017.10.14 21:23:55.376 Si-12.17_custom,H1: history begins from 2017.09.21 10:00
2017.10.14 21:23:55.377 BR Splice: symbol to be synchronized
2017.10.14 21:23:55.377 BR Splice: symbol synchronized, 3624 bytes of symbol info received
2017.10.14 21:23:55.377 BR Splice: history synchronization started
2017.10.14 21:23:55.379 BR Splice: load 33 bytes of history data to synchronize in 0:00:00.000
2017.10.14 21:23:55.379 BR Splice: history synchronized from 2015.01.05 to 2017.10.13
2017.10.14 21:23:55.538 BR Splice,Daily: history cache allocated for 464 bars and contains 440 bars from 2016.01.04 00:00 to 2017.09.29 00:00
2017.10.14 21:23:55.539 BR Splice,Daily: history begins from 2016.01.04 00:00
2017.10.14 21:23:55.661 Si-12.17_custom,H4: history cache allocated for 2785 bars and contains 28 bars from 2017.09.21 08:00 to 2017.09.29 20:00
2017.10.14 21:23:55.661 Si-12.17_custom,H4: history begins from 2017.09.21 08:00
2017.10.14 21:23:55.856 BR Splice,H4: history cache allocated for 2785 bars and contains 1759 bars from 2016.01.04 08:00 to 2017.09.29 20:00
2017.10.14 21:23:55.856 BR Splice,H4: history begins from 2016.01.04 08:00
 

您好!
我正在根据几个工具的线性卷积制作一个合成指数(SYMBOL1*X1+SYMBOL2*X2+ SYMBOLn*Xn)。(SYMBOL1*X1+SYMBOL2*X2+....SYMBOLn*Xn)。
,我打算通过一个指标将其可视化,但我发现了自定义符号,我认为这将更便于感知。
,我是通过 tick 函数(CustomTicksUpdate)实现的。

我无法让自定义符号 "勾选",是否有完全通过勾选数据实现这一任务的示例?

我做得很简单:我创建了一个符号,然后在脚本中。

   MqlTick tick[];
   ArrayResize(tick, 1);
   tick[0].ask=indexAsk;
   tick[0].bid=indexBid;
   tick[0].flags=TICK_FLAG_BID|TICK_FLAG_ASK;
//---
   CustomTicksUpdate("ARBINDEX",tick);

其中indexAsk 和 indexBid 是我计算的价格。
我以为如果在任何工具上多次运行此脚本,就会形成我的符号的历史报价,但却出现了 "等待更新"。
我的构建:1643
如果您能提供帮助,我将不胜感激。

 
bistreevseh:

我的构建:1643

如果还不行,请在这里发帖。