文章 "自定义品种(符号):实践基础" - 页 4 1234567 新评论 Stanislav Korotky 2021.07.02 21:29 #31 afsmerinostra:下午好 斯坦尼斯拉夫非常感谢你的文章和所做的工作,我发现了很多新东西!您能告诉我在 RENCO 中形成反转条形图的逻辑代码在哪里吗?我在测试器中已经为此纠结了一个月,我以为我可以找到一种方法来简单地用信号绕过它们,但不是这样....)我是编程初学者,所以如果您能具体指点一下,我将不胜感激。我是编程初学者,如果您能具体指点一下,我将不胜感激。为什么不能让 OPEN 保持原样,为什么要在反转时移动它?这对于测试仪和一般情况下都会容易得多。历史上 Renko 也是这样吗?除了 "正确性 "之外,还有其他实际用途吗? RenkoTicks 中的所有条形图(如果我们在谈论它的话)似乎都是根据相同的算法构建的--它们在注释中用 "上升方框 "和 "下降方框 "注释进行标记(反转没有特殊标记,但可以从方框的方向看出)。我认为在指标中建立信号更合乎逻辑,我看不出使用自定义符号生成器有什么意义。 我不理解开放运动。根据定义,经典的 renko 方框大小相等,反转以方框大小的缺口为标志。还有其他种类的 renko(包括无间隙的 renko),但文章中没有提到。 Sebastien Nicolas Paul Boulenc 2021.08.12 11:03 #32 嗨,也许我漏掉了一个部分,但是,仁科木块的芯线怎么会比块身大呢? Stanislav Korotky 2021.08.12 16:32 #33 Adren6: 嗨,也许我漏掉了一部分,但是,renko 区块的蜡烛芯怎么会比蜡烛体大呢? 蜡烛芯显示的是上一个箱体完成到下一个箱体完成之间的价格变动。例如,如果我们完成了上行箱体,如果距离小于所需的箱体大小,价格可能会上升一些点,但不会形成下一个箱体。然后,价格开始下行,与上一个上行箱体并排,向下覆盖所有箱体(仍不是新箱体),然后覆盖更多点,最后达到箱体大小。此时,新的下跌箱体形成,上扬的蜡烛芯显示出所有的距离,即前一个上行箱体和前一个未完成的上行运动,这不足以形成下一个上行箱体。 灯芯的大小总是小于两个箱体的大小,因为这是导致反转的距离。在反转没有发生之前,灯芯收集所有的波动。 strongcel 2021.11.16 06:32 #34 斯坦尼斯拉夫,我一直在寻找操作 Renko 图表的方法,你的开发涵盖了我所有的疑问。感谢你们为交易者带来的巨大价值。专家顾问只需要一个开始和结束时间即可进行交易。 Andrey Khatimlianskii 2022.02.04 17:58 #35 我还遇到了 "HistoryCache: container header read error [0]"(历史缓存:容器头读取错误 [0]),随后是 "HistoryBase: invalid container (1970.01.01) found"(历史库:发现无效容器 (1970.01.01))。 与此同时,2022 年 1 月的历史记录从自定义工具的历史记录中删除,出现了从 12 月 31 日到今天的空白。 这只发生在两台电脑上,资源足够。 @Slava,您需要哪些细节来重现? Stanislav Korotky 2022.02.05 19:00 #36 Andrey Khatimlianskii #:还遇到了 "HistoryCache:容器头读取错误 [0]",接着是 "HistoryBase:发现无效容器 (1970.01.01)"。这就从自定义工具的历史记录中删除了 2022 年 1 月的历史记录,从而出现了从 12 月 31 日到今天的空白。这种情况只出现在 2 台计算机上,资源足够。@Slava,你需要哪些细节来重现? 在我看来,你们早就可以在测试版终端中内置一个自动报告器,就像安卓向 Google Play 发送挂起和异常情况的方式一样。 这样就不需要在重现情况和提供证据时手舞足蹈了--所有必要的信息都会以转储的形式经用户同意后发送给 MQ。 但这显然不适合 MQ,因为他们甚至关闭了 SD。如果有一个自动报告器,他们就会被大量的错误报告淹没。 Andrey Khatimlianskii 2022.02.05 23:32 #37 Stanislav Korotky #:在我看来,很久以前,你就可以在测试版终端中内置一个自动报告器,就像 Android 向 Google Play 发送挂起和异常情况一样。这样就不需要在重现情况和提供证据时手舞足蹈了--经用户同意,所有必要的信息都会以转储的形式发送到 MQ。但这显然不适合 MQ,因为他们甚至关闭了 SD。如果有一个自动报告器,他们就会被大量的错误报告淹没。 我同意,在服务台关闭后,修复用户发现的错误变得非常困难。 只有 fxsaber 以某种方式将他的一些想法带到了 MQ 中。 显然,我们已经到了应该利用现有资源而不是等待任何东西的阶段。 Mr David Frederick Roberts 2022.02.09 15:00 #38 使用自定义符号 时,是否会对点差进行某种缩放? 我导入了一些欧元兑美元的 Dukascopy tick 数据(我将其称为 EURUSD_TDS)。 将自定义符号 "Ticks "选项卡上的价格与使用以下代码显示的同期 价格进行比较后发现,买入价基本相同,但卖出价不同,因此点差明显低于 "Ticks "选项卡上的点差 - 即 EA 看到的点差低于原始数据。此外,"点数 "的时间也不同,这让我有点吃惊,但最令人担忧的还是点差问题。 void OnTick() { double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); datetime now = TimeCurrent(); if ((now >= StartDate) && (now < EndDate)) { double spread = (Ask - Bid) / _Point; writeToLog(StringFormat("%s, %.5f, %.5f, %.i", (string)now, Bid, Ask, (int)spread)); } } 原始数据,点差在 11 点到 67 点之间... EA 所见,点差为 9 或 26 点... 自动构造支撑和阻力线 以 delta 指标为例开发股票交易量控制指标 MetaTrader 5 中进行测试的原理 Stanislav Korotky 2022.02.10 18:42 #39 Mr David Frederick Roberts 自定义符号 时,是否会对价差进行某种缩放? 我导入了一些欧元兑美元的 Dukascopy tick 数据(我将其称为 EURUSD_TDS)。 将自定义符号 "Ticks "选项卡上的价格与使用以下代码显示的同期 价格进行比较后发现,买入价基本相同,但卖出价不同,因此点差明显低于 "Ticks "选项卡上的点差 - 即 EA 看到的点差低于原始数据。此外,"点数 "的时间也不同,这让我有点吃惊,但最令人担忧的还是点差问题。原始数据,点差在 11 点到 67 点之间... EA 所见,点差为 9 或 26 点... 您好,点差没有 "缩放",但可能有其他细微差别干扰。例如,请确保您在真实点数模式下进行测试,并且没有启用固定点差选项(根据右侧日志,每个条形图的点差都是一样的)。 如果能看到 UI 表和 EA 日志(包括毫秒数)的精确刻度顺序就更好了--您当前的截图似乎没有显示相同的刻度顺序。 Mr David Frederick Roberts 2022.02.13 01:42 #40 Stanislav Korotky #:您好,点差没有 "缩放",但可能有其他细微差别干扰。例如,请确保您是在真实点数模式下进行测试,并且没有启用固定点差选项(根据右侧日志,每个条形图的点差都是一样的)。如果能看到 UI 表和 EA 日志(包括毫秒数)的精确刻度顺序就更好了--您当前的截图似乎没有显示相同的刻度顺序。 感谢您的回复,这很奇怪,我确实使用的是真实刻度线模式,而且我不知道 MT5 中还有固定点差选项,所以我确定我没有(我更熟悉 MT4)。我没有注意到每个条形图的点差都是一样的,事实上,查看完整文件后发现,点差似乎只在 1 分钟边界上发生变化。 我想我的想法是正确的,即调用 SymbolInfoDouble() 应该返回作为 OnTick() 事件调用结果处理的 tick 的价格,而不是某种 M1 值? 我试着用下面的代码打印我所期望的带有毫秒的实际跳动时间,但毫秒值总是零...... void OnTick() { double Ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); double Bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); long timeMillis = SymbolInfoInteger(_Symbol, SYMBOL_TIME_MSC); datetime now = TimeCurrent(); datetime time = (datetime)(timeMillis / 1000); long millis = timeMillis % 1000; if ((now >= StartDate) && (now < EndDate)) { double spread = (Ask - Bid) / _Point; writeToLog(StringFormat("%s.%i, %.5f, %.5f, %.2f", (string)time, millis, Bid, Ask, spread)); } } 编辑:正如我所说,我对 MQL5 比较陌生--我刚发现 SymbolInfoTick(),也许我应该使用它,而不是像现在这样!我试试看,看看会发生什么... 好的,这样做没有任何区别,结果完全一样,但都与终端中的 "Symbol Ticks "对话框不一致。 我说毫秒值始终为零是错误的,它在一分钟内(即午夜前一分钟)是非零的! 在我看来,这是一个相当重要的问题。 我的交易 EA 希望收到的刻度线价格与导入的源刻度线数据一致(其他人也一样!)。 我敢说我做错了什么,但如果是这样,我想知道是什么。我附上了包含测试 EA 的压缩文件、午夜两小时结果的电子表格,以及一些设置和刻度线的截图。 附加的文件: Tests_on_Custom_Symbol_.zip 152 kb 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
下午好 斯坦尼斯拉夫
非常感谢你的文章和所做的工作,我发现了很多新东西!
您能告诉我在 RENCO 中形成反转条形图的逻辑代码在哪里吗?我在测试器中已经为此纠结了一个月,我以为我可以找到一种方法来简单地用信号绕过它们,但不是这样....)我是编程初学者,所以如果您能具体指点一下,我将不胜感激。我是编程初学者,如果您能具体指点一下,我将不胜感激。
为什么不能让 OPEN 保持原样,为什么要在反转时移动它?这对于测试仪和一般情况下都会容易得多。历史上 Renko 也是这样吗?除了 "正确性 "之外,还有其他实际用途吗?
RenkoTicks 中的所有条形图(如果我们在谈论它的话)似乎都是根据相同的算法构建的--它们在注释中用 "上升方框 "和 "下降方框 "注释进行标记(反转没有特殊标记,但可以从方框的方向看出)。我认为在指标中建立信号更合乎逻辑,我看不出使用自定义符号生成器有什么意义。
我不理解开放运动。根据定义,经典的 renko 方框大小相等,反转以方框大小的缺口为标志。还有其他种类的 renko(包括无间隙的 renko),但文章中没有提到。
嗨,也许我漏掉了一部分,但是,renko 区块的蜡烛芯怎么会比蜡烛体大呢?
蜡烛芯显示的是上一个箱体完成到下一个箱体完成之间的价格变动。例如,如果我们完成了上行箱体,如果距离小于所需的箱体大小,价格可能会上升一些点,但不会形成下一个箱体。然后,价格开始下行,与上一个上行箱体并排,向下覆盖所有箱体(仍不是新箱体),然后覆盖更多点,最后达到箱体大小。此时,新的下跌箱体形成,上扬的蜡烛芯显示出所有的距离,即前一个上行箱体和前一个未完成的上行运动,这不足以形成下一个上行箱体。
灯芯的大小总是小于两个箱体的大小,因为这是导致反转的距离。在反转没有发生之前,灯芯收集所有的波动。
我还遇到了 "HistoryCache: container header read error [0]"(历史缓存:容器头读取错误 [0]),随后是 "HistoryBase: invalid container (1970.01.01) found"(历史库:发现无效容器 (1970.01.01))。
与此同时,2022 年 1 月的历史记录从自定义工具的历史记录中删除,出现了从 12 月 31 日到今天的空白。
这只发生在两台电脑上,资源足够。
@Slava,您需要哪些细节来重现?
还遇到了 "HistoryCache:容器头读取错误 [0]",接着是 "HistoryBase:发现无效容器 (1970.01.01)"。
这就从自定义工具的历史记录中删除了 2022 年 1 月的历史记录,从而出现了从 12 月 31 日到今天的空白。
这种情况只出现在 2 台计算机上,资源足够。
@Slava,你需要哪些细节来重现?
在我看来,你们早就可以在测试版终端中内置一个自动报告器,就像安卓向 Google Play 发送挂起和异常情况的方式一样。
这样就不需要在重现情况和提供证据时手舞足蹈了--所有必要的信息都会以转储的形式经用户同意后发送给 MQ。
但这显然不适合 MQ,因为他们甚至关闭了 SD。如果有一个自动报告器,他们就会被大量的错误报告淹没。
在我看来,很久以前,你就可以在测试版终端中内置一个自动报告器,就像 Android 向 Google Play 发送挂起和异常情况一样。
这样就不需要在重现情况和提供证据时手舞足蹈了--经用户同意,所有必要的信息都会以转储的形式发送到 MQ。
但这显然不适合 MQ,因为他们甚至关闭了 SD。如果有一个自动报告器,他们就会被大量的错误报告淹没。
我同意,在服务台关闭后,修复用户发现的错误变得非常困难。
只有 fxsaber 以某种方式将他的一些想法带到了 MQ 中。
显然,我们已经到了应该利用现有资源而不是等待任何东西的阶段。
使用自定义符号 时,是否会对点差进行某种缩放?
我导入了一些欧元兑美元的 Dukascopy tick 数据(我将其称为 EURUSD_TDS)。 将自定义符号 "Ticks "选项卡上的价格与使用以下代码显示的同期 价格进行比较后发现,买入价基本相同,但卖出价不同,因此点差明显低于 "Ticks "选项卡上的点差 - 即 EA 看到的点差低于原始数据。此外,"点数 "的时间也不同,这让我有点吃惊,但最令人担忧的还是点差问题。
原始数据,点差在 11 点到 67 点之间... EA 所见,点差为 9 或 26 点...
我导入了一些欧元兑美元的 Dukascopy tick 数据(我将其称为 EURUSD_TDS)。 将自定义符号 "Ticks "选项卡上的价格与使用以下代码显示的同期 价格进行比较后发现,买入价基本相同,但卖出价不同,因此点差明显低于 "Ticks "选项卡上的点差 - 即 EA 看到的点差低于原始数据。此外,"点数 "的时间也不同,这让我有点吃惊,但最令人担忧的还是点差问题。
原始数据,点差在 11 点到 67 点之间... EA 所见,点差为 9 或 26 点...
您好,点差没有 "缩放",但可能有其他细微差别干扰。例如,请确保您在真实点数模式下进行测试,并且没有启用固定点差选项(根据右侧日志,每个条形图的点差都是一样的)。
如果能看到 UI 表和 EA 日志(包括毫秒数)的精确刻度顺序就更好了--您当前的截图似乎没有显示相同的刻度顺序。
您好,点差没有 "缩放",但可能有其他细微差别干扰。例如,请确保您是在真实点数模式下进行测试,并且没有启用固定点差选项(根据右侧日志,每个条形图的点差都是一样的)。
如果能看到 UI 表和 EA 日志(包括毫秒数)的精确刻度顺序就更好了--您当前的截图似乎没有显示相同的刻度顺序。
感谢您的回复,这很奇怪,我确实使用的是真实刻度线模式,而且我不知道 MT5 中还有固定点差选项,所以我确定我没有(我更熟悉 MT4)。我没有注意到每个条形图的点差都是一样的,事实上,查看完整文件后发现,点差似乎只在 1 分钟边界上发生变化。 我想我的想法是正确的,即调用 SymbolInfoDouble() 应该返回作为 OnTick() 事件调用结果处理的 tick 的价格,而不是某种 M1 值?
我试着用下面的代码打印我所期望的带有毫秒的实际跳动时间,但毫秒值总是零......
编辑:正如我所说,我对 MQL5 比较陌生--我刚发现 SymbolInfoTick(),也许我应该使用它,而不是像现在这样!我试试看,看看会发生什么...
好的,这样做没有任何区别,结果完全一样,但都与终端中的 "Symbol Ticks "对话框不一致。 我说毫秒值始终为零是错误的,它在一分钟内(即午夜前一分钟)是非零的!
在我看来,这是一个相当重要的问题。 我的交易 EA 希望收到的刻度线价格与导入的源刻度线数据一致(其他人也一样!)。 我敢说我做错了什么,但如果是这样,我想知道是什么。我附上了包含测试 EA 的压缩文件、午夜两小时结果的电子表格,以及一些设置和刻度线的截图。