文章 "开发和分析交易系统的最佳方法" - 页 3

 

我喜欢尤金的文章--真诚而简单地阐述复杂的问题!

我只想补充以下几点自己的看法:

交易系统的开发和优化应符合市场的性质,即它是一个非稳态过程(不仅是价格波动的幅度,还有频率都在不断变化)。要成为一门科学,分析必须使用一种基本结构,其参数可以在任何时候使用。

而这种结构在传统方法中并没有定义。这就是为什么开发人员无奈地寻找圣杯,创造出成百上千行代码,但结果都是一样的--盈利的交易者从 5%到 15%不等(无论市场如何--官方统计)。原因是一样的--科学的方法需要 "原子"(物理学中的原子)和 "分子"(化学中的分子),分析才能成为一门科学,而不是对咖啡渣的猜测。

 
Aleksandr Masterskikh:

我喜欢尤金的文章--真诚而简单地阐述复杂的问题!

我只想补充以下几点自己的看法:

交易系统的开发和优化应符合市场的性质,即它是一个非稳态过程(不仅是价格波动的幅度,还有频率都在不断变化)。作为一门科学,分析应使用基本结构,其参数可在任何时候使用。

而这种结构在传统方法中并没有定义。这就是为什么开发人员无奈地寻找圣杯,创造出成百上千行代码,而结果都是一样的--盈利的交易者从 5%到 15%不等(无论市场如何--官方统计)。原因是一样的--科学的方法需要 "原子"(如物理学)和 "分子"(如化学),分析才能成为一门科学,而不是对咖啡渣的猜测。

感谢您的支持,您的书还是值得一读的)我已经开始读了一点,只是还没有时间。顺便说一句,关于盈利的交易者,你应该减去随机的结果)在现实中,我认为会有 2%的人明白他们在做什么)。

 

这篇文章展示了一种寻找好的基本算法的有趣方法。我的理解是,如果找到了这样一种算法,就会对其进行更深入的分析和改进。我同意作者的观点,很多人多年来一直在研究自己的想法,并对其进行系统的开发和改进,即使不能带来收入,但这是他们自己的想法。我也认同这样的人,但这里只是一个人的性格问题,很难简单地放弃这种行为。归根结底,如果你有能力产生很多不同的想法,从而发出进入市场的信号,那么这种方法就是好的。

关于测试结果 的度量指标,我总体上同意,但有必要说明的是,这些指标对固定手数有效,在建立网络(逐步积累头寸)的情况下,指标的解释和意义会发生变化。

关于代码--最近我在策略测试器中看到了越来越多的错误,这就是为什么我认为应该进行检查。但代码在这里是次要的,你总能找到可以挑刺的地方。我不明白为什么论坛成员不能更友善一些,而不是攻击和帮助纠正代码或逻辑中的明显错误--为什么要这样咄咄逼人--我不明白。

 
Aleksey Vyazmikin:

关于代码--最近我在策略测试器中看到了越来越多的错误,因此我认为应该进行检查。但代码在这里是次要的,你总能找到可以抱怨的地方。我不明白为什么论坛成员不能更友善一些,与其攻击和帮助,不如修复代码或逻辑中的明显错误--为什么要如此咄咄逼人--我不明白。

好吧,让我们省略代码,我们认为这是代码的原创性写作,就像他们说的 MQL 风格。

您能谈谈对公式的看法吗?- 这是 "最优搜索数学 "部分。

 
Igor Makanu:

您能谈谈对这些公式的看法吗?- 这是一节名为 "最优搜索数学 "的内容。

我没有分析公式本身,也没有检查其构造的正确性。

至于其构造逻辑,我在前面已经写过,如果用户有能力产生新的想法,那么这种方法就有生命力。

当然,任何 Expert Advisor 都有自己的逻辑,都有一套从一个 Expert Advisor 传递到另一个 Expert Advisor 的函数,它们是不变的,但产生市场进入的 附加逻辑可以是不同的,而且我同意,如果在初始阶段通过简单的规则和足够数量的进入就能带来利润,那么在基本策略上增加相同数量的不等式(代码行),从中榨取更多利润的机会就会更大。这种对想法的基因选择并不意味着被抛弃的想法是坏的,而是意味着开发(进化)这些想法需要更多的时间,而人类拥有的时间是有限的。

 

这段话 引起了我的思考:

 В итоге все сводится к некой зависимости, достоверно определить которую невозможно, но можно примерно прощупать путем опытов:

  • Ps=Ps(L)

其中,"L "是工作代码的行数。换句话说,当前创建的系统的第一个指标处于可接受范围的概率直接取决于我们编写的代码量。 在很多人看来,代码行数越多,系统就越好,但事实上并非总是如此。 我们应该明白

  • T=K*L

行数越多,开发时间就越长,但我们首先考虑的不应该是我们的代码有多少行,以及我们是否会因为 2 行代码像 2000 行代码一样工作而丧命,而是我们的代码效率如何,以及我们在单位时间内能写出多少个可接受的系统。毕竟,所有其他指标都将取决于这一指标:

  • E= Ps/T
  • E --> 最大值

这是一个相当大胆的说法。在我看来,归纳法--从特殊到一般--就发生在这里:作者发现了一些代码量小、利润高的东西,并得出结论认为它是正确的......但谁知道呢?也许这只是个意外。要想得出如此大胆的结论,您需要进行全面的统计研究......

另一个文体问题。我想知道有哪所大学教过如何用这种不加标注的方式来表达公式?例如,K 是什么?

 

关于交易、自动交易系统和交易策略测试的论坛

讨论文章 "开发和分析交易系统的最佳方法"

fxsaber, 2020.10.24 12:08 pm

我还没有看这篇文章。我不理解这个评论。我也不练习检查 Tester。而且我是故意的。


同事,拜托。即使不检查也是正常记录

void CalcAllMQL5Values()//数组重新计算
  {
   ArraySetAsSeries(High, false);
   ArraySetAsSeries(Low, false);
   ArraySetAsSeries(Close, false);
   ArraySetAsSeries(Open, false);
   ArraySetAsSeries(Time, false);
   ArraySetAsSeries(Volume, false);
   CopyHigh(_Symbol, _Period, 0, CandlesE, High);
   CopyLow(_Symbol, _Period, 0, CandlesE, Low);
   CopyClose(_Symbol, _Period, 0, CandlesE, Close);
   CopyOpen(_Symbol, _Period, 0, CandlesE, Open);
   CopyTime(_Symbol, _Period, 0, CandlesE, Time);
   CopyTickVolume(_Symbol, _Period, 0, CandlesE, Volume);
   ArraySetAsSeries(High, true);
   ArraySetAsSeries(Low, true);
   ArraySetAsSeries(Close, true);
   ArraySetAsSeries(Open, true);
   ArraySetAsSeries(Time, true);
   ArraySetAsSeries(Volume, true);
  }

文档 中有明确规定:

...Неважно, какое свойство имеет приемный массив - as_series=true или as_series=false, данные будут скопированы таким образом, что самый старый по времени элемент будет в начале физической памяти, отведенной под массив. Существует 3 варианта функции...

因此,12 行代码毫无意义。这是一个效率和优化问题:-)

最后 6 行应直接移至 DimensionAllMQL5Values() 函数。

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyClose
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyClose
  • www.mql5.com
Функция получает в массив close_array исторические данные цен закрытия баров для указанной пары символ-период в указанном количестве. Необходимо отметить, что отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества данных...
 

尤金,顺便说一句,有这样一个函数CopyRates()

是的,关于原型的问题。有一篇精彩的文章"交易机器人的原型"。当然,如果你想有效地编程,而不是把橄榄沙拉弄碎的话;-)

我不知道,也许我还没有达到理解的水平....。但到目前为止,我有这样一种感觉,即以某种方式将代码行数与算法的盈利能力联系起来,就像把温暖和柔软....。

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
  • www.mql5.com
Получает в массив rates_array исторические данные структуры MqlRates указанного символа-периода в указанном количестве. Отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества данных рекомендуется в качестве приемного...
 
尤金,你是否从有信誉的卖家那里购买了市场培训材料?)
 
Denis Kirichenko:

同事,别这样。即使没有任何检查,这也是个好记录

我不做条形图,所以不知道。


ZЫ 昨天,我发现一些标准符号在真实点数上获利过多。我用真实点数制作了一个自定义符号。圣杯消失了...