初学者的问题 MQL5 MT5 MetaTrader 5 - 页 466 1...459460461462463464465466467468469470471472473...1503 新评论 Maxim Dobrovolskii 2015.11.01 08:27 #4651 向大家问好。我有这样一个问题。我有一个指标(修改过的分形图),当加载到图表上时,一切都很正确,可以正常工作,但当我试图在EA中使用它时,它说缓冲区是空的。同时,在Deinit中传递缓冲区时,它存储了正确的值。 该指标的源代码见附件。我准备听取提示和建议,我做错了什么。 该代码来自专家顾问。//+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- if(Time[0] == prevtime) return; prevtime = Time[0]; if(iCustom(NULL,0,"modify_Fractal",0,0) > 0) Print("x = ", 0, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,0)); if(iCustom(NULL,0,"modify_Fractal",0,2) > 0) Print("x = ", 2, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,2)); if(iCustom(NULL,0,"modify_Fractal",0,3) > 0) Print("x = ", 3, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,3)); if(iCustom(NULL,0,"modify_Fractal",0,4) > 0) Print("x = ", 4, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,4)); if(iCustom(NULL,0,"modify_Fractal",0,5) > 0) Print("x = ", 5, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,5)); if(iCustom(NULL,0,"modify_Fractal",0,6) > 0) Print("x = ", 6, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,6)); // тут везде 0 } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Print("Deinit Function"); for (int x = 0; x < 100; x++ ) { if(iCustom(NULL,0,"modify_Fractal",0,x) > 0) Print("x = ", x, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,x)); if(iCustom(NULL,0,"modify_Fractal",1,x) > 0) Print("x = ", x, " fractal Down: ", iCustom(NULL,0,"modify_Fractal",1,x)); } // а здесь полный буфер правильных значений индикатора. } 附加的文件: modify_Fractal.ex4 8 kb modify_Fractal.mq4 4 kb [删除] 2015.11.01 09:04 #4652 Karputov Vladimir:你可以把结尾处的 "如果 "换成 "如果"。(如果有这么简单的话,,:)。谢谢 Artyom Trishkin 2015.11.01 10:05 #4653 Maxim Dobrovolskii:向大家问好。我有这样一个问题。我有一个指标(修改过的分形图),当加载到图表上时,一切都很正确,可以正常工作,但当我试图在EA中使用它时,它说缓冲区是空的。同时,在Deinit中传递缓冲区时,它存储了正确的值。 该指标的源代码见附件。我准备听取提示和建议,我做错了什么。 来自EA的代码。 非常粗略地看了一眼。问题:我可以在零条 上有一个分形吗?但在OnDeinit()中,你在条形图中循环,自然会找到一个分形图(而不是一个空的缓冲值)。 Maxim Dobrovolskii 2015.11.01 10:16 #4654 Artyom Trishkin: 非常粗略地看了一眼。问题:分形可以在零条 上吗?但在OnDeinit()中,你循环浏览条形图,当然会找到一个分形图(而不是一个空的缓冲区值)。 在Deinit中,我也是通过4-6的循环,所有东西都在它的位置上,并且有价值。 Artyom Trishkin 2015.11.01 10:23 #4655 Maxim Dobrovolskii: 在Deinit,我也通过了4-6,一切都在它的位置上。在OnDeinit()中,你在一个循环中(从0到100)运行,寻找一个非零值,并记录找到的值。在OnTick()中,你试图只输出缓冲区0的最后6条。他们身上可能没有分形。 首先,找到有分形的条形,然后打印该条形的数值。 Maxim Dobrovolskii 2015.11.01 10:31 #4656 Artyom Trishkin:在OnDeinit()中,你在一个循环中(从0到100)通过条形图寻找一个非零值并记录找到的值。但是在OnTick()中,你试图只打印缓冲区0的最后6个柱子。他们身上可能没有分形。首先,找到有分形的柱子,然后打印这个柱子的值。第6小节应该是包含分形的。 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 分形向上: 1.09855 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 分形向上: 1.09976 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 分形下跌: 1.096522015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6分形 向上: 1.10721 2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Deinit函数 2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi!测试开始。这就是日志的开始。 测试开始了,专家顾问工作了,Deinit启动了,在6个位置发现了分形。 https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.png图像回放。 附加的文件: MetaTrader_4.png 36 kb 测试日志 - 算法交易, 交易机器人 Artyom Trishkin 2015.11.01 10:34 #4657 Maxim Dobrovolskii:第6小节应该是包含一个分形的。 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 分形向上: 1.09855 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 分形向上: 1.09976 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 分形下跌: 1.096522015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6分形 向上: 1.10721 2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Deinit函数 2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi!测试开始。这是日志的开始。测试的开始,专家顾问已经工作了,Deinit开始,并立即在第6个位置找到一个分形。 https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.png我不知道如何解决指标缓冲区的问题。这一个。if(Time[0] == prevtime) return; prevtime = Time[0];做prevtime = Time[0];到了最后 Maxim Dobrovolskii 2015.11.01 10:48 #4658 Artyom Trishkin:这一点。做在最后。这怎么会有影响呢? 不幸的是,什么都没有改变。我是如何想象这个过程的:指标被加载,开始检查每个tick/bar 条件,如果条件得到满足,就把数值放在选定的一个或多个缓冲区中,然后EA通过缓冲区编号调用指标,在某个偏移处取值。对吗? Victor Nikolaev 2015.11.01 11:16 #4659 Maxim Dobrovolskii:这怎么能影响到它呢? 不幸的是,什么都没有改变。 我如何想象这个过程:指标被加载,开始检查每一个tick/bar的条件,如果它被满足,将值放在选定的缓冲区或缓冲区中,然后EA通过缓冲区号码调用指标,在一定的偏移量上获取值。对吗? 还有,为什么在指标中出现了一个新的栏?显然,没有什么复杂的计算方法 Maxim Dobrovolskii 2015.11.01 13:18 #4660 Victor Nikolaev: 为什么在指标中出现了一个新的条形 控制?显然,没有什么复杂的计算方法 在使用该指标的EA中控制一个新条形。 1...459460461462463464465466467468469470471472473...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
向大家问好。我有这样一个问题。我有一个指标(修改过的分形图),当加载到图表上时,一切都很正确,可以正常工作,但当我试图在EA中使用它时,它说缓冲区是空的。同时,在Deinit中传递缓冲区时,它存储了正确的值。
该指标的源代码见附件。我准备听取提示和建议,我做错了什么。
该代码来自专家顾问。
你可以把结尾处的 "如果 "换成 "如果"。
(如果有这么简单的话,,:)。
谢谢
向大家问好。我有这样一个问题。我有一个指标(修改过的分形图),当加载到图表上时,一切都很正确,可以正常工作,但当我试图在EA中使用它时,它说缓冲区是空的。同时,在Deinit中传递缓冲区时,它存储了正确的值。
该指标的源代码见附件。我准备听取提示和建议,我做错了什么。
来自EA的代码。
非常粗略地看了一眼。问题:分形可以在零条 上吗?但在OnDeinit()中,你循环浏览条形图,当然会找到一个分形图(而不是一个空的缓冲区值)。
在Deinit,我也通过了4-6,一切都在它的位置上。
在OnDeinit()中,你在一个循环中(从0到100)运行,寻找一个非零值,并记录找到的值。
在OnTick()中,你试图只输出缓冲区0的最后6条。他们身上可能没有分形。
首先,找到有分形的条形,然后打印该条形的数值。
在OnDeinit()中,你在一个循环中(从0到100)通过条形图寻找一个非零值并记录找到的值。
但是在OnTick()中,你试图只打印缓冲区0的最后6个柱子。他们身上可能没有分形。首先,找到有分形的柱子,然后打印这个柱子的值。
第6小节应该是包含分形的。
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 分形向上: 1.098552015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 分形向上: 1.09976
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 分形下跌: 1.09652
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6分形 向上: 1.10721
2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Deinit函数
2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi!测试开始。
这就是日志的开始。 测试开始了,专家顾问工作了,Deinit启动了,在6个位置发现了分形。
https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.png
图像回放。
第6小节应该是包含一个分形的。
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 分形向上: 1.098552015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 分形向上: 1.09976
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 分形下跌: 1.09652
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6分形 向上: 1.10721
2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Deinit函数
2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi!测试开始。
这是日志的开始。测试的开始,专家顾问已经工作了,Deinit开始,并立即在第6个位置找到一个分形。
https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.png
我不知道如何解决指标缓冲区的问题。
这一个。
做
prevtime = Time[0];
到了最后
这一点。
做
在最后。
这怎么会有影响呢? 不幸的是,什么都没有改变。
我是如何想象这个过程的:指标被加载,开始检查每个tick/bar 条件,如果条件得到满足,就把数值放在选定的一个或多个缓冲区中,然后EA通过缓冲区编号调用指标,在某个偏移处取值。对吗?
这怎么能影响到它呢? 不幸的是,什么都没有改变。
我如何想象这个过程:指标被加载,开始检查每一个tick/bar的条件,如果它被满足,将值放在选定的缓冲区或缓冲区中,然后EA通过缓冲区号码调用指标,在一定的偏移量上获取值。对吗?
为什么在指标中出现了一个新的条形 控制?显然,没有什么复杂的计算方法