错误、漏洞、问题 - 页 567 1...560561562563564565566567568569570571572573574...3184 新评论 Olegs Kucerenko 2011.11.13 01:04 #5661 所以CTrade 成功了......只是需要一个文件来重做一切......又是一艘直升机潜艇......我告诉你我不知道怎么做,不是一个无赖......:) Olegs Kucerenko 2011.11.13 02:00 #5662 是的......这在原则上都是一样的...... Валерий 2011.11.13 02:39 #5663 新的建设已经停止复制循环中的简单结构。这里有一个测试脚本。//+------------------------------------------------------------------+ //| Test_Copy_Struct.mq5 | //+------------------------------------------------------------------+ struct trade_settings { int reopened; int reverse; int TrailingStop; int WithoutlossLevel; int WithoutlossProfit; double LossToReverse; int MAPeriod; int MA_use; double Lots; int takeprofit; }; trade_settings arr_tr_set_ini[3]={ {60,90,1000,100,900,2000.0,105,1,0.13,2700}, // EURUSD {130,1298,400,300,600,1000.0,130,1,0.1,2800}, // GBPUSD {110,140,200,600,800,1000.0,85,0,0.15,1700}}; // AUDUSD trade_settings symb_default={110,130,200,1300,1500,3000.0,100,1,0.1,1000}; class CTest_Copy_Struct { protected: trade_settings m_tr_set; public: void Copy_tr_set(const trade_settings& tr_set){m_tr_set=tr_set;} void Print_tr_set(){printf("Setting reopened=%u overpos=%u TrailingStop=%u WithoutlossLevel=%u WithoutlossProfit=%u" ,m_tr_set.reopened,m_tr_set.reverse,m_tr_set.TrailingStop,m_tr_set.WithoutlossLevel,m_tr_set.WithoutlossProfit); printf("LossToReverse=%.2f MAPeriod=%u MA_use=%u Lots=%.2f takeprofit=%u" ,m_tr_set.LossToReverse,m_tr_set.MAPeriod,m_tr_set.MA_use,m_tr_set.Lots,m_tr_set.takeprofit);} void Zero(){ZeroMemory(m_tr_set);} }; void OnStart() { CTest_Copy_Struct Test; Test.Zero(); Test.Print_tr_set(); Print("------------------------------"); Test.Copy_tr_set(arr_tr_set_ini[0]); Test.Print_tr_set(); Print("------------------------------"); Test.Copy_tr_set(arr_tr_set_ini[2]); Test.Print_tr_set(); Print("------------------------------"); Test.Copy_tr_set(symb_default); Test.Print_tr_set(); int total=ArraySize(arr_tr_set_ini); for(int i=0;i<3;i++) { Print("i=",i); Test.Copy_tr_set(arr_tr_set_ini[i]); Test.Print_tr_set(); } } //+------------------------------------------------------------------+ Документация по MQL5: Основы языка / Типы данных / Структуры и классы www.mql5.com Основы языка / Типы данных / Структуры и классы - Документация по MQL5 Валерий 2011.11.13 02:41 #5664 Valmars:结果。2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) Access violation read to 0x00000000209FFFAC in 'E:\Program Files\Championship_2011\MQL5\Scripts\Test_Copy_Struct.ex5' 。 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) i=0 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=3000.00 MAPeriod=100 MA_use=1 Lots=0.10 takeprofit=1000 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) 设置reopened=110 overpos=130 TrailingStop=200 WithoutlossLevel=1300 WithoutlossProfit=1500 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) ------------------------------ 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=1000.00 MAPeriod=85 MA_use=0 Lots=0.15 takeprofit=1700 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD, M15) Setting reopened=110 overpos=140 TrailingStop=200 WithoutlossLevel=600 WithoutlossProfit=800 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) ------------------------------ 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=2000.00 MAPeriod=105 MA_use=1 Lots=0.13 takeprofit=2700 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) Setting reopened=60 overpos=90 TrailingStop=1000 WithoutlossLevel=100 WithoutlossProfit=900 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) ------------------------------ 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=0.00 MAPeriod=0 MA_use=0 Lots=0.00 takeprofit=0 2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) Setting reopened=0 overpos=0 TrailingStop=0 WithoutlossLevel=0 WithoutlossProfit=0 x572intraday 2011.11.13 06:05 #5665 https://www.mql5.com/ru/docs/basis/function/events,最后说:"为了更好地理解,运行下面所附代码的指标将是有益的。"运行代码。在周末。没有发生更好的理解--我想,现在的情况很好,但最坏的印象被加上了。周末没有刻度,所以在这个时候prev_calculated= 0,当从时间框架到时间框架时,总是如此。然而,在一个点上,这个值出现了(没有重新连接,说实话很高贵!)。和图表上的有趣线条。 或一半的乐趣,像这样。在故事的开头甚至还有以ZigZag形式出现的台词(唉,我忘了截图,无法重现)。线条也出现在其他TFs上,但更加稀少。你可以很容易地自己看到它。这正是作者想说的吗?为什么prev_calculated 的结果即使不奇怪,也至少在没有ticks的情况下是不相等的?从TF跳转到TF时,是否有什么地方出现故障?这些(或任何其他)线条是否应该出现在刻度线之外?在极少数情况下,相对频繁的从TF到TF的跳跃能否产生某种假动作,启动历史上的条形值的计算等?我是否应该期待终端的不稳定行为会被消除?还是我应该学习数学?也许我正试图做一些我不应该做的事情?在这种情况下,请证明你的观点是正确的。我有很多问题...但这仅仅是个开始... Документация по MQL5: Основы языка / Функции / Функции обработки событий www.mql5.com Основы языка / Функции / Функции обработки событий - Документация по MQL5 x572intraday 2011.11.13 06:36 #5666 继续...在同一个链接中,有一句话:"注意:如果OnCalculate函数返回空值,在客户终端的DataWindow中不会显示任何指标值。"事情是这样的...如果需要,我很乐意同意任何手臂的增长,并在必要时立即跑去矫正它。但是。在简单和中等复杂度的指标中,你可以通过某种方式摆脱一些磕磕绊绊的情况。但是,随着代码变得越来越复杂,任何Copy...() 的函数(既接受另一个指标句柄作为参数,也不接受它)开始使情况复杂化,正如我个人认为,一周前处理MQL编程。这时,人们不知道代码中还有什么可以改变,因为所有可以改变的东西都已经被改变了,剩下的,在我看来,一定不能改变,因为它与问题没有关系。或者出现一个绝对令人沮丧的想法:改变整个算法,因为没有考虑到终端的特殊性和变化无常。毕竟,在研究MQL的文档时,你必须处理细微的差别,而这些差别是开发人员保持沉默的,很可能是无意的。而MQL程序员在完全研究了文档之后,从来没有学到很多东西......而最令人失望的是,使用MQL,你要么根本无法纠正终端的许多变化无常,要么你可以使用可疑的拐杖,有一天痛苦地崩溃......嗯...我今天有点疯了。现在是周末了。这就是我今天早上想告诉你的...https://www.mql5.com/ru/forum/1111/page570#comment_117425- 我已经完全解决了指标在初始终端启动时无法呈现的主要问题(我希望没有人会争论,没有什么应该阻止一个分形指标在整个历史上正确呈现,即使没有刻度?)它是。 CopyHigh(_Symbol,PERIOD_M1,TimeUpBuffer[shift+1]-1, TimeUpBuffer[shift], exact_extremum); 被取代。 if(CopyHigh(_Symbol,PERIOD_M1,TimeUpBuffer[shift+1]-1, TimeUpBuffer[shift], exact_extremum)<0) return(0); 我承认我的不专心和由此产生的有害的形式主义。但是。它在最简单的情况下也有帮助(我特意简化了初始指标)。在一个更复杂的指标中,这些操作是没有帮助的--在某个时刻,这些变化没有显示出任何差异,特别是现在有很多复制功能。而且我非常希望得到一个合理的指示,告诉我下一步该怎么走,去哪里。毕竟,这么多时间是花在开箱即用的东西上。到目前为止,我甚至不知道这是我的错还是终端的错。而且我不确定这只是缺乏如果和回报......在这里和那里看起来很可疑,比如说别的,比如说......如果有必要,我会把代码发给我个人的开发人员;我也可以附上一个类似的代码,但以不同的方式实现,而且工作起来没有问题(虽然,它不太适合我正在探索的任务和目标)。 x572intraday 2011.11.13 06:53 #5667 终端专家标签中的打印功能记录过程,以及RAM和磁盘上的文件是否是一个独立的过程?似乎是分开的,终端没有冻结,但为什么在密集的记录过程中,它的速度变慢了,好像装满了砖头?有什么办法可以卸载它吗?如果我决定输出相当中等的ArraySize的数组元素,滞后是相当明显的,我将忘记一次性输出更大尺寸的数组元素的值。 Документация по MQL5: Основы языка / Переменные www.mql5.com Основы языка / Переменные - Документация по MQL5 x572intraday 2011.11.13 07:10 #5668 有一个强烈的怀疑,就是终端在搅乱缓存(我几乎不在这个圈子里,所以......)。更糟糕的是--即使是MetaEditor也会以某种方式影响对当时终端中正在发生的事情的处理。我不止一次遇到这样的问题,当我修改了MQL程序的代码(将调试数据打印到Expert Advisor标签日志中),重新编译,进入终端窗口,看到以前的结果在重复,尽管我可以肯定地说,这不是以前未完成的程序运行的某种延迟返工。所以,看起来我在MetaEditor中用F7编译更新的代码,并将其发送至运行,与此同时,终端被命令重放旧的代码(从缓存中,或类似操作系统 "伪造 "内存页的东西)。有趣的是,不仅可以通过完全卸载terminal.exe进程来撤销/卸载 "卡在牙缝里 "的前一版本的.ex5-代码,而且在某些罕见的情况下--仅仅通过关闭MetaEditor。你想怎么理解就怎么理解,我只是叙述了我个人观察到的情况。最近,出现了一种情况,即设计。Print(1); for(int e=0; e<ArraySize(Arr); e++) { Print(Arr[e]); } 图表只显示第一个Print的值,但等待数组元素 的输出是没有用的。在删除第一个Print并重新编译后,数组项目的循环输出立即开始。是普林斯对MQL5-社区的秘密阴谋,还是只有我一个人有这样的坏运气?此外,我想指出的是,这些终端行为的奇怪情况不是在MT5实例上观察到的,而是在一个干净的图表窗口(不包括运行中的指标的轮廓)上观察到的,该实例上有大量的图表窗口、图形对象和MQL程序。 [删除] 2011.11.13 10:13 #5669 x100intraday 忘掉这些问题--用C语言或其他语言编写。毕竟,我们从终端需要的只是获取报价、账户信息和执行订单,其余的可以在专门的编程环境中编写,并通过库连接。否则,他们会在某一时刻改变一些东西,如果项目很大的话,就会没有答案,不知道为什么不成功。你不需要这样的冒险 :)如果专家顾问在同一时间不得不重新编译和追赶维护当前的订单,你将失去金钱,因为你将不得不找出什么和为什么。 Dmitry Fedoseev 2011.11.13 10:50 #5670 ivandurak:1.ArrayInitialize代码不工作,如果取消循环,一切正常。而当在类中声明变量和在全局层面上声明相同名称的指标时,就会弹出警告。1.PlotIndexSetDouble(z,EMPTY_VALUE)用于inite中的指标缓冲区。2.它突然出现了。那么就应该做些什么,建议用 "m_"前缀来标记类成员。 Документация по MQL5: Пользовательские индикаторы / PlotIndexSetDouble www.mql5.com Пользовательские индикаторы / PlotIndexSetDouble - Документация по MQL5 1...560561562563564565566567568569570571572573574...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的......这在原则上都是一样的......
新的建设已经停止复制循环中的简单结构。这里有一个测试脚本。
结果。
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) Access violation read to 0x00000000209FFFAC in 'E:\Program Files\Championship_2011\MQL5\Scripts\Test_Copy_Struct.ex5' 。
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) i=0
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=3000.00 MAPeriod=100 MA_use=1 Lots=0.10 takeprofit=1000
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) 设置reopened=110 overpos=130 TrailingStop=200 WithoutlossLevel=1300 WithoutlossProfit=1500
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) ------------------------------
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=1000.00 MAPeriod=85 MA_use=0 Lots=0.15 takeprofit=1700
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD, M15) Setting reopened=110 overpos=140 TrailingStop=200 WithoutlossLevel=600 WithoutlossProfit=800
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) ------------------------------
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=2000.00 MAPeriod=105 MA_use=1 Lots=0.13 takeprofit=2700
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) Setting reopened=60 overpos=90 TrailingStop=1000 WithoutlossLevel=100 WithoutlossProfit=900
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) ------------------------------
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) LossToReverse=0.00 MAPeriod=0 MA_use=0 Lots=0.00 takeprofit=0
2011.11.13 09:30:44 Test_Copy_Struct (EURUSD,M15) Setting reopened=0 overpos=0 TrailingStop=0 WithoutlossLevel=0 WithoutlossProfit=0
https://www.mql5.com/ru/docs/basis/function/events,最后说:"为了更好地理解,运行下面所附代码的指标将是有益的。"
运行代码。在周末。没有发生更好的理解--我想,现在的情况很好,但最坏的印象被加上了。周末没有刻度,所以在这个时候prev_calculated= 0,当从时间框架到时间框架时,总是如此。
然而,在一个点上,这个值出现了(没有重新连接,说实话很高贵!)。
和图表上的有趣线条。
或一半的乐趣,像这样。
在故事的开头甚至还有以ZigZag形式出现的台词(唉,我忘了截图,无法重现)。
线条也出现在其他TFs上,但更加稀少。你可以很容易地自己看到它。
这正是作者想说的吗?
为什么prev_calculated 的结果即使不奇怪,也至少在没有ticks的情况下是不相等的?从TF跳转到TF时,是否有什么地方出现故障?
这些(或任何其他)线条是否应该出现在刻度线之外?
在极少数情况下,相对频繁的从TF到TF的跳跃能否产生某种假动作,启动历史上的条形值的计算等?
我是否应该期待终端的不稳定行为会被消除?还是我应该学习数学?
也许我正试图做一些我不应该做的事情?在这种情况下,请证明你的观点是正确的。
我有很多问题...但这仅仅是个开始...
继续...
在同一个链接中,有一句话:"注意:如果OnCalculate函数返回空值,在客户终端的DataWindow中不会显示任何指标值。"
事情是这样的...如果需要,我很乐意同意任何手臂的增长,并在必要时立即跑去矫正它。但是。在简单和中等复杂度的指标中,你可以通过某种方式摆脱一些磕磕绊绊的情况。但是,随着代码变得越来越复杂,任何Copy...() 的函数(既接受另一个指标句柄作为参数,也不接受它)开始使情况复杂化,正如我个人认为,一周前处理MQL编程。这时,人们不知道代码中还有什么可以改变,因为所有可以改变的东西都已经被改变了,剩下的,在我看来,一定不能改变,因为它与问题没有关系。或者出现一个绝对令人沮丧的想法:改变整个算法,因为没有考虑到终端的特殊性和变化无常。毕竟,在研究MQL的文档时,你必须处理细微的差别,而这些差别是开发人员保持沉默的,很可能是无意的。而MQL程序员在完全研究了文档之后,从来没有学到很多东西......而最令人失望的是,使用MQL,你要么根本无法纠正终端的许多变化无常,要么你可以使用可疑的拐杖,有一天痛苦地崩溃......
嗯...我今天有点疯了。现在是周末了。
这就是我今天早上想告诉你的...
https://www.mql5.com/ru/forum/1111/page570#comment_117425- 我已经完全解决了指标在初始终端启动时无法呈现的主要问题(我希望没有人会争论,没有什么应该阻止一个分形指标在整个历史上正确呈现,即使没有刻度?)
它是。
被取代。
我承认我的不专心和由此产生的有害的形式主义。
但是。它在最简单的情况下也有帮助(我特意简化了初始指标)。在一个更复杂的指标中,这些操作是没有帮助的--在某个时刻,这些变化没有显示出任何差异,特别是现在有很多复制功能。而且我非常希望得到一个合理的指示,告诉我下一步该怎么走,去哪里。毕竟,这么多时间是花在开箱即用的东西上。到目前为止,我甚至不知道这是我的错还是终端的错。而且我不确定这只是缺乏如果和回报......在这里和那里看起来很可疑,比如说别的,比如说......
如果有必要,我会把代码发给我个人的开发人员;我也可以附上一个类似的代码,但以不同的方式实现,而且工作起来没有问题(虽然,它不太适合我正在探索的任务和目标)。
有一个强烈的怀疑,就是终端在搅乱缓存(我几乎不在这个圈子里,所以......)。更糟糕的是--即使是MetaEditor也会以某种方式影响对当时终端中正在发生的事情的处理。
我不止一次遇到这样的问题,当我修改了MQL程序的代码(将调试数据打印到Expert Advisor标签日志中),重新编译,进入终端窗口,看到以前的结果在重复,尽管我可以肯定地说,这不是以前未完成的程序运行的某种延迟返工。所以,看起来我在MetaEditor中用F7编译更新的代码,并将其发送至运行,与此同时,终端被命令重放旧的代码(从缓存中,或类似操作系统 "伪造 "内存页的东西)。有趣的是,不仅可以通过完全卸载terminal.exe进程来撤销/卸载 "卡在牙缝里 "的前一版本的.ex5-代码,而且在某些罕见的情况下--仅仅通过关闭MetaEditor。你想怎么理解就怎么理解,我只是叙述了我个人观察到的情况。
最近,出现了一种情况,即设计。
图表只显示第一个Print的值,但等待数组元素 的输出是没有用的。在删除第一个Print并重新编译后,数组项目的循环输出立即开始。是普林斯对MQL5-社区的秘密阴谋,还是只有我一个人有这样的坏运气?此外,我想指出的是,这些终端行为的奇怪情况不是在MT5实例上观察到的,而是在一个干净的图表窗口(不包括运行中的指标的轮廓)上观察到的,该实例上有大量的图表窗口、图形对象和MQL程序。
1.ArrayInitialize代码不工作,如果取消循环,一切正常。
而当在类中声明变量和在全局层面上声明相同名称的指标时,就会弹出警告。
1.PlotIndexSetDouble(z,EMPTY_VALUE)用于inite中的指标缓冲区。
2.它突然出现了。那么就应该做些什么,建议用 "m_"前缀来标记类成员。