Написание советников на MQL5 проще чем кажется, вы легко можете этому научиться. В этом руководстве вы познакомитесь с основными моментами, необходимыми для написания простого советника на основе конкретной торговой стратегии. Рассмотрена структура советника, использование встроенных технических индикаторов и торговых функций, вопросы отладки и тестирования советника на исторических данных.
crOss: пункты 1 и 2 уходят, если фиксировать правое время на момент начала теста/оптимизации. никто не просит актуальность до секунды... но один торговый день - это, извините, ни в какие ворота.
然后在档案主题中提出建议(虽然没有错)。
好吧......。我认为这是一个错误。根据我的理解,如果在日历中,我可以选择期末是今天的日期。
那么测试器和优化器就应该工作到当前时间,但这并没有发生((
开发者意识到了这一点,他们有能力做出一个好的平台。如果没有,那就没有。
我读了这篇文章《初学者编写MQL5专家顾问的分步指南》https://www.mql5.com/ru/articles/100,发现其中有以下几句话。
对于3位和5位数的报价,我们将止损和止盈值乘以10。
终端中包含的 "MACD样本 "包含相同的信息。
//---
int digits_adjust=1;
if(m_symbol.Digits()==3 || m_symbol.Digits()==5) digits_adjust=10。
m_adjusted_point=m_symbol.Point()*digits_adjust。
这个行动是什么?为什么用小数点后3位和5位的变量乘以10?
我读了这篇文章《初学者编写MQL5专家顾问的分步指南》https://www.mql5.com/ru/articles/100,发现其中有以下几句话。
对于3位和5位数的报价,我们将止损和止盈值乘以10。
终端中包含的MACD样本包含相同的信息。
//---
int digits_adjust=1;
if(m_symbol.Digits()==3 || m_symbol.Digits()==5) digits_adjust=10。
m_adjusted_point=m_symbol.Point()*digits_adjust。
这个行动是什么?为什么用小数点后3位和5位的变量乘以10?
这是为那些习惯于用四位数计算一切,不想重新调整的人准备的。
因此,如果我们在参数中设置100点的止损,在五位数的计算中得到1000点,在四位数的计算中得到100点,这是相同的。
四位数的数字有优势,便于重新计算利润,占投资资金的1 pip 1%。
我读了这篇文章《初学者编写MQL5专家顾问的分步指南》https://www.mql5.com/ru/articles/100,发现其中有以下几句话。
对于3位和5位数的报价,我们将止损和止盈值乘以10。
终端中包含的 "MACD样本 "包含相同的信息。
//---
int digits_adjust=1;
if(m_symbol.Digits()==3 || m_symbol.Digits()==5) digits_adjust=10。
m_adjusted_point=m_symbol.Point()*digits_adjust。
这算什么行动?为什么要用小数点后3位和5位的变量乘以10?
为了更好地兼容不同的经纪商(提供4或5位数的报价),也就是说,不需要改变专家顾问的参数。
这种算法是基于这样一个事实:在提供4位数报价的经纪商,_位数可能是4或2(通常在有日元的货币对)。
以及相应的5位数的5和3。
虽然,我对这种方法的安全性感兴趣,因为有一些工具 的_Digits值不同。
我个人是用 "EURUSD "来检查。但至少在MT4中,有的经纪商的欧元美元名称略有不同,例如EURUSD_fx
或类似的东西。
пункты 1 и 2 уходят, если фиксировать правое время на момент начала теста/оптимизации.
никто не просит актуальность до секунды... но один торговый день - это, извините, ни в какие ворота.
Urain。
然后你不仅要输入年月日,还要输入结束的小时:分钟。
不一定,时间可以在测试/优化运行时纯粹以编程方式固定。
说实话,我觉得这个建议很有道理。我完全支持。
目前,这与我无关,但可能很快就会非常理想了。
这是为那些习惯于用四位数计算一切的人准备的,他们不想重建。
因此,在参数中设置100点的止损,我们得到的是五位数的1000点,和四位数的100点的重新计算,这是相同的事情。
四位数的数字有好处,很容易重新计算利润,1个点就能赚取投资资金的1%。
我明白了,让我们继续)另一个问题--同一篇文章在形成止损和止盈时使用了NormalizeDouble函数,这是什么原因?这似乎毫无意义。
我明白了,让我们继续)这样一个问题--在同一篇文章中,在形成止损和止盈时使用了NormalizeDouble函数,这是什么原因?这似乎毫无意义。
不存在无意义的问题,在计算水平时,要进行双数的操作,结果不会被规范化,如果你把它原封不动地传给服务器,你会得到重新报价。这就是为什么计算的结果是正常化的。
比方说,止损100,点数0.00001。当它们相乘时,可能会出现什么情况?9号车会不会在某个地方出现?例如0.0009999?
似乎一个正常的数字应该是1.45893,但我们得到的是1.4589300000000002。
我们计划在EA信息中制作一个 "安全 "标签,其中显示安全级别和被调用的DLL函数列表。
正好赶上商店的启动,我们将在EX5文件上下功夫。
Renat,还有两个关于新的EX5格式中DLL调用的问题。
1.当调用被禁用时,代码将如何表现?就像现在--它甚至不会运行吗?
2.如果不能启动,MQL5_DLLS_ALLOWED /TERMINAL_DLLS_ALLOWED 是干什么的?