Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Советники

e-PSI@TD-Lines - эксперт для MetaTrader 4

Просмотров:
5191
Рейтинг:
(1)
Опубликован:
2011.10.13 12:12
Обновлен:
2014.04.21 14:55
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Просматривал ДеМарка и решил посмотреть, как отрабатывают его трендовые уровни в МТС.

В архивах Кодабазы нашёл реализацию такой задачи. Авторский советник не запустился - как оказалось, в выложенной версии индикатора DeMark lines.mq4 не были задействованы те буферы, к которым обращался советник. Я сначала запустил авторский код, а затем его немножко переделал по своему видению.

Вот что получилось:

extern string   SETUP_Expert      = "=========== Общие настройки советника ===========";
extern int      MagicNumber         = 346;
extern bool     Reverse             = false;
extern string   TradeComment        = "Trade";
extern int      TradeBar            = 9;      // N бар, с которого снимаем показания индикатора (>=1)
extern int      N_TradeBars         = 1;      // Количество баров от TradeBar, с которых снимаем показания индикатора (>=1)
extern int      LifeMinBar          = 7;      // Минимальное время жизни ордера в барах
extern string   SETUP_AutoTrading = "================= AUTO TRADING ==================";
extern bool     AutoSTOPs_ON        = true;   // Формирование СТОПов от показаний индикатора
extern int      MIN_Stop            = 15;     // Минимальные стопы (для 4-рёх знаков) для AutoSTOPs_ON
extern int      TradeOrders         = 4;      // Количество одновременно открываемых ордеров (1-4)
extern string   SETUP_Trailling   = "=================== TRAILLING ===================";
extern int      TrailingStop        = 0;
extern int      TrailingStep        = 1;      // Trailing step
extern int      BreakEven           = 0;      // БезУбыток
extern string   Setup_Lots        = "========= Параметры модуля расчёта лота =========";
extern bool     UseMM               = TRUE;   // Использовать расширяющийся лот
extern string   Setup_MeansType_1_3 = "MeansType: 1-Balance; 2-Equity; 3-FreeMargin;";
extern int      MeansType           = 2;      // Тип средств используемых при расчете размера лота:
extern int      LotsPercent         = 10;     // Процент от MeansType (суммарный лот всех TradeOrders ордеров)
extern string   QuotaEachOrders     = "50,20,20,10"; // LotsPercent разбивается на TradeOrders частей (100 %)
extern bool     Use_Prioritity      = TRUE;   // Использование приоритета размера лота ордеров по результатам работы
extern double   MinLot              = 0.01;   // Минимальный лот рыночного ордера
extern double   MaxLot              = 50.0;   // Максимальный лот рыночного ордера 
extern double   RiskDepo            = 2000.0; // Размер Depo в валюте депозита, на который играем
extern int      MAXLossDepoPercent  = 50;     // При каком лоссе от Depo (в процентах) закрываются все ордера
extern string   Setup_Order1      = "--------------- Setting Order № 1 ---------------";
extern bool     TradeOrder1         = true;
extern double   TradeLots1          = 0.1;
extern int      TradeSL1            = 30;
extern int      TradeTS1            = 50;
extern int      TradeTP1            = 0;
extern string   Setup_Order2      = "--------------- Setting Order № 2 ---------------";
extern bool     TradeOrder2         = true;
extern double   TradeLots2          = 0.1;
extern int      TradeSL2            = 50;
extern int      TradeTS2            = 80;
extern int      TradeTP2            = 0;
extern string   Setup_Order3      = "--------------- Setting Order № 3 ---------------";
extern bool     TradeOrder3         = true;
extern double   TradeLots3          = 0.1;
extern int      TradeSL3            = 80;
extern int      TradeTS3            = 120;
extern int      TradeTP3            = 0;
extern string   Setup_Order4      = "--------------- Setting Order № 4 ---------------";
extern bool     TradeOrder4         = true;
extern double   TradeLots4          = 0.1;
extern int      TradeSL4            = 120;
extern int      TradeTS4            = 160;
extern int      TradeTP4            = 0;
extern string   Setup_Services    = "==================== SERVICES ===================";
extern int      Repeat              = 3;     // Переменная для Alert
extern int      Periods             = 5;     // Переменная для Alert
extern bool     UseAlert            = false;
extern bool     SoundPlay           = false;
extern bool     SendEmail           = false;
extern string   TradeLog            = "TD-Lines";
extern int      NumberOfTries       = 3;     // Количество торговых попыток
extern int      Slippage            = 2;

Советник открывает одновременно серию ордеров (до 4-рёх) - это привязано к 4-ём уровням целей, рассчитываемых индикатором. Авторская версия основные торговые параметры берёт из "ручных" настроек советника. Я автоматизировал процесс и привязал СТОПЫ и трейлинг к упомянутым уровням целей - параметр AutoSTOPs_ON. Но ручную авторскую систему настроек я оставил ("на любителя").

Данная система не чувствительна к качеству исторических котировок. Основные оптимизируемые параметры:

extern int      TradeBar            = 9;      // N бар, с которого снимаем показания индикатора (>=1)
extern int      N_TradeBars         = 1;      // Количество баров от TradeBar, с которых снимаем показания индикатора (>=1)
extern int      LifeMinBar          = 7;      // Минимальное время жизни ордера в барах

можно добавит к этой троице (не обязательно):

extern int      MIN_Stop            = 15;     // Минимальные стопы (для 4-рёх знаков) для AutoSTOPs_ON

Ну, и конечно же, не нужно забывать про настройки индикатора:

extern int      LevDP               = 2;     // Demar Pint Levels; 2 = central bar will be higher (lower) 
                                             // then 2 bars on the left side and 2 bars on the right one.
extern int      qSteps              = 1;     // number of steps (no more than 3)

Ещё добавил ММ. Определяем размер суммарного лота для всех ордеров серии в процентах от Депо (LotsPercent). А затем, в соответствии с определёнными пропорциями (QuotaEachOrders) по результатам работы (Use_Prioritity) каждого из ордеров серии определяем индивидуально размеры лотов.
Добавил трейлинг по ATR (Use_TrailATR).

Эта система хоршо отрабатывает тренд, НО "плохо" дружит с флетом - нужен (по-хорошему) дополнительный фильтр:


НО, не смотря на озвученные недостатки, систем жизнеспособна! Да осилит дорогу идущий!

P.S. Немножко подправил индикатор, и чтобы не путаться, переименовал его.

Захват рынка_v9_08 Захват рынка_v9_08

интрадей

Добавь свою стратегию (v3) Добавь свою стратегию (v3)

Программа переставляет собой набор индикаторов, по которым можно открывать и закрывать позиции.

EA Stop Order EA Stop Order

Советник раскрывает сеть из стоп ордеров, при наборе заданного уровня прибыли закрывает все ордера.

stavka_po_stopline stavka_po_stopline

Быстрая установка ордера по линии Стоп лосса. Подходит только для ручной торговли.