Обсуждение статьи "Оптимальный подход к разработке и анализу торговых систем" - страница 3

 

Мне нравятся статьи Евгения - искренность и простота в изложении сложных проблем!

От себя только добавлю следующее:

разработка и оптимизация торговых систем должна соответствовать природе рынка, а именно - процесс нестационарный (постоянно изменяется не только амплитуда, но и частота колебаний цены). Чтобы быть наукой, аналитика должна использовать элементарную структуру, параметры которой можно было бы использовать в любой момент времени.

А в традиционных методах такая структура не определена. Поэтому разработчики беспомощно мечутся в поисках грааля, творя сотни и тысячи строк кода, а результат один и тот же - прибыльных трейдеров от 5 до 15% (независимо от рынка - официальная статистика). Причина одна - для научного подхода нужен "атом" (как в физике), "молекула" (как в химии), чтобы аналитика стала наукой, а не гаданием на кофейной гуще.

 
Aleksandr Masterskikh:

Мне нравятся статьи Евгения - искренность и простота в изложении сложных проблем!

От себя только добавлю следующее:

разработка и оптимизация торговых систем должна соответствовать природе рынка, а именно - процесс нестационарный (постоянно изменяется не только амплитуда, но и частота колебаний цены). Чтобы быть наукой, аналитика должна использовать элементарную структуру, параметры которой можно было бы использовать в любой момент времени.

А в традиционных методах такая структура не определена. Поэтому разработчики беспомощно мечутся в поисках грааля, творя сотни и тысячи строк кода, а результат один и тот же - прибыльных трейдеров от 5 до 15% (независимо от рынка - официальная статистика). Причина одна - для научного подхода нужен "атом" (как в физике), "молекула" (как в химии), чтобы аналитика стала наукой, а не гаданием на кофейной гуще.

Спасибо за поддержку, вашу книгу бы еще почитать плотно ) я так начал немножко, но просто времени пока нет особо. Кстати насчет прибыльных трейдеров еще вычесть надо случайные результаты ) в реальности я думаю процента 2 будет, тех кто понимает что делает ).

 

Статья демонстрирует интересный подход к поиску годного базового алгоритма. Я так понимаю, что если такой алгоритм найден, то происходит более глубокий его анализ и улучшение. Согласен с автором, что многие носятся со своей идеей годами и её планомерно развивают и улучшают, даже если она не приносит доход, но она своя. Я так же отношусь к таким людям, но тут как раз вопрос уже характера человека и просто так отказаться от такого поведения сложно. В итоге подход годный, если есть способность генерировать множество отличных от других идей, дающих сигнал для входа в рынок.

Относительно метрических показателей результатов тестирования, то в целом согласен, но требуется уточнить, что они справедливы для фиксированного лота, в случае построения сетей (постепенного набора позиции) интерпретация и значимость показателей будет меняться.

Относительно кода - в последнее время всё больше наблюдаю багов в тестере стратегий, и поэтому проверки уже считаю желательно делать. Но, код тут вторичен, и всегда можно найти к чему придраться. Не понимаю, почему участники форума не могут быть добрей и вместо наездов подсказать и помочь, исправить явную ошибку в коде или логики - к чему такая агрессия - не понимаю.

 
Aleksey Vyazmikin:

Относительно кода - в последнее время всё больше наблюдаю багов в тестере стратегий, и поэтому проверки уже считаю желательно делать. Но, код тут вторичен, и всегда можно найти к чему придраться. Не понимаю, почему участники форума не могут быть добрей и вместо наездов подсказать и помочь, исправить явную ошибку в коде или логики - к чему такая агрессия - не понимаю.

ОК, опустим код, считаем, что это самобытное написание кода, как говорится MQL-стайл

про формулы можете свое мнение сказать? - это раздел "Математика оптимального поиска"

 
Igor Makanu:

про формулы можете свое мнение сказать? - это раздел "Математика оптимального поиска"

Сами формулы не анализировал и не проверял на правильность построения.

Относительно логики для их построения - так я уже ранее написал, что это подход, который имеет право на жизнь, если у его применителя есть способности к генерации новых идей.

Конечно у любого советника есть своя логическая обвязка, набор функций, которые переходят из одного советника в другой и они константы, а вот дополнительная логика, генерирующая вход в рынок может быть разной, и я согласен, что если она приносит профит на начальном этапе с простыми правилами и достаточным числом входов, то шансов выжать из неё больший профит будет больше при одинаковом числе дополнительных неравенств (строк кода) к базовой стратегии. Это генетический отбор идей просто, не значит, что отброшенные идеи плохи, а значит, что для их разработки (эволюции) потребуется больше времени, в то время как человек обладает ограниченным его запасом.

 

Заставил задуматься вот этот пассаж:

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

  • Ps=Ps(L)

Где "L" — количество строк рабочего кода. Иначе говоря, вероятность того, что первые показатели текущей создаваемой системы окажутся в приемлемом диапазоне, напрямую зависит от количества написанного нами кода. Многим может показаться, что чем больше строк, то тем лучше система, на самом деле это не всегда так. При этом необходимо понимать что:

  • T=K*L

Чем больше строк, тем дольше занимает разработка, но мы в первую очередь должны думать не о том, сколько строк в нашем коде, и не захейтят ли нас за 2 строки кода, которые работают как 2000, а о том, какова эффективность нашего кода и сколько приемлемых систем мы можем написать в единицу времени. Ведь от этого показателя будут зависеть все остальные показатели:

  • E= Ps/T
  • E --> Max

Ну достаточно смелое утверждение. Имхо, тут имеет место индукция - от частного к общему: автор нашёл что-то небольшое по объёму кода и профитное и делает вывод, что это правильно... а кто знает? Может это просто случайность. Чтобы такие выводы смелые делать, тут нужно провести целое статистическое исследование...

Ещё вопрос по стилистике. Интересно, в каких университетах учат так представлять формулы без опознавательных знаков? К примеру, что такое К? 

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Обсуждение статьи "Оптимальный подход к разработке и анализу торговых систем"

fxsaber, 2020.10.24 12:08

Статью еще не смотрел. Этот комментарий не понял. Для Тестера тоже не практикую проверки. И делаю это намеренно.


Коллега, ну Вы что. Даже без проверок нормальная запись?

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:

Коллега, ну Вы что. Даже без проверок нормальная запись?

С барами не работаю, поэтому не в курсе.


ЗЫ Вчера столкнулся, что по реальным тикам некоторые штатные символы выдавали зашкаливающую прибыль. Сделал из реальных тиков кастомный символ. Грааль исчез...

Причина обращения: