Обсуждение статьи "Универсальный торговый эксперт: Интеграция со стандартными модулями сигналов MetaTrader (часть 7)" - страница 2

 
Vasiliy Sokolov:
В данном случае мэджики - рудементы CExpert, от которого наследуется сам сигнал. Он сигналу не нужен, по крайней мере в CStrategy, т.к. он не выставляет отложенные ордера. Однако указан какой-то мэджик так, на всякий случай.

Т.е. магик используется тот, который передаётся при инициализации экземпляра CStrategy? Ведь для работы класса CTrade тоже нужен валидный магик.

P.S. Ещё вопрос: "На картинках у Вас показаны сигналы индикатора (стрелки), или выделены бары, на которых сигнал пришёл. Это так работают встроенные классы сигналов (с рисованием)? Или это ручная отрисовка?" Почему спрашиваю? - в моих библиотеках (для МТ4) отрисовываются сигналы, а также есть настройка "сколько баров подряд проверяется наличие сигнала".

 
Гога:

Т.е. магик используется тот, который передаётся при инициализации экземпляра CStrategy? Ведь для работы класса CTrade тоже нужен валидный магик.

P.S. Ещё вопрос: "На картинках у Вас показаны сигналы индикатора (стрелки), или выделены бары, на которых сигнал пришёл. Это так работают встроенные классы сигналов (с рисованием)? Или это ручная отрисовка?" Почему спрашиваю? - в моих библиотеках (для МТ4) отрисовываются сигналы, а также есть настройка "сколько баров подряд проверяется наличие сигнала".

Нет, это стрелки не сигналов, а тестера стратегий. Так он показывает открытие или закрытие позиций. Если имеете в виду стрелки на рисунке 3, то это просто оформление рисунка.
 
Vasiliy Sokolov:
В данном случае мэджики - рудементы CExpert, от которого наследуется сам сигнал. Он сигналу не нужен, по крайней мере в CStrategy, т.к. он не выставляет отложенные ордера. Однако указан какой-то мэджик так, на всякий случай.

Повторяю вопрос: "Т.е. магик используется тот, который передаётся при инициализации экземпляра CStrategy? Ведь для работы класса CTrade тоже нужен валидный магик."

P.S. Прверьте почту.

 
Гога:

Повторяю вопрос: "Т.е. магик используется тот, который передаётся при инициализации экземпляра CStrategy? Ведь для работы класса CTrade тоже нужен валидный магик."

P.S. Прверьте почту.

Да, используется тот мэджик который передается в CStrategy. Другие междики не используются, хотя ими и заполняется сигнал.
 

Возможно комбинировать паттерны. Например, чтобы использовать паттерн № 3 вместе с паттерном № 2, необходимо составить битовое поле, четвертый и третий разряд которого были бы равны единице: 1010

Есть тут опечатка или нет?

 
newnek:

Возможно комбинировать паттерны. Например, чтобы использовать паттерн № 3 вместе с паттерном № 2, необходимо составить битовое поле, четвертый и третий разряд которого были бы равны единице: 1010

Есть тут опечатка или нет?

Да, действительно, это ошибка. Исправлено на:

Например, чтобы использовать паттерн № 3 вместе с паттерном № 2, необходимо составить битовое поле, четвертый и третий разряд которого были бы равны единице: 1100. Это же значение в десятеричном формате будет числом 12.

 

Не получается скомпилировать...

'CSeries' - identifier already used     Series.mqh      18      7
see previous declaration of 'CSeries    Series.mqh      11      7
'm_symbol' - struct member already defined      Series.mqh      25      22
'CSeries' - member function already defined     Series.mqh      32      22
'~CSeries' - member function already defined    Series.mqh      33      22
'~CSeries' - member function not defined        Series.mqh      72      11


 

Движок совершенно замечательный, спасибо. Первый ООП MQL5 движок, на который я решился перейти.

Но Manager.OnTick(), к сожалению, очень медленный. Трассировка показывает почти 100% на ней. Тестирование проходит очень медленно на минутном таймфрейме и с OHLC M1. За 3 года - примерно 50 секунд. И при этом для проверки сам эксперт ничего не делает, всё, что нагружает, я закомментировал. То есть идёт просто перебор баров.

Очень хочется оптимизации кода в Manager.OnTick()

 
Edgar:

Движок совершенно замечательный, спасибо. Первый ООП MQL5 движок, на который я решился перейти.

Но Manager.OnTick(), к сожалению, очень медленный. Трассировка показывает почти 100% на ней. Тестирование проходит очень медленно на минутном таймфрейме и с OHLC M1. За 3 года - примерно 50 секунд. И при этом для проверки сам эксперт ничего не делает, всё, что нагружает, я закомментировал. То есть идёт просто перебор баров.

Очень хочется оптимизации кода в Manager.OnTick()


Так это функция, из которой все остальное запускается - разумеется она будет 100%. Вот внутри неё смотрите, на что время уходит и оптимизируйте. Можете скрин опубликовать.

 
Edgar:

Движок совершенно замечательный, спасибо. Первый ООП MQL5 движок, на который я решился перейти.

Но Manager.OnTick(), к сожалению, очень медленный. Трассировка показывает почти 100% на ней. Тестирование проходит очень медленно на минутном таймфрейме и с OHLC M1. За 3 года - примерно 50 секунд. И при этом для проверки сам эксперт ничего не делает, всё, что нагружает, я закомментировал. То есть идёт просто перебор баров.

Очень хочется оптимизации кода в Manager.OnTick()

Ничего удивительного здесь нет. Эта скорость сопоставима с холостым ходом тестера стратегий. OnTick определяет наступление нового тика и открытие нового бара. Эти операции не требуют много ресурсов.

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