|
05.12.2012, 08:54 | #1 |
Интересующийся
Регистрация: 05.12.2012
Сообщений: 6
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Советник оптимизирован на пару EURUSD тайм-фрейм М15.
Как известно, основной недостаток МА – это запаздывание. Если, например, сдвинуть МА назад, то текущие бары останутся без МА и принимать решение становится невозможным. Для устранения этого недостатка, на хвост МА вешаем Трендовую Линию (ТЛ) – как возможное продолжение МА и по ней торгуем. http://codebase.mql4.com/c/codebase/2012/11/7.gif Советник работает на пробой ТЛ. Алгоритм пробоя вверх: 1. Если первый бар выше ТЛ, а второй коснулся или ниже ТЛ, то это пробой вверх. Выше High первого бара с отступом Otstup_pr_prob устанавливаем BuyStop, SL ордера устанавливаем ниже Low первого бара с отступом Otstup_SL_prob. 2. Если появилось условие для открытия противоположного ордера, закрываем текущий. (аналогично - пробой вниз) ------------------ Если ордер стал прибыльным используем трейлинг-стоп по волнам. Описание внешних переменных: extern double Lot_Osn = 0; // 0 - для расчета лота исп. Risk extern double Risk = 10; //проценты от баланса для расчета нач. лота extern bool Risk_from_Balance = false; //true - считаем риск от баланса, false - от своб.средств // можно в ручную задавать направление открытия ордеров: extern bool Trend_UP = true; // будут открываться только Buy extern bool Trend_DW = true; // будут открываться только Sell extern int TP_prob = 100; // Тейк-профит extern int Otstup_pr_prob = 7; // для формирования отложенного ордера отступ от High первого бара extern int Otstup_SL_prob = 10; // отступ от 1 бара для SL extern bool On_Begin_Torg = true; // использовать время для начало торговли extern int Begin_Torg = 480; // время начала торговли (отступ от 00:00 в минутах) extern bool On_End_Torg = false; // использовать время для окончания торговли extern int End_Torg = 30; // время закрытие всех ордеров (отступ от конца дня в минутах) extern bool comm = true; // выводить комментарии extern bool sound = true; // озвучивать открытие ордеров extern int TF_Torg = 15; // тайм-фрейм торговли extern int MagicNumber = 335580; extern int Slippage = 5; //.................................................. .. extern int Fractal_Bars = 3; // переменная для формирования фракталов, чем больше тем реже фракталы extern int Na4_Bar_Fract = 1; // номер бара, с которого начинается поиск фрактала extern bool Out_Grafic = true; // выводить зиг-заг на экран extern int IndNumb = 10; // префикс для линий зиг-зага extern int kol_voln = 20; // кол. волн выводимых на экран //+------------------------------------------------------------------+ extern bool Open_Del_Otl = true; // удалять встречный отложенный при открытии рыночного ордера extern bool On_Vstr_Otl = false; // открывать встречные отложенные ордера extern bool Trail_Stop = true; // использовать трейлинг-стоп по волнам зиг-зага extern int Volna_Trail_Stop = 1; // по какой волне двигать трейлинг-стоп //+------------------------------------------------------------------+ extern bool Out_MA = true; // выводить MA extern int Kol_Bar_MA = 100; // сколько баров МА показывать extern bool Out_Trend_Line = true; // выводить Трендовую Линию extern string Name_Trend_Line = "TL_1";// имя трендовой линии extern int Proc_obraz_zwezd = 10; // процент между (Open-Close)/(High-Low) для принятия бара в качестве "звезды" //+------------------------------------------------------------------+ extern double Min_Tangens_TL_prob = 0.27; // тангенс угла наклона ТЛ, если он меньше этого значения, то не торгуем extern double Min_Tangens_TL_clos = 0.13; //+------------------------------------------------------------------+ extern int BackSteps = 4; // номер бара второй коорд. для форм. ТЛ, первая коорд. - это первый бар МА extern int MA_Period = 40; // параметры МА: период extern int MA_Shift = -8; // сдвиг extern int MA_Method = 0; extern int MA_Applied_Price = 0; //------------------------------- //MA_Method: MODE_SMA 0 Простое скользящее среднее // MODE_EMA 1 Экспоненциальное скользящее среднее // MODE_SMMA 2 Сглаженное скользящее среднее // MODE_LWMA 3 Линейно-взвешенное скользящее среднее //------------------------------- //MA_Applied_Price: PRICE_CLOSE 0 Цена закрытия // PRICE_OPEN 1 Цена открытия // PRICE_HIGH 2 Максимальная цена // PRICE_LOW 3 Минимальная цена // PRICE_MEDIAN 4 Средняя цена, (high+low)/2 // PRICE_TYPICAL 5 Типичная цена, (high+low+close)/3 // PRICE_WEIGHTED 6 Взвешенная цена закрытия, (high+low+close+close)/4 //================================================================== Тест с 01.01.2012 по 11.11.2012 максимальная просадка около 15%:(начальный депозит 10000 конечный 45326) http://codebase.mql4.com/c/codebase/2012/11/6_2.gif Добален индикатор МА, который выводит Трендовую линию на экран. А также в нулевой ячейке первого буфера индикатора - тангенс угла наклона ТЛ. Теперь принцип МА с ТЛ можно использовать в других советниках, используя этот индикатор. |