← К каталогу
Исходный код · ID 982

digital snr snd.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Этот файл является пользовательским индикатором для MetaTrader 5, который отображает на графике ценовые уровни поддержки и сопротивления, а также зоны спроса и предложения. Индикатор рассчитывает локальные экстремумы на четырёх таймфреймах: H1, H4, D1 и W1. Уровни отображаются в виде горизонтальных линий и текстовых меток, а зоны — в виде прямоугольников, ширина которых задаётся в пунктах.

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

Все расчёты выполняются на основе данных с указанных таймфреймов, получаемых через стандартные функции iHigh и iLow. Индикатор не использует внешние библиотеки и не предоставляет публичного API для вызова из других программ.

Настройки программы

НастройкаОписание
SHOW_H1 Включает или отключает отображение уровней и зон для часового таймфрейма (H1).
SHOW_H4 Включает или отключает отображение уровней и зон для четырёхчасового таймфрейма (H4).
SHOW_D1 Включает или отключает отображение уровней и зон для дневного таймфрейма (D1).
SHOW_W1 Включает или отключает отображение уровней и зон для недельного таймфрейма (W1).
Supply_Demand_Area Ширина зон спроса и предложения в пунктах. Если значение больше нуля, зоны отображаются.
SupportColor Цвет заливки прямоугольных зон спроса (поддержки).
ResistanceColor Цвет заливки прямоугольных зон предложения (сопротивления).
P60R Цвет горизонтальной линии сопротивления для часового таймфрейма (H1).
P60S Цвет горизонтальной линии поддержки для часового таймфрейма (H1).
P240R Цвет горизонтальной линии сопротивления для четырёхчасового таймфрейма (H4).
P240S Цвет горизонтальной линии поддержки для четырёхчасового таймфрейма (H4).
P1440R Цвет горизонтальной линии сопротивления для дневного таймфрейма (D1).
P1440S Цвет горизонтальной линии поддержки для дневного таймфрейма (D1).
P10080R Цвет горизонтальной линии сопротивления для недельного таймфрейма (W1).
P10080S Цвет горизонтальной линии поддержки для недельного таймфрейма (W1).
Получить полный код

Поиск по коду файла

#property indicator_chart_window

extern bool SHOW_H1=true;
extern bool SHOW_H4=true;
extern bool SHOW_D1=true;
extern bool SHOW_W1=true;
extern int Supply_Demand_Area=10;
extern color SupportColor = DodgerBlue;
extern color ResistanceColor = OrangeRed;
extern color P60R=Indigo;
extern color P60S=Indigo;
extern color P240R=Indigo;
extern color P240S=Indigo;
extern color P1440R=Indigo;
extern color P1440S=Indigo;
extern color P10080R=Indigo;
extern color P10080S=Indigo;

int OnInit()
  {
      // код доступен только после оплаты
   }

void OnDeinit(const int reason)
  {

   if(ObjectFind("H1 RESISTANCE")==0) ObjectDelete("H1 RESISTANCE");
   if(ObjectFind("H4 RESISTANCE")==0) ObjectDelete("H4 RESISTANCE");
   if(ObjectFind("D1 RESISTANCE")==0) ObjectDelete("D1 RESISTANCE");
   if(ObjectFind("W1 RESISTANCE")==0) ObjectDelete("W1 RESISTANCE");
   if(ObjectFind("H1 SUPPORT")==0) ObjectDelete("H1 SUPPORT");
   if(ObjectFind("H4 SUPPORT")==0) ObjectDelete("H4 SUPPORT");
   if(ObjectFind("D1 SUPPORT")==0) ObjectDelete("D1 SUPPORT");
   if(ObjectFind("W1 SUPPORT")==0) ObjectDelete("W1 SUPPORT");
   if(ObjectFind("GIVONLY H1 RESISTANCE LINE")==0) ObjectDelete("GIVONLY H1 RESISTANCE LINE");
   if(ObjectFind("GIVONLY H4 RESISTANCE LINE")==0) ObjectDelete("GIVONLY H4 RESISTANCE LINE");
   if(ObjectFind("GIVONLY D1 RESISTANCE LINE")==0) ObjectDelete("GIVONLY D1 RESISTANCE LINE");
   if(ObjectFind("GIVONLY W1 RESISTANCE LINE")==0) ObjectDelete("GIVONLY W1 RESISTANCE LINE");
   if(ObjectFind("GIVONLY H1 SUPPORT LINE")==0) ObjectDelete("GIVONLY H1 SUPPORT LINE");
   if(ObjectFind("GIVONLY H4 SUPPORT LINE")==0) ObjectDelete("GIVONLY H4 SUPPORT LINE");
   if(ObjectFind("GIVONLY D1 SUPPORT LINE")==0) ObjectDelete("GIVONLY D1 SUPPORT LINE");
   if(ObjectFind("GIVONLY W1 SUPPORT LINE")==0) ObjectDelete("GIVONLY W1 SUPPORT LINE");
   if(ObjectFind("H1 SUPPLY AREA")==0) ObjectDelete("H1 SUPPLY AREA");
   if(ObjectFind("H4 SUPPLY AREA")==0) ObjectDelete("H4 SUPPLY AREA");
   if(ObjectFind("D1 SUPPLY AREA")==0) ObjectDelete("D1 SUPPLY AREA");
   if(ObjectFind("W1 SUPPLY AREA")==0) ObjectDelete("W1 SUPPLY AREA");
   if(ObjectFind("H1 DEMAND AREA")==0) ObjectDelete("H1 DEMAND AREA");
   if(ObjectFind("H4 DEMAND AREA")==0) ObjectDelete("H4 DEMAND AREA");
   if(ObjectFind("D1 DEMAND AREA")==0) ObjectDelete("D1 DEMAND AREA");
   if(ObjectFind("W1 DEMAND AREA")==0) ObjectDelete("W1 DEMAND AREA");

  }

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[])
  {
      // код доступен только после оплаты
   }

   void  SND(int period)
      {
         string name;
         name = StringConcatenate(TF(period)," SUPPLY AREA");
         double atas, bawah;
         atas = SNR(period,MODE_HIGH);
         bawah= atas-Supply_Demand_Area*Point;
         bool ada=false;
         if(   (SNR(period,MODE_HIGH)==SNR(60,MODE_HIGH) && period>60 && SHOW_H1)
            || (SNR(period,MODE_HIGH)==SNR(240,MODE_HIGH) && period>240 && SHOW_H4)
            || (SNR(period,MODE_HIGH)==SNR(1440,MODE_HIGH) && period>1440 && SHOW_D1)
            || (SNR(period,MODE_HIGH)==SNR(10080,MODE_HIGH) && period>10080 && SHOW_W1)
           )   ada=true;
         if(!ada) {
            ObjectCreate(name,OBJ_RECTANGLE,0,0,0);
            ObjectSet(name,OBJPROP_TIME1,Time[0]);
            ObjectSet(name,OBJPROP_TIME2,Time[Bars-1]);
            ObjectSet(name,OBJPROP_COLOR,ResistanceColor);
            ObjectSet(name,OBJPROP_PRICE1,atas);
            ObjectSet(name,OBJPROP_PRICE2,bawah);
            ObjectMove(name,0,Time[0],at

Показано первые 50% кода (символов: 6310)

Открыть по тарифу

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

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
631₽ ≈ $7.71