Индикаторы: Portfolio Optimizer - страница 25

 
Stanislav Korotky:

Вероятно, проблема в правильном нахождении границ текущей сессии. В файле MT4State.mqh сейчас такая реализация функции IsTradeAllowed:

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

Сами разработчики рекомендовали цикл по теоретически возможному кол-ву сессий с остановкой на первой ошибке:

#define MAX_TRADE_SESSIONS 10

for ( int session = 0; session < MAX_TRADE_SESSIONS; session ++ )
{
        if ( !SymbolInfoSessionTrade( symbol, d_o_w, session, session_start, session_end ) ) break;
 
konstb:
Похоже неправильно отрабатывает команда 

IsTradeAllowed


Станислав подскажи как ее корректно исправить в эксперте?

рынок закрыт, если:

if(IsTradeAllowed( Symbol(),TimeCurrent()+100)==false)

проверяйте счас, пока закрыт

так можно проверить любой символ

 
ENUM_DAY_OF_WEEK GetDayOfWeek( const datetime time )
{
  MqlDateTime sTime = {0};

  ::TimeToStruct(time, sTime);

  return((ENUM_DAY_OF_WEEK)sTime.day_of_week);
}

bool SessionTrade( const string Symb )
{
  datetime TimeNow = ::TimeTradeServer();

  const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);

  TimeNow %= 24 * 60 * 60;

  bool Res = false;
  datetime From, To;

  for (int i = 0; (!Res) && ::SymbolInfoSessionTrade(Symb, DayOfWeek, i, From, To); i++)
    Res = ((From <= TimeNow) && (TimeNow < To));

  return(Res);
}
 
fxsaber:

как всегда точно и исчерпывающе

заберу этот фрагмент себе на будущее

респект!

 
Всем спасибо за советы! Буду пробовать поменять код. Пока эта платформа для меня новая.
 
transcendreamer,

спасибо за индикатор и эксперта. Торгую по уровням, задаваемым на графике линиями со свойствами SELL и BUY. Уровни отрабатываются всегда. Но order почему то уходит не всегда. Приходится руками отправлять. Не подскажешь , с чем это может быть связано и куда "копать",
 
konstb:
transcendreamer,

спасибо за индикатор и эксперта. Торгую по уровням, задаваемым на графике линиями со свойствами SELL и BUY. Уровни отрабатываются всегда. Но order почему то уходит не всегда. Приходится руками отправлять. Не подскажешь , с чем это может быть связано и куда "копать",

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

 
transcendreamer:

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

спасибо за помощь. Понаблюдаю в ПН на торгах.

 
konstb:

спасибо за помощь. Понаблюдаю в ПН на торгах.

Это конверсия в мт5 не открывает либо оригинал в мт4?

В журнале в случае ошибки должно быть такое сообщение:

ИМЯ_ПОРТФЕЛЯ: Failed to open! - ТИП_ОШИБКИ for ИМЯ_СИМВОЛА

 
transcendreamer:

Это конверсия в мт5 не открывает либо оригинал в мт4?

В журнале в случае ошибки должно быть такое сообщение:

ИМЯ_ПОРТФЕЛЯ: Failed to open! - ТИП_ОШИБКИ for ИМЯ_СИМВОЛА

спасибо, ошибки отправки ордера нет-быд выключен эксперт.


Но бывает ложное пробитие уровня. Индикатор случайным образом скачет уровень срабатывает. Потом индикатор пересчитывается и возвращается к последним значениями. Александр подскажи пож-та, какими настройками можно убрать эти скачки.