Советник Тянулка_по_МА [не торговый]

  • Автор темы Автор темы LUKA.
  • Дата начала Дата начала

LUKA.

САМ ПО СЕБЕ
Всем привет!

Нужна была сова, для трала лимитных ордеров по МА, но даже в пространстве и-нета найти не смог.

Накидал, вроде работает нормально, выкладываю, может кому пригодится (кто то искал здесь)

Одна неприятность, сова поз не устанавливает, надо отдельно ставить лимитный ордер с (магиком как у совы, либо в сове ставить магик как у ордера), после чего сова модифицирует по установленным параметрам и начинает его тралить по МА пока ордер не сработает.

Если кому не лень, допишите установку ордеров по заданным параметрам совы, автоматически при запуске советника, будет замечательно (плюс в репу :-))
 

Вложения

Последнее редактирование:

LUKA.

САМ ПО СЕБЕ
Пока сова ордера не устанавливат, можно воспользоватся скриптами, с помощью которых можно открыть лимитные ордера с задаваемым МАГИКОМ.
http://forexsystemsru.com/sovetniki/56486-sovetnik-burn-112.html#post271018

P.S. Зделал "Тянулку" с открытим ордеров, но она мне что то не нравится, поэтому выкладывать не буду.
Из меня програмист хреновый, так что если кто допишет выкладывайте, если нет, то уставонка займет чуть больше времени.

Предназначен изначально советник для облегчения ручной торговли, по тренду на отбой от МА.
В работе выглядит примерно так (с установкой совой ордеров).

5667.jpg
 
Последнее редактирование:

max.ima

Прохожий
вопрос,

меняю в настройках размер стопа и тейка, а советник упорно ставит стоп 90 и тейк 30

подскажите как это исправить
 

max.ima

Прохожий
скажите, сов. писался под пятизначные котировки (пять знаков после запятой)?
 

LUKA.

САМ ПО СЕБЕ
Смотрю, такие совы интересуют ребят.

Тогда выкладываю своих помощников, может кому пригодятся.

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

e-$_Тянулка_101 - тянет отложный ордер по МА
e-$_Тянулка_JPY - тянет отложный ордер по МА для пар с JPY
e-$_Тянулка_1+1 - при нужде, тянет два отложных ордера на одном графике по двум МА
e-$_Тянулка_с ордером - сам устанавливает и тянет отложный ордер по МА
e-$_Тянулка_JPY_с ордером - сам устанавливает и тянет отложный ордер по МА для пар с JPY
e-$_Тянулка SL - тянет стоплос по МА
e-$_Тянулка TP - тянет тейкпрофит по МА
e-$_Тянулка_SL_TP - тянет и СЛ и ТП

Что то, в этом роде.

09.jpg

НЕ ЗАБЫВАЕМ ПРО МАГИЧЕСКИЙ НОМЕР ДЛЯ ОРДЕРОВ!


Удачи!
 

Вложения

Последнее редактирование:

LUKA.

САМ ПО СЕБЕ
Переписал полностью.

Кто торгует на отскок от МА, незаменимая вешь :-)

Код:
Expand Collapse Copy
//+----------------------------------------------------------------------------+
extern string _P_1 = "- Параметры Ордера -";
extern bool   OrderStavit   = False;  // Открытие советником ордера(ов)
extern int    StopLoss      = 0;      // StopLoss в пунктах, если 0 то неиспользуем.
extern int    TakeProfit    = 0;      // TakeProfit в пунктах, если 0 то неиспользуем.
extern int    OrdersCount   = 1;      // Число одновременно открываемых ордера(ов)
extern bool   OpenBuy       = False;  // Торговать в BUY
extern bool   OpenSell      = False;  // Торговать в SELL
extern int    TimeFrame     = 240;    // TimeFrame с которого берем параметры МovingAverage
extern int    MagicNumber   = 3000;   // Магический номер ордера(ов)
extern double Distance      = 5;      // Дистанция в пунктах от МovingAverage
//+----------------------------------------------------------------------------+
extern string _MA_BUY = "- Параметры МА в BUY -";
extern int    PeriodBuy     = 34;     // Период МА
//extern string _Par1 = "0-SMA, 1-EMA, 2-SMMA, 3-LW";
//extern int    MethodBuy     = 2;      // ---
extern string _Par2 = "0-Cloce,1-Open,2-High-v,3-Low-n,4-Median"; //4-TP,5-WS,6-FID,7-PID
extern int    PriceBuy      = 4;      // ---
//+----------------------------------------------------------------------------+
extern string _MA_SELL = "- Параметры МА в SELL -";
extern int    PeriodSell    = 34;     // ---
//extern string _Par3 = "0-SMA, 1-EMA, 2-SMMA, 3-LW";
//extern int    MethodSell    = 2;      // ---
extern string _Par4 = "0-Cloce,1-Open,2-High-v,3-Low-n,4-Median"; //4-TP,5-WS,6-FID,7-PID
extern int    PriceSell     = 4;      // ---
//+----------------------------------------------------------------------------+
extern string _P_2 = "- Параметры Money_Management -";
extern bool   MM            = False;  // Money_Management от размера Депозита
extern double Risk          = 10;     // Риск в % от свободных средств, 10% = 0.1 от депо в 1000$
extern double FicsirLot     = 0.1;    // Фиксированный Лот, если ММ - False
//+----------------------------------------------------------------------------+
extern string _P_3 = "- Параметры Безубытка -"; // Всех позиций
extern int    LP            = 0;      // Уровень профита, если 0 то неиспользуем. 
extern int    LP_Step       = 0;      // Уровень безубытка, если 0 то неиспользуем.     
//+----------------------------------------------------------------------------+
extern string _P_4 = "- Параметры Трала -";    // Всех позиций
       bool   ProfitTrail  = True;    // Тралить только профит
extern int    TS           = 0;       // Фиксированный размер трала, если 0 то неиспользуем. 
extern int    TS_Step      = 0;       // Шаг трала, если 0 то неиспользуем.
//+------------------------------------------------------------------+
       string _P_5 = "- Параметры Модификации -";
       bool   UseSound      = True;   // Использовать звуковой сигнал
       string NameFileSound = "expert.wav"; // Наименование звукового файла
       int    NumberOfTry   = 3;      // Количество торговых попыток
//+------------------------------------------------------------------+
       int    Slippage         = 3;       // Проскальзывание цены
       color  clOpenBuy        = Blue;    // Цвет позиции в Buy
       color  clOpenSell       = Red;     // Цвет позиции в Sell
       bool   gbDisabled       = False;   // Флаг блокировки советника

001.jpg

Будет время, перепишу все остальные совы, УДАЧИ!

Хотя этот советник заменяет:
e-$_Тянулка_101
e-$_Тянулка_JPY
e-$_Тянулка_JPY_с ордером
Для пар с JPY, надо в строках:
norm_1=NormalizeDouble(ss_1, dg)+(Distance*0.0001);
norm_2=NormalizeDouble(ss_2, dg)-(Distance*0.0001); // Для пар с JPY, ставим 0.01

0.0001 поменять на 0.01
Пары с JPY не использую, поэтому не заморачивался с авто определением.
 

Вложения

Последнее редактирование:

LUKA.

САМ ПО СЕБЕ
Переписал внутренности.

e-$_Тянулка SL

Код:
Expand Collapse Copy
//+----------------------------------------------------------------------------+
extern string _Par1 = "- Параметры МА -";
extern int    Period1       = 34;     // ---
//extern string _Par1 = "0-SMA, 1-EMA, 2-SMMA, 3-LW";
//extern int    Method1       = 2;      // ---
extern string _Par2 = "0-Cloce,1-Open,2-High-v,3-Low-n,4-Median"; //4-TP,5-WS,6-FID,7-PID
extern int    Price1        = 4;      // ---
//+----------------------------------------------------------------------------+
extern int    TF            = 240;    // ТФ с которого берем параметры МА
extern int    Magic         = 380;    // Магический номер
extern double Distance      = 5;      // Дистанция в пунктах от МА 
//+----------------------------------------------------------------------------+
       string _P_4 = "- Параметры второстепенные -";
       bool   UseSound      = True;   // Использовать звуковой сигнал
       string NameFileSound = "expert.wav"; // Наименование звукового файла
       int    NumberOfTry   = 3;      // Количество торговых попыток 
//+----------------------------------------------------------------------------+

e-$_Тянулка TP

Код:
Expand Collapse Copy
//+----------------------------------------------------------------------------+
extern string _Par1 = "- Параметры МА -";
extern int    Period1       = 34;     // ---
//extern string _Par1 = "0-SMA, 1-EMA, 2-SMMA, 3-LW";
//extern int    Method1       = 2;      // ---
extern string _Par2 = "0-Cloce,1-Open,2-High-v,3-Low-n,4-Median"; //4-TP,5-WS,6-FID,7-PID
extern int    Price1        = 4;      // ---
//+----------------------------------------------------------------------------+
extern int    TF            = 240;    // ТФ с которого берем параметры МА
extern int    Magic         = 381;    // Магический номер
extern double Distance      = 5;      // Дистанция в пунктах от МА 
//+----------------------------------------------------------------------------+
       string _P_4 = "- Параметры второстепенные -";
       bool   UseSound      = True;   // Использовать звуковой сигнал
       string NameFileSound = "expert.wav"; // Наименование звукового файла
       int    NumberOfTry   = 3;      // Количество торговых попыток 
//+----------------------------------------------------------------------------+

e-$_Тянулка_SL_TP

Код:
Expand Collapse Copy
//+----------------------------------------------------------------------------+
extern string _Par1 = "- Параметры МА_SL -";
extern int    Period_1      = 34;     // ---
//extern string _Par1 = "0-SMA, 1-EMA, 2-SMMA, 3-LW";
//extern int    Method1       = 2;      // ---
extern string _Par2 = "0-Cloce,1-Open,2-High-v,3-Low-n,4-Median"; //4-TP,5-WS,6-FID,7-PID
extern int    Price_1       = 4;      // ---
//+----------------------------------------------------------------------------+
extern int    TF_1          = 60;     // ТФ с которого берем параметры МА
extern double Distance_1    = 5;      // Дистанция в пунктах от МА 
//+----------------------------------------------------------------------------+
extern string _Par3 = "- Параметры МА_TP -";
extern int    Period_2      = 34;     // ---
//extern string _Par1 = "0-SMA, 1-EMA, 2-SMMA, 3-LW";
//extern int    Method1       = 2;      // ---
extern string _Par4 = "0-Cloce,1-Open,2-High-v,3-Low-n,4-Median"; //4-TP,5-WS,6-FID,7-PID
extern int    Price_2       = 4;      // ---
//+----------------------------------------------------------------------------+
extern int    TF_2          = 240;    // ТФ с которого берем параметры МА
extern double Distance_2    = 5;      // Дистанция в пунктах от МА 
extern int    Magic         = 382;    // Магический номер
//+----------------------------------------------------------------------------+
 

Вложения

LUKA.

САМ ПО СЕБЕ
Довел до ума свою основную тянулку, был глюг, долго найти не мог причину.

Теперь без проблем стоит на реале.

Сейчас может тянуть 5 отдеров по 5 МА одновременно, обычно ставлю на один график, и он тянет до 5 ордеров по МА с разных фреймов.
Когда понимаю куда пойдет цена, тянет 1-3 ордера внутридневных и по одному на Н4 и D1.

Внутредневные закрываю в этот же день или если идей хороший тренд оставляю дальше, до начала отката в обратную сторону, если откат глубокий то очередь доходит и до ордеров стоящих на Н4 и D1.

Отличает их само собой по магику.
Поэтому и ордер надо ставить с соответствующим магиком, для этого прилогаю два скрипта: s-$_BUYSTOP_BUYLIMIT и s-$_SELLSTOP_SELLLIMIT с помощью который можно установить ордер с нужным магиком, работает просто: кините ниже цены, то установится ордер BUYLIMIT или SELLSTOP, кините выше цены установятся SELLLIMIT или BUYSTOP.

Так же вставил безубыток на всякий случай, следит за ордерами пары на какой стаит сова, или может следить вообще за всеми ордерами терминала.

Код:
Expand Collapse Copy
//+----------------------------------------------------------------------------+
extern string _MA_1 = "- Параметры Moving Average_1 -";
extern int    Period_1      = 34;    // ---
       string _Par1 = "0-SMA, 1-EMA, 2-SMMA, 3-LW";
       int    Method_1      = 2;     // ---
extern string _Par2 = "0-Cloce,1-Open,2-High-v,3-Low-n,4-Median"; //4-TP,5-WS,6-FID,7-PID
extern int    Price_1       = 4;     // ---
//+----------------------------------------------------------------------------+
extern int    TimeFrame_1   = 5;     // TimeFrame с которого берем параметры Moving Average
extern int    Magic_1       = 10;    // Магический номер
extern int    Distance_1    = 6;     // Дистанция  в пунктах от Moving Average
       int    StopLoss_1b   = 0;     // StopLoss   в пунктах для Buy,  если 0 то неиспользуем
       int    TakeProfit_1b = 0;     // TakeProfit в пунктах для Buy,  если 0 то неиспользуем
       int    StopLoss_1s   = 0;     // StopLoss   в пунктах для Sell, если 0 то неиспользуем
       int    TakeProfit_1s = 0;     // TakeProfit в пунктах для Sell, если 0 то неиспользуем
//+----------------------------------------------------------------------------+
extern string _MA_2 = "- Параметры Moving Average_2 -";
extern int    Period_2      = 34;    // ---
       string _Par3 = "0-SMA, 1-EMA, 2-SMMA, 3-LW";
       int    Method_2      = 2;     // ---
       string _Par4 = "0-Cloce,1-Open,2-High-v,3-Low-n,4-Median"; //4-TP,5-WS,6-FID,7-PID
extern int    Price_2       = 4;     // ---
//+----------------------------------------------------------------------------+
extern int    TimeFrame_2   = 15;    // TimeFrame с которого берем параметры Moving Average
extern int    Magic_2       = 20;    // Магический номер
extern int    Distance_2    = 6;     // Дистанция  в пунктах от Moving Average
       int    StopLoss_2b   = 0;     // StopLoss   в пунктах для Buy,  если 0 то неиспользуем
       int    TakeProfit_2b = 0;     // TakeProfit в пунктах для Buy,  если 0 то неиспользуем
       int    StopLoss_2s   = 0;     // StopLoss   в пунктах для Sell, если 0 то неиспользуем
       int    TakeProfit_2s = 0;     // TakeProfit в пунктах для Sell, если 0 то неиспользуем
//+----------------------------------------------------------------------------+
extern string _MA_3 = "- Параметры Moving Average_3 -";
extern int    Period_3      = 144;   // ---
       string _Par5 = "0-SMA, 1-EMA, 2-SMMA, 3-LW";
       int    Method_3      = 2;     // ---
       string _Par6 = "0-Cloce,1-Open,2-High-v,3-Low-n,4-Median"; //4-TP,5-WS,6-FID,7-PID
extern int    Price_3       = 4;     // ---
//+----------------------------------------------------------------------------+
extern int    TimeFrame_3   = 15;    // TimeFrame с которого берем параметры Moving Average
extern int    Magic_3       = 30;    // Магический номер
extern int    Distance_3    = 6;     // Дистанция  в пунктах от Moving Average
       int    StopLoss_3b   = 0;     // StopLoss   в пунктах для Buy,  если 0 то неиспользуем
       int    TakeProfit_3b = 0;     // TakeProfit в пунктах для Buy,  если 0 то неиспользуем
       int    StopLoss_3s   = 0;     // StopLoss   в пунктах для Sell, если 0 то неиспользуем
       int    TakeProfit_3s = 0;     // TakeProfit в пунктах для Sell, если 0 то неиспользуем
//+----------------------------------------------------------------------------+
extern string _MA_4 = "- Параметры Moving Average_4 -";
extern int    Period_4      = 34;    // ---
       string _Par7 = "0-SMA, 1-EMA, 2-SMMA, 3-LW";
       int    Method_4      = 2;     // ---
       string _Par8 = "0-Cloce,1-Open,2-High-v,3-Low-n,4-Median"; //4-TP,5-WS,6-FID,7-PID
extern int    Price_4       = 4;     // ---
//+----------------------------------------------------------------------------+
extern int    TimeFrame_4   = 240;   // TimeFrame с которого берем параметры Moving Average
extern int    Magic_4       = 40;    // Магический номер
extern int    Distance_4    = 5;     // Дистанция  в пунктах от Moving Average
       int    StopLoss_4b   = 0;     // StopLoss   в пунктах для Buy,  если 0 то неиспользуем
       int    TakeProfit_4b = 0;     // TakeProfit в пунктах для Buy,  если 0 то неиспользуем
       int    StopLoss_4s   = 0;     // StopLoss   в пунктах для Sell, если 0 то неиспользуем
       int    TakeProfit_4s = 0;     // TakeProfit в пунктах для Sell, если 0 то неиспользуем
//+----------------------------------------------------------------------------+
extern string _MA_5 = "- Параметры Moving Average_5 -";
extern int    Period_5      = 21;    // ---
       string _Par9 = "0-SMA, 1-EMA, 2-SMMA, 3-LW";
       int    Method_5      = 2;     // ---
       string _Par10 = "0-Cloce,1-Open,2-High-v,3-Low-n,4-Median"; //4-TP,5-WS,6-FID,7-PID
extern int    Price_5       = 4;     // ---
//+----------------------------------------------------------------------------+
extern int    TimeFrame_5   = 1440;  // TimeFrame с которого берем параметры Moving Average
extern int    Magic_5       = 50;    // Магический номер
extern int    Distance_5    = 10;    // Дистанция  в пунктах от Moving Average
       int    StopLoss_5b   = 0;     // StopLoss   в пунктах для Buy,  если 0 то неиспользуем
       int    TakeProfit_5b = 0;     // TakeProfit в пунктах для Buy,  если 0 то неиспользуем
       int    StopLoss_5s   = 0;     // StopLoss   в пунктах для Sell, если 0 то неиспользуем
       int    TakeProfit_5s = 0;     // TakeProfit в пунктах для Sell, если 0 то неиспользуем
//+----------------------------------------------------------------------------+       
       string _P_2 = "- Параметры Безубытка -";
       int    LP            = 0;     // Уровень профита,   если 0 то неиспользуем
       int    LP_Step       = 0;     // Уровень безубытка, если 0 то неиспользуем
       bool   AllSymbols_b  = False; // Следить за позициями всех символов
//+----------------------------------------------------------------------------+
       string _P_3 = "- Параметры второстепенные -";
       bool   UseSound      = True;        // Использовать звуковой сигнал
       string NameFileSound = "Ku_ku.wav"; // Наименование звукового файла
       int    NumberOfTry   = 3;           // Количество торговых попыток 
//+----------------------------------------------------------------------------+


Со всеми настройками окно очень длинное, поэтому неактуальные для меня настройки сделаны невидемыми, где с левой стороны нет слова :

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

Но и в сокращенном виде окно немаленькое, но я использую советник: ExpertWindowResize, который растягивает окно настроек для удобного просмотра (вешать на любое окно любой пары терминала) примерно получается вот как:

654.jpg

З.Ы. Понимаю что советник спецефический, но когда мне надо было чтобы отложный ордер тралился по МА, перекопав весь и-нет, так и ненашел, вот и пришлось написать.

Всем Удачи!
 

Вложения

Последнее редактирование:

котяй

Прохожий
1. При компилировании e-$_Тянулка_с ордером пишет ошибку 'd-$_LUKA_0.mqh' - cannot open the program file
2. Устанавливаю советник e-$_Тянулка_1+1, меняю значения первой МА (остальные пока не нужны), открываю ордер приложенными скриптами - и ... ничего. Я так понимаю отложка должна подтянуться к машке. Что делаю не так?
 

LUKA.

САМ ПО СЕБЕ
1. При компилировании e-$_Тянулка_с ордером пишет ошибку 'd-$_LUKA_0.mqh' - cannot open the program file
2. Устанавливаю советник e-$_Тянулка_1+1, меняю значения первой МА (остальные пока не нужны), открываю ордер приложенными скриптами - и ... ничего. Я так понимаю отложка должна подтянуться к машке. Что делаю не так?

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

Магик ордера должен совпадать с магиком в советнике, и смотрите там ли находится МА где надо, прописанная в советнике.
К примеру, если МА выше цены, а у вас открыт ордер BUYLIMIT, то само сабой ордер на МА не встанет.

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

Вложения

Последнее редактирование:

котяй

Прохожий
Большое спасибо за оперативность, буду пробовать. Понял, что не получалось ставить ордера не на отбой а на пробой. Советник ведь для лимитных ордеров
 

rav79

Новичок форума
Пробуйте эти совы.

Магик ордера должен совпадать с магиком в советнике, и смотрите там ли находится МА где надо, прописанная в советнике.
К примеру, если МА выше цены, а у вас открыт ордер BUYLIMIT, то само сабой ордер на МА не встанет.

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

Согласен! совы действительно рабочие, но ими надо уметь пользоваться!
:idea:
 

LUKA.

САМ ПО СЕБЕ
Большое спасибо за оперативность, буду пробовать. Понял, что не получалось ставить ордера не на отбой а на пробой. Советник ведь для лимитных ордеров

Вам просто повезло, не очень часто на форум захожу :-)

Да, я пользуюсь только лимитниками.

Так понимаю и для стоповых пойдет, только для байстопов МА должна быть выше цены, а для селлстопов, ниже.
 
Последнее редактирование:

LUKA.

САМ ПО СЕБЕ
Большое спасибо за оперативность, буду пробовать. Понял, что не получалось ставить ордера не на отбой а на пробой. Советник ведь для лимитных ордеров

Соглашусь, по крайней мере надо иметь хоть какие то навыки и знания. Да к тому же они специфичекие, когда долго не пользуюсь ими, сам сижу соображаю-чего да куда. :-)
 

LUKA.

САМ ПО СЕБЕ
1. При компилировании e-$_Тянулка_с ордером пишет ошибку 'd-$_LUKA_0.mqh' - cannot open the program file
2. Устанавливаю советник e-$_Тянулка_1+1, меняю значения первой МА (остальные пока не нужны), открываю ордер приложенными скриптами - и ... ничего. Я так понимаю отложка должна подтянуться к машке. Что делаю не так?

Если тяните один ордер, то проще пользоватся этой совой.
 

Вложения

icq33

Прохожий
Давно искал "тянулки" для отложек, по линиям - много где есть, по машкам - не встречал. Спасибо, LUKA! Дай Бог здоровья и сил :)
 

rav79

Новичок форума
Давно искал "тянулки" для отложек, по линиям - много где есть, по машкам - не встречал. Спасибо, LUKA! Дай Бог здоровья и сил :)

он вообще молодец!!! нормуль прогу придумал кстати у кого руки есть те поймут о чем я... не в обиду луке сказано, но после его слов у меня действительно получается торговать)))
 
Последнее редактирование:
Верх