初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1218 1...121112121213121412151216121712181219122012211222122312241225...1503 新评论 Vladimir Karputov 2020.05.27 10:14 #12171 Pineapple88: 修好了,一切似乎都正常了!) 我把两个MA指标转移到OnInit函数。 我的理解是,我们只在OnInit函数中创建指标句柄,在OnTick函数中对数组进行所有其他操作,并在每个tick上检查? 是的,我们在OnInit中创建指标句柄。而其他所有的操作都在OnTick中实现。 Pineapple88 2020.05.27 10:19 #12172 Vladimir Karputov: 是的,指标句柄是在OnInit中创建的。而其余的工作则在OnTick中实现。 明白了,谢谢! BORIS GOLICIN 2020.05.30 07:53 #12173 在MT5中优化EA是一件必要且有用的事情。但问题是:对于EA的运营来说,什么时期是保证其未来收支平衡的最佳参数?据认为,每个月都必须进行优化。但优化保证存款至少在未来一个月内不会损失? Nikolai Karetnikov 2020.05.30 07:57 #12174 BORIS GOLICIN: 在MT5中优化EA是一件必要且有用的事情。但问题是:对于EA的运营来说,什么时期是保证其未来收支平衡的最佳参数?据认为,每个月都必须进行优化。但优化保证存款至少在未来一个月内不会损失? 为银行业提供担保 ) Alexey Viktorov 2020.05.30 08:57 #12175 BORIS GOLICIN: 在MT5中优化专家顾问是有用和必要的。但问题是:在什么时期,专家的最佳参数能保证它在未来实现收支平衡?据认为,每个月都必须进行优化。但优化保证存款至少在未来一个月内不会损失? 在我看来,优化是没有用的。它只适用于估计你在某一时期的损失有多大,以及你可以获得多少利润。此外,市场形势随时都会发生变化,所有的优化都会付诸东流。为了使策略在自动模式下工作得更久,你不应该贪婪。不要试图从市场中榨取最大的利润。经纪公司不会让它。 BORIS GOLICIN 2020.05.30 18:12 #12176 以下是我在互联网上能够找到的关于优化的内容。 假设我们有一大块15年(至少10年)的历史,比如从2000年到2015年。我们将这一作品分为以下几个时期。2000-2003年是我们的后向测试阶段,2003-2012年是优化阶段,2012-2015年是前向测试。在优化之后,我们通过选择10-20个最成功的集合来进行通常的正向测试。之后,我们在后向测试中运行这些选定的集。其结果应与正向测试中获得的结果相似。那些通过测试的集子被保存下来,以便进一步比较。然后,我们对整个历史块中剩余的集进行测试,并选择显示出比其他集更好的结果。结果,我们只剩下一套最合适的设置。 我们如何在第一阶段--正向测试--选择成套的产品?非常简单:在这个阶段对我们来说最重要的是平衡曲线的类型。理想情况下,它应该是一条从左下角到右上角的直线。也就是说,连续看所有最好的套装是没有意义的--它们往往是几乎相同的。 Pineapple88 2020.06.01 11:59 #12177 大家下午好! 当访问ATR指标处理程序时,前30秒给出了奇怪的数值。 搞不清楚是什么原因造成的? int ATRdefinition = 0; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { ATRdefinition = iATR(_Symbol,_Period,14); if(ATRdefinition == INVALID_HANDLE) { Print("Ошибка создания Хендла"); } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick() { string signal = ""; double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits); double ATRarray[]; ArraySetAsSeries(ATRarray,true); CopyBuffer(ATRdefinition,0,0,3,ATRarray); double ATRValue = NormalizeDouble(ATRarray[0],5); Print("ATRVALUE: ",ATRValue); } 附加的文件: ATR.png 51 kb Vladimir Karputov 2020.06.01 12:01 #12178 Pineapple88:大家好!当访问ATR指标处理程序时,前30秒给出了奇怪的数值。我不明白这是什么原因? 你是否检查指标是否准备好了? //--- determine the number of values calculated in the indicator int calculated=BarsCalculated(handle); (插入你的手柄而不是'手柄') Pineapple88 2020.06.01 12:19 #12179 事实证明,这个数据(402082)并不足以计算出指标? 我认为,如果没有足够的数据进行计算,BarsCalculated 函数应该给出一个错误(-1)。 附加的文件: ATR2.png 21 kb Vladimir Karputov 2020.06.01 12:38 #12180 Pineapple88:事实证明,这个数据(402082)并不足以计算出指标?我认为,如果没有足够的数据进行计算,BarsCalculated 函数应该给出一个错误(-1)。 看来,终端继续抽出历史记录--分别是,指标一直在重新计算。或者,另一种选择:在你的终端中,你设置了非常多的条形图来显示,而你的电脑非常弱。 已添加。 在MetaTrader 5 x64 build 2470上进行了检查,"显示条形图 "设置为100000--历史记录已下载。该代码工作得非常好。 1...121112121213121412151216121712181219122012211222122312241225...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
修好了,一切似乎都正常了!)
我把两个MA指标转移到OnInit函数。
我的理解是,我们只在OnInit函数中创建指标句柄,在OnTick函数中对数组进行所有其他操作,并在每个tick上检查?
是的,我们在OnInit中创建指标句柄。而其他所有的操作都在OnTick中实现。
是的,指标句柄是在OnInit中创建的。而其余的工作则在OnTick中实现。
明白了,谢谢!
在MT5中优化EA是一件必要且有用的事情。但问题是:对于EA的运营来说,什么时期是保证其未来收支平衡的最佳参数?据认为,每个月都必须进行优化。但优化保证存款至少在未来一个月内不会损失?
为银行业提供担保 )
在MT5中优化专家顾问是有用和必要的。但问题是:在什么时期,专家的最佳参数能保证它在未来实现收支平衡?据认为,每个月都必须进行优化。但优化保证存款至少在未来一个月内不会损失?
在我看来,优化是没有用的。它只适用于估计你在某一时期的损失有多大,以及你可以获得多少利润。此外,市场形势随时都会发生变化,所有的优化都会付诸东流。为了使策略在自动模式下工作得更久,你不应该贪婪。不要试图从市场中榨取最大的利润。经纪公司不会让它。
以下是我在互联网上能够找到的关于优化的内容。
假设我们有一大块15年(至少10年)的历史,比如从2000年到2015年。我们将这一作品分为以下几个时期。2000-2003年是我们的后向测试阶段,2003-2012年是优化阶段,2012-2015年是前向测试。在优化之后,我们通过选择10-20个最成功的集合来进行通常的正向测试。之后,我们在后向测试中运行这些选定的集。其结果应与正向测试中获得的结果相似。那些通过测试的集子被保存下来,以便进一步比较。然后,我们对整个历史块中剩余的集进行测试,并选择显示出比其他集更好的结果。结果,我们只剩下一套最合适的设置。
我们如何在第一阶段--正向测试--选择成套的产品?非常简单:在这个阶段对我们来说最重要的是平衡曲线的类型。理想情况下,它应该是一条从左下角到右上角的直线。也就是说,连续看所有最好的套装是没有意义的--它们往往是几乎相同的。
大家下午好!
当访问ATR指标处理程序时,前30秒给出了奇怪的数值。
搞不清楚是什么原因造成的?
大家好!
当访问ATR指标处理程序时,前30秒给出了奇怪的数值。
我不明白这是什么原因?
你是否检查指标是否准备好了?
(插入你的手柄而不是'手柄')
事实证明,这个数据(402082)并不足以计算出指标?
我认为,如果没有足够的数据进行计算,BarsCalculated 函数应该给出一个错误(-1)。
事实证明,这个数据(402082)并不足以计算出指标?
我认为,如果没有足够的数据进行计算,BarsCalculated 函数应该给出一个错误(-1)。
看来,终端继续抽出历史记录--分别是,指标一直在重新计算。或者,另一种选择:在你的终端中,你设置了非常多的条形图来显示,而你的电脑非常弱。
已添加。
在MetaTrader 5 x64 build 2470上进行了检查,"显示条形图 "设置为100000--历史记录已下载。该代码工作得非常好。