Советники: Semaphore Line - страница 3

 
SanAlex:

Я не против! делюсь тем, что может быть полезным для участников форума.

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

Да ладно. Куда торопиться-то. Даже я рассчитываю ещё лет 20 заниматься программированием, а потом ещё лет 10 отдыхать.

 
Alexey Viktorov:

Да ладно. Куда торопиться-то. Даже я рассчитываю ещё лет 20 заниматься программированием, а потом ещё лет 10 отдыхать.

Дай бог! - я тоже не против пожить.

 

version     "1.012" 

Добавил фильтры на прекращение действий при пересечении Горизонтальной или Трендовой линии 

действует на функции Индикатор XXX (верхняя) и XXX (нижняя ). А также на линии от Trailing Line:

------------

пример на фото 

на 15мин. фильтр от розовой горизонтальной линии - на 1мин. открывает позиции от индикатора LeMan_BrainTrend1Sig

пример.PNG

Файлы:
version.012.PNG  80 kb
e4sdwr.PNG  70 kb
ytii5u2.PNG  64 kb
 

Обновил до версии "1.013"

функция Фильтры - не так уж просто было объединить. один фильтр как бы закрывает, открывает  - другой фильтр должен остановить. 

- в самом низу настроек

input string   t18="--- FILTER:Stop         -----";              //
input ENUM_FILTER_COMMAND ObjFilterStop     = Filter_Off;        // Filter Stop: command:
input string   InpNameupper                 = "Upper Line";      // FILTER Upper (Horizontal Line or Trend Line)
input string   InpNamelower                 = "Lower Line";      // FILTER Lower (Horizontal Line or Trend Line)
input string   t19="--- FILTER:Line:Average -----";              //
input bool     ObjFilteraverage             = false;             // Вкл. Filter Average
input string   InpNameaverage               = "Average Line";    // FILTER (Horizontal Line or Trend Line)

 - теперь самое сложное объяснить.

в настройках две функции открытие по индикатору . - верхний (BUY) и нижний (SELL) 

input string   t9="---- Indicators: BUY     -----";              //
input string   short_name1                  = "Имя Индикатора";  // Name Indicators "BUY"
input ENUM_TIMEFRAMES Periodbuy             = PERIOD_CURRENT;    // Period Indicators
input bool     InpIndicators1               = false;             // Indicators: Start (true)
input ENUM_TRADE_COMMAND InpTradeCommandY1  = Turn_Off;          // Trade command: (BuyBuffer Indicators)
input ENUM_TRADE_COMMAND InpTradeCommandU1  = open_buy;          // Trade command: (SellBuffer Indicators)
input string   t10="--- Indicators: SELL    -----";              //
input string   short_name                   = "Имя Индикатора";  // Name Indicators "SELL"
input ENUM_TIMEFRAMES Periodsell            = PERIOD_CURRENT;    // Period Indicators
input bool     InpIndicators                = false;             // Indicators: Start (true)
input ENUM_TRADE_COMMAND InpTradeCommandY   = open_sell;         // Trade command: (BuyBuffer Indicators)
input ENUM_TRADE_COMMAND InpTradeCommandU   = Turn_Off;          // Trade command: (SellBuffer Indicators)

  -------------- 

также есть трал  - тоже верх и низ 

input string   t8="---- Trailing Line:      -----";              //
input bool     InpStart                     = false;             // Start Trailing Line
input string   InpObjUpName                 = "Line UpName";     // Obj: Up (Horizontal Line)
input ENUM_TRADE_COMMAND InpTradeCommand    = close_sells;       // Obj:  command:
input string   InpObjDownName               = "Line DownName";   // Obj: Down (Horizontal Line)
input ENUM_TRADE_COMMAND InTradeCommand     = close_buys;        // Obj:  command:
input ushort   InpObjTrailingStop           = 0;                 // Obj: Trailing Stop (distance from price to object, in pips)
input ushort   InpObjTrailingStep           = 0;                 // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)

 --------

есть ещё 4 линии -  как бы 2 сверху и 2 снизу 

input string   t13="--- Trade Line Name 1   -----";              //

input string   t14="--- Trade Line Name 2   -----";              //

input string   t15="--- Trade Line Name 3   -----";              //

input string   t16="--- Trade Line Name 4   -----";              //

-----------------------------------

вот теперь - то что сверху "Upper Line"

то что снизу  "Lower Line"

надеюсь Вы поняли как это работает (ну не умею я объяснять)

------------------

на 2 картинки видно - сигнал остановился 

Файлы:
EURUSDM1.png  37 kb
EURUSDM1z.png  39 kb
 

Обновил до версии "1.014"

Всё осталось по-прежнему, только имена в настройках немного подправил.

 
пример с FILTER:Line:Middle(синяя линия) и FILTER:Stop(коричневая линия) + Trailing Line:
выше синей линии срабатывает сигнал, ниже прекращает все действия.
выше коричневой линии прекращает все действия, ниже срабатывает сигнал.
в функции Trailing Line: прописываем имя коричневой линии(что бы передвигала как трал) только линии задать команду(TURN  OFF)
Итог - что бы поймать выше цену, и ниже синей линии не совершались открытия позиции.

(важно FILTER:Stop команда - 2 Filter AllStop ( Only one line ))

Файлы:
FILTER.PNG 144 kb

FILTER2.PNG 113 kb

-------------------------------------------

Вот я вручную передвинул вниз, синею линию и только тогда сработал сигнал (это для показа)

Снимок.PNG 118 kb

Файлы:
FILTER.PNG  144 kb
FILTER2.PNG  113 kb
knk384.PNG  118 kb
 

ещё один Индикатор подогнал под Эксперта из ( Custom Moving Average )

пример - можно установить на график два одинаковых Индикатора, только Горизонтальным линиям, задать разные имена .


MA line.mq5
 20 kb
USDCHFM1.png 31 kb 
USDCHF 2.PNG 116 kb

Файлы:
MA_line.mq5  20 kb
USDCHFM1.png  31 kb
USDCHF.PNG  116 kb
 

Ещё одному индикатору (ParabolicSAR)  добавил линии

Тоже в эксперте можно применить как трал. отрисовка может быть разная - меняя ( Shift )

//--- External parametrs
input double          InpSARStep     = 0.02;          // Step
input double          InpSARMaximum  = 0.2;           // Maximum
input string          InpUpperName   = "LineSAR";     // name Trend Line
input int             InpSARShift    = 1;             // Shift Trend Line
input color           InpUpperColor  = clrDodgerBlue; // color Trend Line
input ENUM_LINE_STYLE InpUpperStyle  = STYLE_DASH;    // style Trend Line
input int             InpUpperWidth  = 1;             // width Trend Line
input string          InpUpperNameL  = "HLinePara";   // name Horizontal Line
input int             InpSARShiftL   = 1;             // Shift Horizontal Line
input color           InpUpperColorL = clrOrangeRed;  // color Horizontal Line
input ENUM_LINE_STYLE InpUpperStyleL = STYLE_DASH;    // style Horizontal Line
input int             InpUpperWidthL = 1;             // width Horizontal Line
Файлы:
 

Вот хороший индикатор https://www.mql5.com/ru/code/29210

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

вот тут указать путь к индикатору 

//--- create handle of the indicator iFractals
   handle_iFractals=iCustom(Symbol(),Period(),"Examples\\StdDev");

ParabolicSAR.PNG 102 kb

------------------

ещё можно немножко изменить тут 

   double upper_left=0.0,upper_right=0.0,lower_left=0.0,lower_right=0.0;
   datetime upper_left_date=0,upper_right_date=0,lower_left_date=0,lower_right_date=0;
   for(int i=rates_total-4; i>=10; i--)
     {

вместо 4 от 1 (можно вывести в настройки) 

вот так 

input int             InpShift    = 1;             // Shift Trend Line
for(int i=rates_total-InpShift; i>=10; i--)
Line through two fractals
Line through two fractals
  • www.mql5.com
cm BASKET Советник управляющий счетом. Показывает какие пары инструментов сейчас торгуются на данном счете. Показывает прибыль полученную по каждой паре за определенное время. Помогает переключаться между множества открытых окон... Virtual Trailing Stop 2
Файлы:
StdDev_2.PNG  115 kb
StdDev.PNG  100 kb
ParabolicSAR.PNG  102 kb
 

Обновил до версии "1.015"

Добавил период для Горизонтальных и Трендовых линии.

В Функции FILTER:Stop и FILTER:Line:Middle (при работе заметил - что когда цена пересекла линию, то не работает как задумано)

input string   t18="--- FILTER:Stop         -----";              //
input ENUM_TIMEFRAMES Period_5              = PERIOD_M1;         // Period
input ENUM_FILTER_COMMAND ObjFilterStop     = Filter_Off;        // Filter Stop: command:
input string   InpNameupper                 = "Имя Линии Upper"; // FILTER Upper (Horizontal Line or Trend Line)
input string   InpNamelower                 = "Имя Линии Lower"; // FILTER Lower (Horizontal Line or Trend Line)
input string   t19="--- FILTER:Line:Middle  -----";              //
input ENUM_TIMEFRAMES Period_6              = PERIOD_M1;         // Period
input bool     ObjFilteraverage             = false;             // Вкл. Filter Middle
input string   InpNameaverage               = "Имя Линии Middle";// FILTER (Horizontal Line or Trend Line)


Причина обращения: