Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нужен приватный мониторинг счета? В Сигналах есть такая возможность!
MetaQuotes Software Corp.
Модератор
181292
MetaQuotes Software Corp. 2016.06.27 16:47 

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

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

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

 

Рис. 1. Схема наследования стандартных классов автогенератора стратегий

На рисунке представлены только основные и некоторые производные классы. Не показаны все индикаторы, наследуемые от CIndicators. Не отображены в этой схеме также и все модули трейлинга, управления капиталом и модули сигналов. Вместо этого намечены лишь основные взаимосвязи. Из всей иерархии классов нас будет интересовать лишь одна группа: классы сигналов CExpertSignal и производные от него. На рисунке 1 эта группа выделена зеленой пунктирной линией.

Автор: Vasiliy Sokolov

Dennis Kirichenko
11329
Dennis Kirichenko 2016.06.27 20:22  

Василий, как всегда интересно. Прежде всего с точки зрения программирования... хотя чего можно ещё ожидать на MQL-форуме...

Маленькое замечание :-))

Наследование обычно рисуют снизу вверх. Примерно так:



Aleksey Semenov
3734
Aleksey Semenov 2016.06.28 05:05  
Написал нечто подобное в mql4 одним файлом и без использования сторонних библиотек, да так что для генерации сигнала пользователь может выстроить свободное дерево взаимосвязей между 70 элементами для десяти любых пользовательских индикоторов, собирать результат выстроенных условий с такого огорода та ёще веселуха, но получилось чтото действительно универсальное
Vasiliy Sokolov
21772
Vasiliy Sokolov 2016.06.28 11:50  
Dennis Kirichenko:

Василий, как всегда интересно. Прежде всего с точки зрения программирования... хотя чего можно ещё ожидать на MQL-форуме...

Маленькое замечание :-))

Наследование обычно рисуют снизу вверх. Примерно так:

Не знал. Наверное я левша, поэтому у меня все наоборот получилось:) 
Vasiliy Sokolov
21772
Vasiliy Sokolov 2016.06.28 11:50  
Aleksey Semenov:
Написал нечто подобное в mql4 одним файлом и без использования сторонних библиотек, да так что для генерации сигнала пользователь может выстроить свободное дерево взаимосвязей между 70 элементами для десяти любых пользовательских индикоторов, собирать результат выстроенных условий с такого огорода та ёще веселуха, но получилось чтото действительно универсальное
А можно увидеть прототип?
Vasiliy Sokolov
21772
Vasiliy Sokolov 2016.06.28 11:52  
Aleksey Semenov:
Написал нечто подобное в mql4 одним файлом и без использования сторонних библиотек, да так что для генерации сигнала пользователь может выстроить свободное дерево взаимосвязей между 70 элементами для десяти любых пользовательских индикоторов, собирать результат выстроенных условий с такого огорода та ёще веселуха, но получилось чтото действительно универсальное
Да, сам склоняюсь к тому, что универсальный генератор стратегий должен быть написан на основе дерева, но задача достаточно сложная.
Vasiliy Sokolov
21772
Vasiliy Sokolov 2016.06.28 12:05  
Вопрос к общественности: кто-то использует сигнальную систему MetaTrader вообще? А кто использует классы сигналов в своем программировании экспертов? 
Vladimir Karputov
Модератор
46081
Vladimir Karputov 2016.06.28 13:06  
Vasiliy Sokolov:
Вопрос к общественности: кто-то использует сигнальную систему MetaTrader вообще? А кто использует классы сигналов в своем программировании экспертов? 

Я. Всегда делаю так:

  • пишу инидкатор
  • на базе индикатора делаю можуль сигналов
  • при сборке советника подключаю нужный модуль сигналов
Может сначала показаться, что путь не близкий, но на самом деле очень удобно менять, изменять сигналы индикатора или выдумывать новые сигналы.

Vasiliy Sokolov
21772
Vasiliy Sokolov 2016.06.28 13:19  
Karputov Vladimir:

Я. Всегда делаю так:

  • пишу инидкатор
  • на базе индикатора делаю можуль сигналов
  • при сборке советника подключаю нужный модуль сигналов
Может сначала показаться, что путь не близкий, но на самом деле очень удобно менять, изменять сигналы индикатора или выдумывать новые сигналы.

Действительно основательный подход. Да, он дает свои преимущества.

Вообще наверняка у многих уже написаны свои модули сигналов. Почему бы не создать централизованную базу таких модулей? Любой желающий может поделиться своим модулем и запостить ее в базу. Грааль конечно полить не надо, но выгоды будут очевидны для всех, не придется изобретать велосипед.    

Гога
16
Гога 2016.06.30 11:22  

При инициализации индикаторных сигналов:

//+------------------------------------------------------------------+
//| Инициализация модуля сигналов CSignalMacd                        |
//+------------------------------------------------------------------+
COnSignal_RSI_AC::COnSignal_RSI_AC(void)
{
   MqlSignalParams params;
   params.every_tick = false;
   params.magic = 32910;
   params.point = 10.0;
   params.symbol = Symbol();
   params.period = Period();
   params.usage_pattern = 2;
   params.signal_type = SIGNAL_AC;
   CSignalAC* ac = m_adapter_ac.CreateSignal(params);
   params.usage_pattern = 1;
   params.magic = 32911;
   params.signal_type = SIGNAL_RSI;
   CSignalRSI* rsi = m_adapter_rsi.CreateSignal(params);
   rsi.PeriodRSI(RSI_Period);
}
одному сигнальному модулю (адаптеру) передаётся один Магик (32910), второму второй (32911). Т.е. для открытия позиций будет использоваться один Магик, а для закрытия (их же) другой? Или я что-то не так понимаю?
Vasiliy Sokolov
21772
Vasiliy Sokolov 2016.06.30 11:55  
Гога:

При инициализации индикаторных сигналов:

одному сигнальному модулю (адаптеру) передаётся один Магик (32910), второму второй (32911). Т.е. для открытия позиций будет использоваться один Магик, а для закрытия (их же) другой? Или я что-то не так понимаю?
В данном случае мэджики - рудементы CExpert, от которого наследуется сам сигнал. Он сигналу не нужен, по крайней мере в CStrategy, т.к. он не выставляет отложенные ордера. Однако указан какой-то мэджик так, на всякий случай.
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий