关于落实议员的讨论。

 

你好,我在学习mql5,已经很久没有能下地了。因为每个人写程序的方式不同,每个人都确信自己的方法,初学者很难理解哪种方法是最佳的。

我自己也想了解,我认为社区会从对典型EA区块的最佳解决方案的实施的公开讨论中受益。例如,有人在初始化中几乎什么都不写,而有人在这个区块中写得非常多。一个EA应该或不应该做哪些检查。虚拟的取舍与否,等等。实施该战略的方式也很有趣。

所以,我的建议是,如果有人想分享知识。然后我们可以讨论实施,例如以nettler为例,或者以移动平均线为基础的简单专家顾问,比如说如果出现偏离平均线的情况,那么就等待回归平均线。或任何其他你想展示的策略。发布代码,并评论你为什么决定这样写。

提前感谢那些决定为教育和提高开源社区的代码质量作出贡献的人。

 
Ivan_Invanov:

你好,我在学习mql5,已经很久没有能下地了。因为每个人写程序的方式不同,每个人都确信自己的方法,初学者很难理解哪种方法是最佳的。

我自己也想了解,我认为社区会从对典型EA区块的最佳解决方案的实施的公开讨论中受益。例如,有人在初始化中几乎什么都不写,而有人在这个区块中写得非常多。一个EA应该或不应该做哪些检查。虚拟的取舍与否,等等。实施该战略的方式也很有趣。

所以,我的建议是,如果有人想分享知识。然后我们可以讨论实施,例如以nettler为例,或者以移动平均线为基础的简单专家顾问,比如说如果出现偏离平均线的情况,那么就等待回归平均线。或任何其他你想展示的策略。发布代码,并评论你为什么决定这样写。

提前感谢那些选择为教育和提高开源社区的代码质量作出贡献的人。

你已经阅读了本网站所有关于EA发展的 文章,而你认为这还不够? 你是一个字面意思的人)

 
Aleksey Mavrin:

你已经读了这个网站上所有关于EA发展的 文章,而你认为这还不够? 你是一个字面意思的人)

我发现很难形成一个程序执行的范式。是的,我看过这篇关于减少时间的文章,非常有用。但减少单件的执行时间有什么用呢。例如,当解决方法本身与另一种解决方法相比,速度明显减慢。你确定没有比你更好的编写EA的方法了吗。恭喜你,你一定是最高级别的。也许你可以给我们看一个代码例子呢?
 
Ivan_Invanov:
我发现很难形成一个运行方案的范式。是的,我看过这篇关于减少时间的文章,它非常有用。但减少单件的执行时间有什么用呢。例如,当解决方法本身与另一种解决方法相比,速度明显减慢。你确定没有比你更好的编写EA的方法了吗。恭喜你,你一定是最高级别的。也许你可以给我看一个代码的例子,然后?
你做你的事。而你将在一段时间内形成你自己的范式。
 
Ivan_Invanov:
我无法形成一个程序执行的范式。是的,我看到这篇关于减少时间的文章,它非常有用。但是,减少一个独立片段的运行时间是没有意义的。例如,当解决方法本身与另一种解决方法相比,速度明显减慢。你确定没有比你更好的编写EA的方法了吗。恭喜你,你一定是最高级别的。也许你可以给我们看一个代码例子呢?

这里的文章链接是按关键词自动插入的。

我指的是很多有现成的专家顾问的文章,作者特别为像你这样的人解释代码。你看了他们吗?那里有足够的例子。

最佳方式是一个情景概念。

你的系统方法很好。

EA的创建 过程分为两个阶段。

1.算法

2.代码。

最主要的是要学会如何制定算法。而且你可以用多种方式编码,以更方便的方式为准。

有几个反馈的有限自动机是否熟悉?如果没有,研究一下理论,你会更清楚地知道从哪里开始。

 
Ivan_Invanov:

你好,我在学习mql5,已经很久没有能下地了。因为每个人写程序的方式不同,每个人都确信自己的方法,初学者很难理解哪种方法是最佳的。

我自己也想了解,我认为社区会从对典型EA区块的最佳解决方案的实施的公开讨论中受益。例如,有人在初始化中几乎什么都不写,而有人在这个区块中写得非常多。一个EA应该或不应该做哪些检查。虚拟的取舍与否,等等。实施该战略的方式也很有趣。

我不明白这个话题的意义。

很明显,每个编码员都有自己的偏好,自己的原则,自己对程序结构的看法。 你也会有你的。 为了发展它们,你需要编写代码并测试它。当你发现规律性和错误时,你会形成一个想法,即哪种程序结构最适合你。

具体实现--在KodoBase中,有很多选项。采取任何一项措施,探索、使用和修改它们。

你还需要什么?

 
Georgiy Merts:

我不明白这个话题的意义。

很明显,每个编码员都有自己的偏好,自己的原则,自己对程序结构的看法。 你也会有自己的看法。 为了解决这些问题--你需要写代码并测试它。当你识别模式和发现错误时,你会形成一个想法,即哪种程序结构最适合你。

具体实现--在KodoBase中,有很多选项。采取任何一项措施,探索、使用和修改它们。

你还需要什么?

我当然是在看kodobase了。我对只有一个作者的代码没有怀疑,metaquotes,它的官方开发者。我正在向他学习。那里的人写东西很有逻辑性,最大限度地使用内置函数。但他的专家顾问非常少。一般来说,有很多由不同作者编写的有问题的代码,而且经常发生的情况是,你看了代码后,不明白为什么它被写成这样。好吧,我很惊讶人们对这些实施的信心。当然,也许是我太担心了。我也许应该写出来,只是为了让它发挥作用,正如他们在这里所说的那样。

 
但在我看来,开源领域迟早会有某种共识。毕竟,人们一遍又一遍地写同样的东西,只是有变化。因此,为什么不做准备好的作品并讨论它们。就像这里我们有一个网流发生器的实现,现在它被提升到了最佳速度和功能。我一定会做到的。我只是没有足够的知识来使用最佳解决方案。我现在要画一个方案,无论什么东西首先出现在脑海中,那就是它。或者我从其他具有相同知识水平的人那里借来。但如果我们做出实施的例子,有经验的博学的人就会加入进来,解决一些问题,互相争论,达成共识。最后,每个人都会得到高质量的代码,或者至少是一个可以效仿的例子。
 
Ivan_Invanov:
但在我看来,开源领域迟早会有一个共识。毕竟,人们时常会写同样的东西,只是有变化。因此,为什么不做现成的作品并讨论它们。就像这里我们有一个网流发生器的实现,现在它被提升到了最佳的速度和功能。我一定会做到的。我只是没有足够的知识来使用最佳解决方案。我现在要画一个方案,无论什么东西首先出现在脑海中,那就是它。或者我从其他有相同知识水平的人那里借来。但如果我们做出实施的例子,有经验的博学的人就会加入进来,解决一些问题,互相争论,达成共识。最后,每个人都会得到高质量的代码,或者至少是一个可以效仿的例子。

这个想法是个好主意。Igor Kim的 基地当时非常有帮助,非常感谢他的工作:)

 
Ivan_Invanov:

当然,看的是kodobase。我不怀疑只有一个作者的代码,即metaquotes,他是官方开发者。我正在向他学习。那里的人写得很有逻辑性,并最大限度地使用内置函数。但他的专家顾问非常少。一般来说,有很多由不同作者编写的有问题的代码,而且经常发生的情况是,你看了代码后,不明白为什么它被写成这样。好吧,我很惊讶人们对这些实施的信心。当然,也许是我太担心了。我可能不得不写,只是为了让它发挥作用,正如他们在这里所说的。

那是另一回事。

请注意,我有时会看自己的代码,不明白为什么会写在这样一个特殊的地方。 这就是为什么我试图对这样的片段进行详细的评论,试图提到所有的微妙之处。但我仍然经常看到,我没有考虑到一些事情。

此外,我使用下面的代码(确定执行的类型),这是由一个非常权威的论坛用户写的。

ENUM_ORDER_TYPE_FILLING CSymbolInfo::GetTypeFilling(string strSymbol,ENUM_ORDER_TYPE_FILLING otfFilingType)
{
   #ifndef __MQL5__
      return(otfFilingType);
   #else // __MQL5__
      
   const ENUM_SYMBOL_TRADE_EXECUTION steExeMode = (ENUM_SYMBOL_TRADE_EXECUTION)::SymbolInfoInteger(strSymbol, SYMBOL_TRADE_EXEMODE);
   const int iFillingMode = (int)::SymbolInfoInteger(strSymbol, SYMBOL_FILLING_MODE);

   return((iFillingMode == 0 || (otfFilingType >= ORDER_FILLING_RETURN) || ((iFillingMode & (otfFilingType + 1)) != otfFilingType + 1)) ?
         (((steExeMode == SYMBOL_TRADE_EXECUTION_EXCHANGE) || (steExeMode == SYMBOL_TRADE_EXECUTION_INSTANT)) ?
           ORDER_FILLING_RETURN : ((iFillingMode == SYMBOL_FILLING_IOC) ? ORDER_FILLING_IOC : ORDER_FILLING_FOK)) :
          otfFilingType);
  
   #endif // __MQL5__
};

我不明白它是如何工作的。 此外,这位网友在被问及时自己说,他已经不记得了,只是这个代码已经被测试过很多次,可以信任。

好吧,如果我设法用真正的if语句取代这些愚蠢的 "问题",我会想出办法的......就目前而言...

 
最好是做一个框图,直接用这些块来写,我一开始就是这样做的,然后你开始使用函数,但我只使用别人的OOP。一般来说,你必须以这样的方式来写,即你可以很容易地对一段代码进行修改,而不必重写所有的内容。