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

 

Опубликована статья Контроль наклона кривой баланса во время работы торгового эксперта:

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

Автор: Dima

 

Что-то с иллюстрациями.

Рисунки отсутствуют, есть только подписи к ним.

 
Очень хороший подход, на мой взгляд
 
Но при тестировании, почему то зависло, как будто на паузу нажали, в чем причина?
 
arbuz:
Но при тестировании, почему то зависло, как будто на паузу нажали, в чем причина?
Сорри, вкралась не большая неточность в алгоритме сортировки. Сейчас появится поправленная библиотека.
 

"Это своего рода надстройка над ММ советника (управлением деньгами), не позволяющая ему получить существенные убытки на счете."


Выражение:

"
//  Ограничение лота снизу:

  if( lots < min_trade_volume )
  {
    lots = min_trade_volume;
  }"
может позволить.

См., например, https://www.mql5.com/ru/forum/124281/page2#283533

Поясните, пожалуйста, как получается просадка - MQL4 форум
  • www.mql5.com
Поясните, пожалуйста, как получается просадка - MQL4 форум
 

Вы статью внимательно прочитали?

Одно из требований для данной версии библиотеки - размер нормального рабочего лота должен быть существенно (в 2-3 раза хотя бы) больше минимально разрешенного

Кусок, вырванный Вами из контекста, вообще, относится к нормализации рабочего лота, чтобы не получить ошибку из-за неправильного объема.

 

А Вам ссылку почитать было бы полезно.

Ошибка то обычная. 

 
Ais:

А Вам ссылку почитать было бы полезно.

Ошибка то обычная. 

Вы путаете управление рисками и простое приведение рабочего лота к нормализованной величине. Если ММ требует текущий размер лота существенно меньше минимально разрешенного, то позиция вообще не должна открываться. Только какое это имеет отношение к нормализации? (вопрос риторический)
 

Вот, выкладываю с исправлением, - пока в статье старая версия.


В статье также обновилась.

Файлы:
 

При изменении объема сделки, для "нормализации" или для других целей, изменяется итоговая величина риска.

Вот такое вот отношение.

Кроме того, заявлено: "Данный метод возвращает ближайшее снизу значение лота."

А в случае

"//  Ограничение лота снизу:
  if( lots < min_trade_volume )
  {
    lots = min_trade_volume;
  }"

возвращается значение ближайшее сверху, а оно может отличаться во много-много раз...
 

Пример более простого и надежного расчета объема сделки можно найти по ссылке https://www.mql5.com/en/forum/112782

В частности:

"if   ( SizeLimit    >= MinLots )                                                      
     { int Steps     = MathFloor ( ( SizeLimit - MinLots ) / LotStep )  ;
       LotSize       = MinLots     + Steps     * LotStep   ; }
else   LotSize       = 0  ;
                                                                                       
if   ( LotSize      >= MaxLots )
       LotSize       = MaxLots ;

Использование функции NormalizeDouble() излишне. 

Данный способ работает при любых значениях минимального объема, шага и знаков после запятой.

Надеюсь, что Ваш доработанный и исправленный - также.

 

Calculation on Leverage & MM together in Expert Advisors. - MQL4 forum
  • www.mql5.com
Calculation on Leverage & MM together in Expert Advisors. - MQL4 forum
Причина обращения: