Isemen
Радион

 
Уровень 4


Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Индикатор TrendLine 1.0 на МТ5

Добрый день! Уважаемые программисты, сделайте пожалуйста индикатор линий.При касании цены, либо при закрытии цены выше линии (чтобы можно было выбрать или касание или закрытие), которую я сам начертил, сработал алерт (алерт можно менять), отправка на телефон, почту.
При отработке сигнала, можно было задать самому ещё раз, либо отключить.
При переходе на другой таймфрейм линия тоже должна работать.
Также хотелось бы, чтобы линию можно было чертить и в под окне на индикаторах.
  • +2
  • Просмотров: 3163
  • 13 сентября 2021, 09:39
  • Isemen
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
изменить советник AllCandlesTMA на AllCandlesHalf
Следующая запись в группе  
советник трал
13 сентября 2021
14 сентября 2021

Брокер для ваших роботов, 15 лет на рынке

Комментарии (28)

+
0
на 16-е
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 13 сентября 2021, 10:16
+
0
Если не затруднит, сделайте и в формате мт4. Спасибо
avatar

  12  Marlboropartner Сообщений: 59

  • 13 сентября 2021, 10:58
+
0
Спасибо
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 13 сентября 2021, 10:26
+
0
сделал набросок. смотрите уточняйте:


//+------------------------------------------------------------------+
//|                                                   SignalLine.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   PutTrendLine("line",Time[0],Bid+222*_Point,Time[22],Bid+222*_Point,Red);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutTrendLine(string name,datetime time1,double price1,datetime time2,double price2,color clr)
  {
   ObjectCreate(0,name,OBJ_TREND,0,time1,price1,time2,price2);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим стиль отображения линии
   ObjectSetInteger(0,name,OBJPROP_STYLE,0);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо
   ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   double pr=NormalizeDouble(ObjectGetDouble(0,"line",OBJPROP_PRICE1),_Digits);

   double p=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);

   if(p==pr)
      Alert(_Symbol+" Касание линии!");

   Comment("\n Line Price: ",pr,
           "\n Bid: ",p);

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 13 сентября 2021, 11:29
+
0
Это для МТ5?
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 13 сентября 2021, 12:19
+
0
и и :) 
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 13 сентября 2021, 12:21
+
0
Я честно говоря, пока не очень разбираюсь, так что жду конечный результат.
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 13 сентября 2021, 12:21
+
0
многие моменты надо уточнять по ходу. поэтому набросок
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 13 сентября 2021, 12:23
+
0
А что уточнить надо?
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 13 сентября 2021, 12:26
+
0
А что уточнить надо?
сколько будет линий, какие, в каком месте линии вычислять пробой и т.д.
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 13 сентября 2021, 14:50
+
0
Алерты надо чтобы можно было менять, на любой из линий
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 13 сентября 2021, 12:30
+
0
Алерты надо чтобы можно было менять, на любой из линий
как это?
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 13 сентября 2021, 14:50
+
0
Тема полезная и нужная, но по-моему, Андрей подобное уже кому-то делал.
avatar

  24  ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.

  • 13 сентября 2021, 12:31
+
0
Линий может быть сколько угодно, мы сами их чертим.По алертам не нужно ничего, пусть один будет
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 13 сентября 2021, 15:23
+
0
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 13 сентября 2021, 15:43
+
0
Когда цена коснется линии, мы поставили плюс и она опять работает
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 13 сентября 2021, 15:44
+
0
Вообщем линию активируем +, как сработало, то + анулируется и мы сами примем решение нужно ли будет ставить +
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 13 сентября 2021, 15:57
+
0
вот этот код при касании активированной линии выдает алерт и затем дезактивирует ее.


//+------------------------------------------------------------------+
//|                                                   SignalLine.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   string s="";
   double p=0,pr=0;

   for(int i=ObjectsTotal()-1; i>=0; i--)
     {
      s=ObjectName(0,i,0,OBJ_TREND);
      p=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
      pr=NormalizeDouble(ObjectGetValueByTime(0,s,time[0]),_Digits);
      if(p==pr && ObjectGetInteger(0,s,OBJPROP_SELECTED)==true)
        {
         Alert(_Symbol+" Касание линии! "+s);
         ObjectSetInteger(0,s,OBJPROP_SELECTED,false);
        }
     }

   Comment("\n Line Price: ",pr,
           "\n Bid: ",p,
           "\n Name: ",s);

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 в мт5 чуть позже буду переносить. там могут быть небольшие различия
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 13 сентября 2021, 17:16
+
0
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 13 сентября 2021, 17:44
+
0
Андрей спасибо супер!!! всё работает, но нет звука, и настроек по изменению мелодии, отправки на телефон, почту.И в под окне чтобы тоже работал
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 13 сентября 2021, 19:35
+
0
но нет звука, и настроек по изменению мелодии
про мелодию в тз нет ни слова.

телефон и почта есть:


      if(p==pr && ObjectGetInteger(0,s,OBJPROP_SELECTED)==true)
        {
         Alert(_Symbol+" Касание линии! "+s);
         SendMail("Signal",_Symbol+" Касание линии! "+s);
         SendNotification(_Symbol+" Касание линии! "+s);
         ObjectSetInteger(0,s,OBJPROP_SELECTED,false);
        }


avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 13 сентября 2021, 19:39
+
0
версия 1.0. в следующих топиках можно будет доработать
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 13 сентября 2021, 19:49
+
0
Было — сработал алерт (алерт можно менять)
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 14 сентября 2021, 06:22
+
0
Добавьте пожалуйста, это же не сложно для вас)
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 14 сентября 2021, 06:24
+
+1
:D 
avatar

  24  ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.

  • 14 сентября 2021, 17:42
+
0
Андрей вы доделаете или нет? Если нет то хотя бы сбросьте пожалуйста где взять аналогию и заменить самому.
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 14 сентября 2021, 13:59
+
0
добавил: www.opentraders.ru/downloads/3121/


input bool Push=1;
input bool Mail=1;
input bool Alerts=1;

input string Sound="News.wav";
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 14 сентября 2021, 21:22
+
0
Громадное спасибо!!!
avatar

  4  Isemen Автор Сообщений: 53 - Радион

  • 15 сентября 2021, 06:36

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий