На рассмотрение профессионалов. - страница 2

 
Integer:

Красными линиями показаны просадки, нужно найти максимальную.

А зачем искать максимальную просадку? О чем это говорит?
 
Andrei01:

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

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


Andrei01:
А зачем искать максимальную просадку? О чем это говорит?
Ну если Вам это не нужно или Вы не понимаете для чего это нужно, зачем встревать в разговор, да еще и свое мнение навязывать?
 
Andrei01:

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

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

Поясните, где вы встречали такой параметр как минимальная просадка, в каком отчёте. Что-то мне не попадалось(. А для меня баланс это пустое место, пусть он хоть на земле лежит, лишь бы эквити было на высоте). Или я что то не так понимаю? Мне всегда казалось, что опускаться и подниматься могут только отложенные ордера. Неужели я ошибался? Если бы знал это раньше, давно бы начал поднимать или опускать ордера селл и бай в выгодном мне направлении.) Считаю, что максимальное падение эквити, найденное при прогоне теста, может повториться при реальной торговле, поэтому считаю правильным отсчитывать его от максимума.

 
Integer:

Вообще максимальная просадка это не разница максимального и минимального эквити. На старте МаксЭквити=Эквити, МинЭквити=Эквити, Просадка=0. В процессе работы: если Еквити>МаксЭквити, то считаем просадку как МаксЭквити-МинЭквити, если полученное значение больше зафикисрованой ранее просадки, то запоминаем большее значение, тут же делаем сброс минимума - МинЭквити=МаксЭквити и запоминаем новый максимум МаксЕквити=Эквити.
А не могли бы вы подправить код, который я выложил? Спасибо.
 

Вот как у меня получилось:

double MaxEq;
double MaxDD;

void DD_Init(){ // Вызываем из init
   MaxEq=AccountEquity();
   MaxDD=0;
}

void DD_Start(){ // Вызываем из start


   if(!IsTesting()){
      return;
   }      
   if(AccountEquity()>MaxEq){
      MaxEq=AccountEquity();
   }
   else{
      MaxDD=MathMax(MaxEq,MaxEq-AccountEquity());
   }
}
void DD_Deinit(){ // Вызываем из deinit

      if(!IsTesting()){
         return;
   }      
   Print("Просадка: "+DoubleToStr(MaxDD,2));
}
 
khorosh:
А не могли бы вы подправить код, который я выложил? Спасибо.


Сильно не вникал в него, но на первый взгляд все нормально, при новом максимуме выполняется сброс минимума...
 
Andrei01:
А зачем искать максимальную просадку? О чем это говорит?


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

 
Integer:

Сильно не вникал в него, но на первый взгляд все нормально, при новом максимуме выполняется сброс минимума...
Ну если бы не OnGoing, я бы и не сомневался, так как результат подсчитанный моим кодом совпал с результатом в тестере.
 

картинки тут https://www.mql5.com/ru/forum/136747/page696

Советник открывает только 1 сделку в определенное время (и не закрывает её), проверьте максимальную просадку в тестере - тестировать в визуальном режиме:

1. не до конца 3 февраля (нажать стоп раньше)

2. до конца 3 февраля

Файлы:
 
serferrer:

картинки тут https://www.mql5.com/ru/forum/136747/page698

Советник открывает только 1 сделку в определенное время (и не закрывает её), проверьте максимальную просадку в тестере - тестировать в визуальном режиме:

1. не до конца 3 февраля (нажать стоп раньше)

2. до конца 3 февраля

Цель вашего поста - показать как правильно считать просадку или показать, что тестер неправильно считает просадку? Дайте пожалуйста развернутый ответ, не будьте так лаконичны, здесь не все профессионалы. Спасибо за советник. Только мне кажется, что ваш код, если включить его в реальный советник, будет определять просадки для одной или нескольких открытых сделках от момента открытия, до момента закрытия этих сделок, но не ищет максимальную просадку за всё время работы советника. Или я неправильно понял? А мой код можете покритиковать? Правильно ли он выполняет свою задачу нахождения максимальной просадки??
Причина обращения: