程序库: 交易品种 - 页 5 123456789101112 新评论 fxsaber 2018.08.02 19:11 #41 Viktar Dzemikhau: 我想知道为什么需要自定义符号? tick 历史记录- 而不是 MT5。您可以立即了解源在交易条件方面与 TS 的匹配程度。 可以同步不同符号的价格历史记录,避免出现虚假套利情况。您可以在测试器中根据不同的价格历史记录运行统计智能交易系统,并比较交易条件。可以比较不同馈送之间的滞后期。您可以删除价格历史中的明显错误,填补漏洞。您可以利用必要的统计数据生成自己的价格历史 - Monte Carli TC。您可以生成合成符号的价格历史,并在其上运行 TC。...该分支中已实现一些功能。 fxsaber 2018.09.11 15:58 #42 fxsaber:在 MT5 测试器中,通常(例如外汇),限价订单会出现正滑移,从而导致调用 ExpertRemove。从而大大加快优化速度。 这对自定义符号尤为重要,因为即使余额为负,也会进行交易。简单的 ExpertRemove 是不行的,因为在自定义符号中没有相关数据的情况下(最常见的情况),它会以零最后价格 强制关闭当前仓位。 因此,要想在没有扑克牌 的情况下退出回溯测试,应在 ExpertRemove 之前执行以下操作 // 通过限价订单平仓 bool CloseAll() { bool Res = true; for (int i = OrdersTotal() - 1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS)) Res &= (OrderType() > OP_SELL) ? OrderDelete(OrderTicket()) : OrderSend(OrderSymbol(), OrderType() ? OP_BUYLIMIT : OP_SELLLIMIT , OrderLots(), OrderClosePrice(), 100, 0, 0) && false; return(Res); } void OnTick( void ) { if (IsRemove() && CloseAll()) ExpertRemove(); } 请注意,在当前跳动点上平仓只能在净价上进行(在净价上执行了消除限价订单滑点的原始任务),因为在当前跳动点上平仓只能在净价上进行(在净价上执行了消除限价订单滑点的原始任务)。 交易、自动交易系统和交易策略测试论坛。 库: 符号 fxsaber, 2018.04.06 16:43 在交易所符号Netting 账户 上以当前价格下达的限价订单将立即执行(在 Tester 中),无需等待下一个刻度线。 请注意,重要的不仅是股票代码,还有净额结算账户。例如,您可以在对冲-MQ-Demo 中使用 MOEX 符号,但其执行方式(在测试器中)与在同一净额结算-MQ-Demo 中的执行方式(在测试器中)不同。 这就是为什么在完全相同的 MOEX 符号上进行的回溯测试会因账户类型不同而不同的原因之一。因此,有时您必须等待下一个跳动点。 这就是跳舞。 fxsaber 2018.09.11 17:37 #43 关于交易、自动交易系统和交易策略测试的论坛 图书馆:符号 fxsaber, 2018.04.07 22:37 摘要在真实刻度上,刻度数量减少了 16 倍(最轻的过滤器),优化速度提高了 14 倍,质量丝毫不受影响(此处未输入的分析)。当然,只有以特定方式编写 TS 时才能做到这一点。特别是在没有条形分析的情况下。 以前的免费通用加速度 只提高了两倍。现在的也是免费的(质量不受影响),但通用性较差。然而,收益却超过了一个数量级。现在,我只用这种方法优化 TC。没有错。既然话题涉及加速,这里还有一个加速秘诀 交易、自动交易系统和交易策略测试论坛。 错误、错误、问题 fxsaber, 2018.09.11 17:15 测试器文件夹移至 5GbRAMDisk,并在 MT5 目录中执行 mklink /j Tester z:\Tester 现在固态硬盘安然入睡,优化速度提高了 ~1.5倍(目测),而且是免费的!同时,固态硬盘也不会被杀死。 Libraries: Symbol 反向交易: 减少最大回撤以及在其它市场上测试 资金管理回顾 fxsaber 2018.09.12 20:52 #44 fxsaber:简单的 ExpertRemove 是做不到的,因为如果自定义符号中没有相关数据(最常见的情况),当前仓位就会被强制平仓,最后价格为零。 这些就是舞蹈。拐杖还在另一个 关于交易、自动交易系统和测试交易策略的论坛 错误、错误、问题 fxsaber, 2018.09.12 18:30 视频中 在真实刻度上的交易所工具。条形图由 Bid 构建,无翻转数据,BUY 仓位打开。可以清楚地看到,该头寸的当前收盘价 PositionGetDouble(POSITION_PRICE_CURRENT) 一直等于零,尽管 Bid 一直在变化。我怎样才能向测试员解释,股票代码应按 Bid 关闭 BUY 仓位?现在,即使是权益也无法计算。这就是为什么目前唯一的解决办法是计算(Bid+Ask)/2。 fxsaber 2018.09.30 11:31 #45 fxsaber: 由于主题涉及加速测试者三个月的 "真实点差 "演练(800 万点差)耗时 100 毫秒(4000 次订单发送、800 次交易 + EA 逻辑)。配方是自定义符号。 Denis Kirichenko 2018.10.11 10:02 #46 感谢您提供的代码。我已经根据它为自己创建了一些东西...不过,我稍微修改了一下克隆方法,以便可以加载历史记录的某一部分。否则,如果有很多刻度,就会消耗大量内存。 bool CiCustomSymbol::Clone(const string _src_symbol,const ulong _from_msc=0,const ulong _to_msc=LONG_MAX) fxsaber 2018.10.11 10:23 #47 Denis Kirichenko:稍微调整了克隆方法,允许加载历史记录的某一部分。否则,如果有很多刻度,就会消耗大量内存。考虑到您的意见,我已经进行了更新,谢谢。 Denis Kirichenko 2018.10.11 18:32 #48 我还创建了 2 个从文件加载自定义历史记录的方法。假设有 2 个包含刻度线和分钟数的文件。任务是将它们加载到所选符号的刻度和报价数据库中。 bool LoadTicks(const string _src_file_name); bool LoadRates(const string _src_file_name); fxsaber 2018.10.11 18:59 #49 Denis Kirichenko:我还创建了 2 个从文件加载自定义历史记录的方法。假设有 2 个包含刻度线和分钟数的文件。任务是将它们加载到所选符号的刻度和报价数据库中。因此,在一般情况下没有定义格式。 Denis Kirichenko 2018.10.11 19:13 #50 fxsaber:因此,格式并没有普遍定义。是的,但我们需要考虑一下。不过,我有指定格式的"√"存档,现在我已经把它做出来了。很简单:<日期>,<时间>,<编号>,<任务>。 123456789101112 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我想知道为什么需要自定义符号?
tick 历史记录- 而不是 MT5。您可以立即了解源在交易条件方面与 TS 的匹配程度。
该分支中已实现一些功能。
在 MT5 测试器中,通常(例如外汇),限价订单会出现正滑移,从而导致调用 ExpertRemove。从而大大加快优化速度。
这对自定义符号尤为重要,因为即使余额为负,也会进行交易。
简单的 ExpertRemove 是不行的,因为在自定义符号中没有相关数据的情况下(最常见的情况),它会以零最后价格 强制关闭当前仓位。
因此,要想在没有扑克牌 的情况下退出回溯测试,应在 ExpertRemove 之前执行以下操作
请注意,在当前跳动点上平仓只能在净价上进行(在净价上执行了消除限价订单滑点的原始任务),因为在当前跳动点上平仓只能在净价上进行(在净价上执行了消除限价订单滑点的原始任务)。
交易、自动交易系统和交易策略测试论坛。
库: 符号
fxsaber, 2018.04.06 16:43
在交易所符号Netting 账户 上以当前价格下达的限价订单将立即执行(在 Tester 中),无需等待下一个刻度线。
请注意,重要的不仅是股票代码,还有净额结算账户。例如,您可以在对冲-MQ-Demo 中使用 MOEX 符号,但其执行方式(在测试器中)与在同一净额结算-MQ-Demo 中的执行方式(在测试器中)不同。
这就是为什么在完全相同的 MOEX 符号上进行的回溯测试会因账户类型不同而不同的原因之一。
因此,有时您必须等待下一个跳动点。
这就是跳舞。
关于交易、自动交易系统和交易策略测试的论坛
图书馆:符号
fxsaber, 2018.04.07 22:37
摘要
在真实刻度上,刻度数量减少了 16 倍(最轻的过滤器),优化速度提高了 14 倍,质量丝毫不受影响(此处未输入的分析)。当然,只有以特定方式编写 TS 时才能做到这一点。特别是在没有条形分析的情况下。
以前的免费通用加速度 只提高了两倍。现在的也是免费的(质量不受影响),但通用性较差。然而,收益却超过了一个数量级。现在,我只用这种方法优化 TC。没有错。
既然话题涉及加速,这里还有一个加速秘诀
交易、自动交易系统和交易策略测试论坛。
错误、错误、问题
fxsaber, 2018.09.11 17:15
测试器文件夹移至 5GbRAMDisk,并在 MT5 目录中执行
现在固态硬盘安然入睡,优化速度提高了 ~1.5倍(目测),而且是免费的!
同时,固态硬盘也不会被杀死。
简单的 ExpertRemove 是做不到的,因为如果自定义符号中没有相关数据(最常见的情况),当前仓位就会被强制平仓,最后价格为零。
这些就是舞蹈。
拐杖还在另一个
关于交易、自动交易系统和测试交易策略的论坛
错误、错误、问题
fxsaber, 2018.09.12 18:30
视频中
在真实刻度上的交易所工具。条形图由 Bid 构建,无翻转数据,BUY 仓位打开。可以清楚地看到,该头寸的当前收盘价
一直等于零,尽管 Bid 一直在变化。我怎样才能向测试员解释,股票代码应按 Bid 关闭 BUY 仓位?现在,即使是权益也无法计算。
这就是为什么目前唯一的解决办法是计算(Bid+Ask)/2。
由于主题涉及加速
测试者三个月的 "真实点差 "演练(800 万点差)耗时 100 毫秒(4000 次订单发送、800 次交易 + EA 逻辑)。配方是自定义符号。
感谢您提供的代码。我已经根据它为自己创建了一些东西...不过,我稍微修改了一下克隆方法,以便可以加载历史记录的某一部分。否则,如果有很多刻度,就会消耗大量内存。
稍微调整了克隆方法,允许加载历史记录的某一部分。否则,如果有很多刻度,就会消耗大量内存。
考虑到您的意见,我已经进行了更新,谢谢。
我还创建了 2 个从文件加载自定义历史记录的方法。假设有 2 个包含刻度线和分钟数的文件。任务是将它们加载到所选符号的刻度和报价数据库中。
我还创建了 2 个从文件加载自定义历史记录的方法。假设有 2 个包含刻度线和分钟数的文件。任务是将它们加载到所选符号的刻度和报价数据库中。
因此,在一般情况下没有定义格式。
因此,格式并没有普遍定义。
是的,但我们需要考虑一下。不过,我有指定格式的"√"存档,现在我已经把它做出来了。很简单:<日期>,<时间>,<编号>,<任务>。