Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
e-PSI(at)PROC - эксперт для MetaTrader 4
- Просмотров:
- 5676
- Рейтинг:
- Опубликован:
- 2011.07.11 09:47
- Обновлен:
- 2015.05.12 13:03
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Показалась интересной идея - сначала открываются виртуальные ордера, а затем, если по виртуальной торговле этой стратегии есть Профит, то открываются рыночные ордера. Каждая из стратегий имеет свой рейтинг в процентах от самой успешной. Чтобы открылся рыночный ордер, нужно чтобы рейтинг стратегии был выше минимального - MinRating. Для того, чтобы упростить масштабирование новых стратегий в советник, пришлось подправить код.
Также к исходным стратегиям добавил ещё две "нейронные" от разных авторов и ёщё одну на MA-шке. Первая "нейронка" имеет три варианта построения Perceptron - VarPerceptron: 0 - Perceptron на Close\Open; 1 - на iStochastic; 2 - на CCI. Ну, и для полного комплекта добавил вот эту свою библиотеку по управлению капиталом.
Каждая из стратегий имеет свой Магик, который формируется от исходного Base.Magic добавлением к нему номера стратегии, поэтому для задействования библиотеки b-PSI@ICManager, желательно в строке Allowed_Magics прописать все используемые Магики через ";".
Также при наличии n-го количества стратегий, мне показалось, что не будет лишним, если добавить к возможностям советника Трал общего профита. Который может работать в двух режимах: классический и по MA (TrailProfitByMA = TRUE). Последний сначала рисует линию минимального профита > 2 ордеров, равную 20 (настройка в коде) единицам валюты депо, а затем, когда происходит включение трейлинга, он рисует и двигает за ценой SL Profit.
Трал по каждому отдельному ордеру от стратегии тоже может работать по МА (Tx.Var.TS = 1), его также можно настроить в режиме БезУбытка, если Tx.OnlyBU = True.
Стопы тоже имеют два варианта формирования (Tx.Var.STOP: 0 - classic; 1 - By MA), причём TP при Tx.Var.STOP=1 может формироваться двумя способами: если Tx.TP = 0, то будут сформированы по MA, иначе TP = Tx.TP.
Также регулируется количество открываемых по одной стратегии ордеров - MAX_OrdersOnTC.
Используемые в стратегиях индикаторы можно настроить на нужный Таймфрейм - Period.Indicators не обязательно совпадающий с периодом графика. Периоды всех задействованных индикаторов, в том числе и трейлинг по MA, работают по этому параметру.
Period.New.Send - регулирует паузу для открытия (при наличии условий на открытие) следующего ордера по стратегии, если MAX_OrdersOnTC > 1.
Остальные подробности по работе системы можно прочесть в упомянутой статье.
Общие настройки советника следующие:
extern string SETUP_Expert = "==================== SETUP EXPERT ==================="; extern string file = "virtual.csv"; // файл виртуальной торговли extern int MinRating = 50; // Минимальный рейтинг в процентах для открытия реальной позиции extern int Base.Magic = 878; // Базовый рабочий магик для торговых систем extern int NewBarInPeriod = 1; // <= 0 - работаем на начале периода нового бара, -1 - работаем на каждом тике extern int Variant_TradePrice = 1; // Вариант цен, с которыми будет работать советник extern int MAX_OrdersOnTC = 1; // Максимальное число открытых ордеров на одну Торговую Систему extern int Period.New.Send = 1440; // Периодичность проверки на открытие следующего ордера одной стратегией, если MAX_OrdersOnTC > 1 extern int Period.Indicators = 1440; // Рабочий период для индикаторов extern int STOP.Period = 70; // Период для расчёта Стопов по МА extern string Setup_TraillingMA = "---- Trailling By MA ----"; extern int MAMode = 1; // 0 = SMA, 1 = EMA, 2 = SSMA, 3 = LWMA extern int XFactor = 84; extern int TrailPeriod = 83; extern string SETUP_TP = "================= Trailling Profit =================="; extern bool TrailProfit_ON = TRUE; // Включение трейлинга общего Профита extern bool TrailProfitByMA = TRUE; // Трейлинг общего Профита по MA extern int TrailProfitPeriod = 50; // Период MA для трейлинга по MA extern double TrailProfit_Start = 300; // Величина профита при котором начинается перемещение уровня закрытия extern double TrailProfit_Level = 200; // Величина обратного движения профита, при котором выполняется закрытие
Так всё это выглядит на графике с подробной статистикой по каждой стратегии:
В архиве все необходимые для работы советника библиотеки.
Ну, и как я упомянул в самом начале, вы можете без особых усилий добавить в эту систему свои стратегии. Количество обрабатываемых советником стратегий регулируется константой #define MAX_TC. Прописываете отдельными функциями условия открытия и закрытия ордеров, добавляете во внешние переменные настройки своей стратегии и - работаете!..
ВНИМАНИЕ!
Все внешние переменные (настройки советника), увязанные с размерностью котировок, имеют разрядность для 4-ёх знаков - вы вносите значение, как для 4-ёх знаков, а советник сам автоматически пересчитывает разрядность в зависимости от поступающих от ДЦ котировок!!!
Вариация на тему - стрелочные часы для МТ4.
Fox Hound 1.2(Silver Fox)Ручная торговая система. Обновление от 8.07.2011
The Trend Or Range Indicator (TOR).
Универсальный звуковой индикатор для индикаторов + AlertУниверсальный индикатор для звукового сообщения типа "Alert" и + играет звук.