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

GRAALUn

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

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

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

О программе

GRAALUn — пользовательский индикатор для платформы MetaTrader 4, отображающий аналитические значения в отдельном окне графика. Индикатор рассчитывает два буферных массива на основе ценовых данных за заданный период и визуализирует их в виде линий. При пересечении нулевого уровня одним из буферов на графике появляются стрелки-маркеры, обозначающие потенциальные точки разворота тренда. Индикатор поддерживает несколько типов уведомлений: всплывающие сообщения, звуковые сигналы, push-уведомления и email-рассылку, которые срабатывают при обнаружении соответствующих событий. Параметры периода, смещения стрелок и количества обрабатываемых баров настраиваются пользователем.

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

НастройкаОписание
period Период — Период расчёта, используемый для определения максимальных и минимальных значений цен.
arrow_shift Смещение стрелок — Задаёт величину смещения стрелок-маркеров относительно ценовой точки в пунктах.
nbars Количество баров — Определяет количество баров, используемых для обработки и анализа данных индикатором.
alertsOn Уведомления включены — Общий переключатель для включения или отключения всех типов уведомлений индикатора.
alertsMessage Всплывающие сообщения — Включает или отключает всплывающие сообщения на графике при срабатывании событий индикатора.
alertsSound Звуковые уведомления — Включает или отключает воспроизведение звукового сигнала при срабатывании событий индикатора.
alertsNotify Push-уведомления — Включает или отключает отправку push-уведомлений на устройство при срабатывании событий индикатора.
alertsEmail Email-уведомления — Включает или отключает отправку email-уведомлений при срабатывании событий индикатора.
soundFile Файл звука — Путь к звуковому файлу, который воспроизводится при срабатывании звукового уведомления.
Shift (shift) Смещение — Смещение индикатора по горизонтальной оси графика (Shift).
Получить полный код

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

#property version   "1.0"
#property strict

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_style1 STYLE_SOLID
#property indicator_color1 Yellow

#property indicator_level1 0

#property indicator_maximum 3
#property indicator_minimum -3

extern int period=9;
extern int arrow_shift=25;

extern int nbars=300;

extern bool   alertsOn                = true;

extern bool   alertsMessage           = true;
extern bool   alertsSound             = true;
extern bool   alertsNotify            = false;
extern bool   alertsEmail             = false;
extern string soundFile               = "alert.wav";

input int shift = 1; // Shift

string gral_name="gral_";
string s_symbol,s_id,s_gral;

double ExtBuffer0[],ExtBuffer1[];

double arrow_up[];
double arrow_down[];

bool flag_last_trend,flag_arr_up,flag_arr_dn,flag_start_max_search;
double last_trend,max_value;
int k;

datetime time_alert_buy,time_alert_sell;
int whichBar = 0;

int deinit()
{
   deleteArrows(s_gral);
   return(0);
}

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

int start()
  {
      // код доступен только после оплаты
   }
   int limit;
   int counted_bars;

   double Value0=0,Value1=0,Value2=0,Fish0=0,Fish1=0,Value00=0,Value11=0;
   double price;
   double MinL=0;
   double MaxH=0;

   counted_bars=IndicatorCounted();

   if(counted_bars>0)
      counted_bars--;
   limit=Bars-counted_bars;

   for(int i = shift; i<limit; i++)
   {
      MaxH = High[iHighest(NULL,0,MODE_HIGH,period,i)];
      MinL = Low[iLowest(NULL,0,MODE_LOW,period,i)];
      price = (High[i]+Low[i])/2;

      if(MaxH-MinL == 0)
         Value00 = 0.33*2*(0-0.5) + 0.67*Value0;
      else
         Value00 = 0.33*2*((price-MaxH)/(MinL-MaxH)-0.5) + 0.67*Value0;

      if(1-Value00==0)
         ExtBuffer0[i]=0.5+0.5*Fish0;
      else
         ExtBuffer0[i]=-0.5*MathLog((1+Value00)/(1-Value00))+0.5*Fish0;

      Value00=MathMin(MathMax(Value00,-0.999),0.999);

      Value0=Value00;
      Fish0=ExtBuffer0[i];

      if(MaxH-MinL==0)
         Value11=0.33*2*(0-0.5)+0.67*Value1;
      else
         Value11=0.33*2*((price-MaxH)/(MinL-MaxH)-0.5)+0.67*Value1;

      Value11=MathMin(MathMax(Value11,-0.999),0.999);

      if(1-Value11==0)
         ExtBuffer1[i]=0.5+0.5*Fish1;
      else
         ExtBuffer1[i]=-0.5*MathLog((1-Value11)/(1+Value11))+0.5*Fish1;

      Value1=Value11;
      Fish1=ExtBuffer1[i];
     }

   flag_last_trend=false;
   k=0;
   flag_start_max_search=false;
   last_trend=0;
   max_value=0;

   for(int i = shift; i<nbars; i++)
   {
      flag_arr_up=false;
      flag_arr_dn=false;
      if(ExtBuffer1[i]>0 && ExtBuffer1[i+1]<=0)
      {
         create_arrow(s_gral+Time[i],High[i]+arrow_shift*_Point,Time[i],242,2,clrRed,ANCHOR_BOTTOM);
         if(!flag_last_trend)
         {
            k=i;
            flag_start_max_search=true;
            last_trend=-1;
            max_value=ExtBuffer1[i];
         }
         flag_last_trend=true;
         flag_arr_dn=true;
      }
      if(ExtBuffer1[i]<0 && ExtBuffer1[i+1]>=0)
      {
         create_arrow(s_gral+T

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

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

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

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

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

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

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