Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2110

 
Tretyakov Rostyslav #:

спасибо

 
законопослушный гражданин #:


Тут проблемка есть - ордера не сразу в историю попадают. Мне приходилось счётчик пустых тиков встраивать в код, чтоб дождаться момента, когда уже закрытый ордер появится в списке закрытых ордеров. Посмотрите, уже обсуждалось https://www.mql5.com/ru/forum/427739

Расчудесное поведение тестера стратегий МТ4 - Проверяем в истории наличие байстопа, закрытого по стопу или по тейку
Расчудесное поведение тестера стратегий МТ4 - Проверяем в истории наличие байстопа, закрытого по стопу или по тейку
  • 2022.06.27
  • www.mql5.com
что спред фиксированный и что если бай стоп сработал - бывшая лимитка точно закрылась по тейку. что бай стоп срабатывает одновременно с тейком бывшего бай лимит. Но тут вот в чем загвоздка в процессе торгов лимитник может оказаться закрыт по стоплоссу
 

Подскажите, пожалуйста, как пропустить воскресенье при расчете дневного ATR?

   for(i=limit;i>=0;i--)
     {
      index=iBarShift(_Symbol,PERIOD_D1,time[i],false);
      Label1Buffer[i]=iATR(_Symbol,PERIOD_D1,5,index+1);
     }


 
Tretyakov Rostyslav #:

Подскажите, пожалуйста, как пропустить воскресенье при расчете дневного ATR?


Логичным видится применение структруры MqlDateTime для отсева ненужных баров.

 
Aleksey Vyazmikin #:

Логичным видится применение структруры MqlDateTime для отсева ненужных баров.

Можно пример, пожалуйста.

 
Tretyakov Rostyslav #:

Можно пример, пожалуйста.

MqlDateTime dt; TimeToStruct(time[i],dt);

if (dt.day_of_week == 6 || dt.day_of_week==0) {

    // субота и воскр. наверное нерабочие (по хорошему надо заранее сверяться по SymbolTradingPeriod 

    continue

}

if (time[i+1]-time[i] > 24*60*60) {

   // бар странной длительности, наверное выходной там, или праздник какой

   continue;

}

 
Maxim Kuznetsov #:

MqlDateTime dt; TimeToStruct(time[i],dt);

if (dt.day_of_week == 6 || dt.day_of_week==0) {

    // субота и воскр. наверное нерабочие (по хорошему надо заранее сверяться по SymbolTradingPeriod 

    continue

}

if (time[i+1]-time[i] > 24*60*60) {

   // бар странной длительности, наверное выходной там, или праздник какой

   continue;

}

Спасибо, но как определить день недели я знаю.

Я не знаю как их пропустить при подсчете ATR.

 
Tretyakov Rostyslav #:

Спасибо, но как определить день недели я знаю.

Я не знаю как их пропустить при подсчете ATR.

Считайте сами ATR, если день выходной, то берите предшествующий день (или не берите - уменьшайте делитель).

 
Aleksey Vyazmikin #:

Считайте сами ATR, если день выходной, то берите предшествующий день (или не берите - уменьшайте делитель).

Я понял...легких путей нет.

Спасибо.

 

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

Правильно я делаю ? что то подсказывает что не совсем корректно. MQL4

AccountPercent = NormalizeDouble(((AccountEquity()-AccountBalance())/100),2);
Причина обращения: