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

Рейтинг 2146



РЕКОМЕНДУЮ



Мультивалютный сигнальщик

Добрый день! Просьба сделать мультивалютный сигнальщик!
1) показывает все пары из обзора рынка или задаем сами
2) показывает сигнал с того ТФ на котором установлен
3) сигнал звуковой и визуальный
СИГНАЛ — пересечение свечей MOVING AVERAGE(параметры МА задаются в настройках)
Примерный вид
Screenshot_49.png (12 Kb)
БЛАГОДАРЮ!
  • 0
  • Просмотров: 867
  • 22 октября 2024, 11:21
  • dima0603
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
avatar

  9  dima0603 Автор Сообщений: 220

  • 22 октября 2024, 11:21
+
0
avatar

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

  • 22 октября 2024, 12:15
+
0
*good* 
avatar

  9  dima0603 Автор Сообщений: 220

  • 22 октября 2024, 12:59
+
+2
avatar

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

  • 22 октября 2024, 15:43
+
0
БЛАГОДАРЮ за ОПЕРАТИВНОСТЬ!!!*hi* 
avatar

  9  dima0603 Автор Сообщений: 220

  • 22 октября 2024, 23:16
+
0
Андрей, если можно, то вынести в настройки размер шрифта и угол привязки
avatar

  9  dima0603 Автор Сообщений: 220

  • 25 октября 2024, 09:25
+
+3

//+------------------------------------------------------------------+
//|                                                MultiMaSignal.mq4 |
//|                                               Copyright 2024, Ve |
//|                                             kupiscript@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, Ve"
#property link      "kupiscript@yandex.ru"
#property version   "1.00"
#property strict

extern string s1 = "======Muving Average======";
extern int ma_period                    = 50;           // период
extern int ma_shift                     = 0;            // сдвиг средней
extern ENUM_MA_METHOD ma_method         = MODE_SMA;      // метод усреднения
extern ENUM_APPLIED_PRICE applied_price = PRICE_CLOSE;  // тип цены
extern string s2="==============================";
extern ENUM_BASE_CORNER Corner          = CORNER_LEFT_UPPER;   // угол привязки
//------------------------------------
datetime t=0;
int array_size;
string Arr_Sym[]={"EURUSD","GBPUSD","AUDCAD","CADJPY","USDJPY","XAUUSD","DOGECOIN","BITCOIN","CARDANO","AUDNZD",
                  "NZDCAD","AUDCHF","AUDCNH","AUDCZK","AUDDKK","AUDHKD","AUDHUF","AUDJPY","AUDMXN","AUDNOK",
                  "AUDPLN","AUDSEK","AUDSGD","AUDUSD","AUDZAR","CADCHF","CADCNH","CADCZK","CADDKK","CADHKD",
                  "CADHUF","CADMXN","CADNOK","CADPLN","CADSEK","CADSGD","CADZAR","CHFCNH","FCZK","CHFDKK",
                  "CHFHKD","CHFHUF","CHFJPY","CHFMXN","CHFNOK","CHFPLN","CHFSEK","CHFSGD","CHFTRY","CHFZAR",
                  "DKKCZK","DKKHKD","DKKHUF","DKKMXN","DKKNOK","DKKPLN","DKKSEK","DKKSGD","DKKZAR","EURAUD",
                  "EURCAD","EURCHF","EURCNH","EURCZK","EURDKK","EURGBP","EURHKD","EURHUF"};
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   array_size=ArraySize(Arr_Sym);
   Draw();
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(t!=Time[0])
     {
      t=Time[0];
      SetText();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SetText()
  {
   double ma=0,ma1=0,close1=0,close2=0;
   string text="NULL";
   color clr = clrSilver;
//----------------------
   for(int i=0; i<array_size; i++)
     {
      ma=iMA(Arr_Sym[i],0,ma_period,0,ma_method,applied_price,ma_shift);
      ma1=iMA(Arr_Sym[i],0,ma_period,0,ma_method,applied_price,ma_shift+1);
      close1=iClose(Arr_Sym[i],0,1);
      close2=iClose(Arr_Sym[i],0,2);
      if(close2<ma1 && close1>ma)
        {
         text="BUY";
         clr=clrGreen;
         PlaySound("tick.wav");
        }
      if(close2>ma1 && close1<ma)
        {
         text="SELL";
         clr=clrRed;
         PlaySound("oops.wav");
        }
      ObjectSetString(0,Arr_Sym[i]+"sym2",OBJPROP_TEXT,text);
      ObjectSetInteger(0,Arr_Sym[i]+"rec2",OBJPROP_BGCOLOR,clr);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Draw()
  {
   int x=10,x1=0,x2=0,x3=0,y=20,y1=0,yd=0;
   double ma=0,close1=0;
   string text="NULL";
   color clr = clrSilver;
   //-----------------------------
   if(Corner==CORNER_LEFT_UPPER)
     {y1=3;x1=61;x2=5;x3=67;}
   if(Corner==CORNER_RIGHT_UPPER)
     {y1=3;x=120;x1=-59;x2=-5;x3=-67;}
   if(Corner==CORNER_LEFT_LOWER)
     {y=30;y1=-3;x=10;x1=61;x2=5;x3=67;}
   if(Corner==CORNER_RIGHT_LOWER)
     {y=30;y1=-3;x=120;x1=-59;x2=-5;x3=-67;}
   //------------------------
   for(int i=0; i<array_size; i++)
     {
      ma=iMA(Arr_Sym[i],0,ma_period,0,ma_method,applied_price,ma_shift);
      close1=iClose(Arr_Sym[i],0,1);
      if(close1>ma)
        {
         text="BUY";
         clr=clrGreen;
        }
      if(close1<ma)
        {
         text="SELL";
         clr=clrRed;
        }
      RectLabelCreate(Arr_Sym[i]+"rec1",x,y+yd,60,20,clrSilver,clrViolet);
      RectLabelCreate(Arr_Sym[i]+"rec2",x+x1,y+yd,40,20,clr,clrViolet);
      LabelCreate(Arr_Sym[i]+"sym1",x+x2,y+yd+y1,Arr_Sym[i],"Arial",8,clrBlack);
      LabelCreate(Arr_Sym[i]+"sym2",x+x3,y+yd+y1,text,"Arial",8,clrBlack);
      yd+=20;
      if(yd/20==15) {yd=0;x+=105;}
     }
  }

avatar

  14  verta81 Сообщений: 388

  • 26 октября 2024, 01:43
+
+3
//+------------------------------------------------------------------+
//| Создает текстовую метку                                          |
//+------------------------------------------------------------------+
bool LabelCreate(string name,int x,int y,string text,string font,int font_size,color clr)
  {
   long chart_ID=0;               // ID графика
   int sub_window=0;             // номер подокна
   ENUM_BASE_CORNER corner=Corner; // угол графика для привязки
   bool back=false;               // на заднем плане
   bool hidden=true;              // скрыт в списке объектов

   if(ObjectFind(chart_ID,name)<0)
     {
      //--- создадим текстовую метку
      ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0);
      //--- установим координаты метки
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      //--- установим угол графика, относительно которого будут определяться координаты точки
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      //--- установим текст
      ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
      //--- установим шрифт текста
      ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
      //--- установим размер шрифта
      ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
      //--- установим цвет
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      //--- установим цвет фона
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,White);
      //--- отобразим на переднем (false) или заднем (true) плане
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      //--- успешное выполнение
     }
   return(true);
  }
//+------------------------------------------------------------------+
//| Создает прямоугольную метку                                      |
//+------------------------------------------------------------------+
bool RectLabelCreate(string name,int x,int y,int width,int height,color back_clr,color clr)
  {
   long             chart_ID=0;               // ID графика
   int              sub_window=0;             // номер подокна
   ENUM_BORDER_TYPE border=BORDER_SUNKEN;     // тип границы
   ENUM_BASE_CORNER corner=Corner; // угол графика для привязки
   ENUM_LINE_STYLE  style=STYLE_SOLID;        // стиль плоской границы
   int              line_width=1;             // толщина плоской границы
   bool             back=false;               // на заднем плане
   bool             hidden=true;              // скрыт в списке объектов

   if(ObjectFind(chart_ID,name)<0)
     {
      ObjectCreate(chart_ID,name,OBJ_RECTANGLE_LABEL,sub_window,0,0);
      //--- установим координаты метки
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      //--- установим размеры метки
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
      //--- установим цвет фона
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
      //--- установим тип границы
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,border);
      //--- установим угол графика, относительно которого будут определяться координаты точки
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      //--- установим цвет плоской рамки (в режиме Flat)
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      //--- установим стиль линии плоской рамки
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      //--- установим толщину плоской границы
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,line_width);
      //--- отобразим на переднем (false) или заднем (true) плане
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
     }
//--- успешное выполнение
   return(true);
  }
avatar

  14  verta81 Сообщений: 388

  • 26 октября 2024, 01:43
+
0
БЛАГОДАРЮ, за проявленный интерес и помощь!
avatar

  9  dima0603 Автор Сообщений: 220

  • 27 октября 2024, 14:38
+
+2
готово: www.opentraders.ru/downloads/3921/

Андрей, если можно, то вынести в настройки размер шрифта и угол привязки


avatar

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

  • 26 октября 2024, 12:09
+
0
Андрей, БЛАГОДАРЮ за оперативность!!!*good* 
avatar

  9  dima0603 Автор Сообщений: 220

  • 27 октября 2024, 14:39

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