新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1171 1...116411651166116711681169117011711172117311741175117611771178...1953 新评论 Grigori.S.B 2020.06.08 17:05 #11701 Igor Zakharov:它是否抽出了历史? 它可能是这样。但我不是100%确定。你如何检查这个,打印机会改变条数吗? Igor Zakharov: 在这种情况下,你没有重新计算的机会。 谢谢,看起来是的。 Igor Zakharov: 而新出现的指示器缓冲区 项目则充满了垃圾。 看起来不仅是新的,而且是旧的。我有一种感觉,不仅箭头是随机画的,而且指标线也断了,尽管它不应该。请告知在历史互换的情况下如何组织重新计算,或在哪里寻找例子。 Grigori.S.B 2020.06.08 17:43 #11702 Alexey Viktorov:我在单独插入这个插件时犯了一个错误。你应该只在缓冲区发生变化时才放箭头。同时,不要忘记在所有其他情况下,在缓冲区中放入一个空值。甚至最好一次放一个空值,当趋势发生变化时,用一个箭头填充其中一个缓冲区。 谢谢你的答复。 我检查了原始指标,原来不是我弄错了,而是原先写错了。也就是说,即使没有我的修改,在交换历史时也会崩溃。 novichok2018 2020.06.09 08:37 #11703 这是我第一次提出问题而没有得到任何回复。为新来者提供某种有选择的帮助。 Igor Makanu 2020.06.09 08:51 #11704 novichok2018: 这是我第三次提出问题,得到的是沉默的回答。这是对新手的一种有选择的帮助。 吸引你眼球的第一件事是,你创建了一个 名为LowLine的图形 趋势线对象,后来没有删除它或用不同的名字创建类似的对象... 你不能用同一个名字多次运行ObjectCreate()--它只在第一次工作,然后会出现错误。 在确定分形方面也有一个问题,你试图在开盘后的第2个条形上找到分形,通常在条形上进行循环,并调用分形指标,在找到第一个分形时打破循环,并获得分形所在条形的编号。 novichok2018 2020.06.09 09:58 #11705 Igor Makanu:分形的定义也有问题,你试图在第2条开盘时找到一个分形,通常用分形指标的调用在条上做一个循环,当找到第一个分形时打破这个循环,并得到分形所在的条号。 谢谢你! 的确,我不明白如何获得分形出现的条数,因为它出现在两个条数之后。这就是为什么我在第二条上抓住它。Alert显示指定时期的分形数,但如何设置第二个分形的点来绘制趋势线?不清楚如何按照你的建议去做。 被称为分形的指标 在所有可用的历史上绘制分形。我想解决的任务是,通过落在一天中某一时期的分形画出趋势线,同时考虑到前一天的分形,并根据最后的分形自动重建线条。而且缺乏知识。 Vladimir Karputov 2020.06.09 10:07 #11706 novichok2018:谢谢你! 真的,我不明白如何获得分形出现的条数,因为它晚出现了两个条数。这就是为什么我在第二条上抓住它。Alert显示指定时期的分形数,但如何设置第二个分形的点来画趋势线?不清楚如何按照你的建议去做。被称为分形的指标 在所有可用的历史上绘制分形。我想解决的任务是,通过落在一天中某一时期的分形画出趋势线,同时考虑到前一天的分形,并根据最后的分形自动重建线条。而且缺乏知识。 你确定你需要在第二条杠上抓吗? 以下是测试结果。 关于交易、自动交易系统和测试交易策略的论坛 MQL5:例子。 Vladimir Karputov, 2018.03.19 05:54 2.3. iFractals.需要考虑的两个重要因素 在处理分形的时候,有两个因素需要考虑。 因素一 从 "rate_total-5 "到"rate_total-3 " 的条形上的分形不能重新绘制--它来自指标"Fractals.mq5"的设计(该指标的开放代码位于[data folder]/MQL5/Indicators/Examples/Fractals.mq5)--因为"rate_total-5 "和"rate_total-3"之间的 条形已经成型。 //--- if(prev_calculated<7) { limit=2; //--- clean up arrays ArrayInitialize(ExtUpperBuffer,EMPTY_VALUE); ArrayInitialize(ExtLowerBuffer,EMPTY_VALUE); } else limit=rates_total-5; for(i=limit;i<rates_total-3 && !IsStopped();i++) { //---- Upper Fractal if(high[i]>high[i+1] && high[i]>high[i+2] && high[i]>=high[i-1] && high[i]>=high[i-2]) ExtUpperBuffer[i]=high[i]; else ExtUpperBuffer[i]=EMPTY_VALUE; //---- Lower Fractal if(low[i]<low[i+1] && low[i]<low[i+2] && low[i]<=low[i-1] && low[i]<=low[i-2]) ExtLowerBuffer[i]=low[i]; else ExtLowerBuffer[i]=EMPTY_VALUE; } //--- OnCalculate done. Return new prev_calculated. return(rates_total); } 图1.这就是 "分形 "指标的工作原理。从指标 "Fractals.mq5"的位置对文件进行编号 这意味着,当我们在专家顾问中收到来自iFractals指标的数据时,在 "rate_total-5 "和 "rate_total-4 "条(来自 "Fractals.mq5 "指标位置的条数)上会有一个分形,保证不会被重新渲染。 这里是在 "rate_total-5 "条上形成分形的时刻--在右边有一个新条,1月2日03:00(从指标 "Fractals.mq5 "的位置对文件编号)。 图2.在 "rate_total-5 "条上形成分形的时刻 第二个因素 分形指标 使用EMPTY_VALUE而不是 "0.0 "作为空值。例外是第一次初始化,当指标缓冲区被初始化为零时(这不是由指标 "Fractals.mq5 "完成的,而是由MQL5在创建数组并将其与指标缓冲区连接时完成的)。 交易员生存技巧: 由指标制作的快餐 开发多币种 EA 交易(第 18 MQL5-RPC来自 MQL5 的远程过程调用:针对乐趣及获利的网络服务访问及 XML-RPC Igor Makanu 2020.06.09 10:21 #11707 novichok2018:从你的建议来看,也不清楚如何做。 这里有一个寻找分形的函数,只是针对专家顾问,它对我很有效 https://www.mql5.com/ru/forum/160683/page968#comment_13214633 novichok2018 2020.06.09 10:32 #11708 Vladimir Karputov:你确定你应该在第二条杠上接住吗?以下是测试结果。 是的,谢谢你。在第三条上没有重绘。只是这并没有改变问题的本质。 novichok2018 2020.06.09 11:12 #11709 Igor Makanu:这里有一个寻找分形的函数,只是针对一个EA,它对我来说很有效https://www.mql5.com/ru/forum/160683/page968#comment_13214633 谢谢你,这很有效。 我不明白如何在代码中反映一个新分形的出现。因为barfrup_1总是比barfrup_2小,所以当一个新的分形出现时,对barfrup_1的编号跳跃没有得到任何结果,因为它仍然比barfrup_2小。 还有一件事:我不明白如何提取barfrup_1和barfrup_2的高值。 Igor Makanu 2020.06.09 11:44 #11710 novichok2018:还有一件事:我不明白如何提取barfrup_1和barfrup_2的高值。 在图表上抛出一个分形指标,用这个函数测试EA 并通过传递给我的函数MODE_UPPER和 MODE_LOWER来重新打印找到的值 novichok2018: 谢谢你,这很有效。 我只是不明白如何在代码中呈现一个新分形的出现。 你需要记住酒吧的时间;当一个新的酒吧出现时,编号会改变,而酒吧的开放时间始终是不变的。 也就是说,当你启动我的代码时,记住检测到分形的那根柱子的时间,然后再启动它--找到那根柱子,将那根柱子的时间与记忆中的时间进行比较--时间不同,就意味着有新的分形。 1...116411651166116711681169117011711172117311741175117611771178...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
它是否抽出了历史?
它可能是这样。但我不是100%确定。你如何检查这个,打印机会改变条数吗?
在这种情况下,你没有重新计算的机会。
谢谢,看起来是的。
而新出现的指示器缓冲区 项目则充满了垃圾。
看起来不仅是新的,而且是旧的。我有一种感觉,不仅箭头是随机画的,而且指标线也断了,尽管它不应该。请告知在历史互换的情况下如何组织重新计算,或在哪里寻找例子。
我在单独插入这个插件时犯了一个错误。你应该只在缓冲区发生变化时才放箭头。同时,不要忘记在所有其他情况下,在缓冲区中放入一个空值。
甚至最好一次放一个空值,当趋势发生变化时,用一个箭头填充其中一个缓冲区。
谢谢你的答复。
我检查了原始指标,原来不是我弄错了,而是原先写错了。也就是说,即使没有我的修改,在交换历史时也会崩溃。
这是我第三次提出问题,得到的是沉默的回答。这是对新手的一种有选择的帮助。
吸引你眼球的第一件事是,你创建了一个 名为LowLine的图形 趋势线对象,后来没有删除它或用不同的名字创建类似的对象...
你不能用同一个名字多次运行ObjectCreate()--它只在第一次工作,然后会出现错误。
在确定分形方面也有一个问题,你试图在开盘后的第2个条形上找到分形,通常在条形上进行循环,并调用分形指标,在找到第一个分形时打破循环,并获得分形所在条形的编号。
分形的定义也有问题,你试图在第2条开盘时找到一个分形,通常用分形指标的调用在条上做一个循环,当找到第一个分形时打破这个循环,并得到分形所在的条号。
谢谢你!
的确,我不明白如何获得分形出现的条数,因为它出现在两个条数之后。这就是为什么我在第二条上抓住它。Alert显示指定时期的分形数,但如何设置第二个分形的点来绘制趋势线?不清楚如何按照你的建议去做。
被称为分形的指标 在所有可用的历史上绘制分形。我想解决的任务是,通过落在一天中某一时期的分形画出趋势线,同时考虑到前一天的分形,并根据最后的分形自动重建线条。而且缺乏知识。
谢谢你!
真的,我不明白如何获得分形出现的条数,因为它晚出现了两个条数。这就是为什么我在第二条上抓住它。Alert显示指定时期的分形数,但如何设置第二个分形的点来画趋势线?不清楚如何按照你的建议去做。
被称为分形的指标 在所有可用的历史上绘制分形。我想解决的任务是,通过落在一天中某一时期的分形画出趋势线,同时考虑到前一天的分形,并根据最后的分形自动重建线条。而且缺乏知识。
你确定你需要在第二条杠上抓吗?
以下是测试结果。
关于交易、自动交易系统和测试交易策略的论坛
MQL5:例子。
Vladimir Karputov, 2018.03.19 05:54
在处理分形的时候,有两个因素需要考虑。
因素一
从 "rate_total-5 "到"rate_total-3 " 的条形上的分形不能重新绘制--它来自指标"Fractals.mq5"的设计(该指标的开放代码位于[data folder]/MQL5/Indicators/Examples/Fractals.mq5)--因为"rate_total-5 "和"rate_total-3"之间的 条形已经成型。
图1.这就是 "分形 "指标的工作原理。从指标 "Fractals.mq5"的位置对文件进行编号
这意味着,当我们在专家顾问中收到来自iFractals指标的数据时,在 "rate_total-5 "和 "rate_total-4 "条(来自 "Fractals.mq5 "指标位置的条数)上会有一个分形,保证不会被重新渲染。
这里是在 "rate_total-5 "条上形成分形的时刻--在右边有一个新条,1月2日03:00(从指标 "Fractals.mq5 "的位置对文件编号)。
图2.在 "rate_total-5 "条上形成分形的时刻
第二个因素
分形指标 使用EMPTY_VALUE而不是 "0.0 "作为空值。例外是第一次初始化,当指标缓冲区被初始化为零时(这不是由指标 "Fractals.mq5 "完成的,而是由MQL5在创建数组并将其与指标缓冲区连接时完成的)。
从你的建议来看,也不清楚如何做。
这里有一个寻找分形的函数,只是针对专家顾问,它对我很有效
https://www.mql5.com/ru/forum/160683/page968#comment_13214633
你确定你应该在第二条杠上接住吗?
以下是测试结果。
是的,谢谢你。在第三条上没有重绘。只是这并没有改变问题的本质。
这里有一个寻找分形的函数,只是针对一个EA,它对我来说很有效
https://www.mql5.com/ru/forum/160683/page968#comment_13214633
谢谢你,这很有效。
我不明白如何在代码中反映一个新分形的出现。因为barfrup_1总是比barfrup_2小,所以当一个新的分形出现时,对barfrup_1的编号跳跃没有得到任何结果,因为它仍然比barfrup_2小。
还有一件事:我不明白如何提取barfrup_1和barfrup_2的高值。
还有一件事:我不明白如何提取barfrup_1和barfrup_2的高值。
在图表上抛出一个分形指标,用这个函数测试EA
并通过传递给我的函数MODE_UPPER和 MODE_LOWER来重新打印找到的值
谢谢你,这很有效。
我只是不明白如何在代码中呈现一个新分形的出现。
你需要记住酒吧的时间;当一个新的酒吧出现时,编号会改变,而酒吧的开放时间始终是不变的。
也就是说,当你启动我的代码时,记住检测到分形的那根柱子的时间,然后再启动它--找到那根柱子,将那根柱子的时间与记忆中的时间进行比较--时间不同,就意味着有新的分形。