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

Delta1

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

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

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

О программе

Delta1 — пользовательский индикатор для MetaTrader 5, который рассчитывает дельту между двумя валютными парами на основе их ценовых данных и коэффициента корреляции. Основная линия отображает разницу между нормализованными ценами двух символов, а также показываются максимальный и минимальный уровни дельты в виде меток на графике.
Индикатор отображает текущий процентный показатель дельты относительно экстремумов на графике и поддерживает настройку порогов срабатывания сигналов. При достижении заданных уровней возможно получение алерт-уведомлений и звуковых оповещений.
Индикатор работает на указанном таймфрейме с заданным количеством баров для расчёта. Данные могут импортироваться из внешнего советника через глобальные переменные для синхронизированного пересчёта.

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

НастройкаОписание
Символ 1 (Symm1) Символ 1 — Символ 1
Символ 2 (Symm2) Символ 2 — Символ 2
Количество баров для расчета (BarsCount) Количество баров для расчета — Количество баров для расчета
Таймфрейм расчета (TF) Таймфрейм расчета — Таймфрейм расчета
Период перерасчета (TFs) Период перерасчета — Период перерасчета
Включить сигналы (Alerts) Включить сигналы — Включить сигналы
Максимальный уровень сигнала в % (SigMax) Максимальный уровень сигнала в % — Максимальный уровень сигнала в %
Минимальный уровень сигнала в % (SigMin) Минимальный уровень сигнала в % — Минимальный уровень сигнала в %
Включить звуковое оповещение (Sound) Включить звуковое оповещение — Включить звуковое оповещение
Импорт данных из советника (Import) Импорт данных из советника — Импорт данных из советника
Получить полный код

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

#property description "Delta1"
#property version   "1.00"
#property strict

#property indicator_separate_window
#property indicator_buffers 5
#property indicator_plots   3 
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_NONE
#property indicator_type3   DRAW_NONE
#property indicator_color1  clrYellow
#property indicator_color2  clrRed
#property indicator_color3  clrRed

input string Symm1="EURUSD";             //Символ 1
input string Symm2="GBPUSD";             //Символ 2
input int BarsCount=300;                 //Количество баров для расчета
input ENUM_TIMEFRAMES TF=PERIOD_CURRENT; //Таймфрейм расчета
input ENUM_TIMEFRAMES TFs=PERIOD_D1;     //Период перерасчета
input bool   Alerts=false;               //Включить сигналы
input int    SigMax=80;                  //Максимальный уровень сигнала в %
input int    SigMin=20;                  //Минимальный уровень сигнала в %
input bool   Sound=false;                //Включить звуковое оповещение
input bool   Import=false;               //Импорт данных из советника

double L1[];
double L2[];
double L3[];
double DMax[],DMin[];
double BaseOpen[],BaseHigh[],BaseLow[],BaseClose[];
double HedgeOpen[],HedgeHigh[],HedgeLow[],HedgeClose[];
double Corr=0.0;
int DeltaMax=0,DeltaMin=0;
int Percent=0;
bool alert=false;
int barscount=0;

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

void OnDeinit(const int reason)
  {
   if(ObjectFind(0,"Max")>0) ObjectDelete(0,"Max");
   if(ObjectFind(0,"Min")>0) ObjectDelete(0,"Min");
   if(ObjectFind(0,"Per")>0) ObjectDelete(0,"Per");
  }

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

   if(Import && GlobalVariableCheck("FX2Start"+_Symbol))
     {
      if(GlobalVariableCheck("FX2Bars"+_Symbol)) barscount=(int)GlobalVariableGet("FX2Bars"+_Symbol); else barscount=BarsCount;
      ArrayResize(BaseOpen,barscount,0);
      ArrayResize(BaseHigh,barscount,0);
      ArrayResize(BaseLow,barscount,0);
      ArrayResize(BaseClose,barscount,0);
      ArrayResize(HedgeOpen,barscount,0);
      ArrayResize(HedgeHigh,barscount,0);
      ArrayResize(HedgeLow,barscount,0);
      ArrayResize(HedgeClose,barscount,0);
     }

   ArrayInitialize(L1,0.0);
   ArrayInitialize(L2,0.0);
   ArrayInitialize(L3,0.0);
   ArrayInitialize(DMax,0.0);
   ArrayInitialize(DMin,0.0);
   if(CopyClose(Symm1,TF,0,barscount,L1)<barscount) {Print("Not enoug bars! "+Symm1); return(0);}
   if(CopyClose(Symm2,TF,0,barscount,L2)<barscount) {Print("Not enoug bars! "+Symm2); return(0);}

   if((Import && GlobalVariableCheck("FX2Start"+_Symbol)) || (!Import && IsNewBar()))
     {
      Corr=Cor(Symm1,Symm2);
      KN(Symm1,Symm2);
      if(GlobalVariableCheck("FX2Start"+_Symbol)) GlobalVariableDel("FX2Start"+_Symbol);
      if(KDBase>0.0 && KDHedge>0.0)
        {
         DeltaMax=0; DeltaMin=0;
         for(int i=barscount-1; i>=0; i--)
           {
            L1[i]=L1[i]/KDBase;
            if(Corr>0) L2[i]=L2[i]/KDHedge+KS;
            if(Corr<0) L2[i]=2*AverageH-L2[i]/KDHedge+KS;
            L3[i]=(int)((L1[i]-L2[i])/0.00001);

            if(DeltaMax<(int)L3[i]) DeltaMax=(int)L3[i];
            if(DeltaMin>(int)L3[i]) DeltaMin=(int)L3[i];
           }
        }
     }

   IndicatorSetString(INDICATOR_SHORTNAME,"Correlation "+DoubleToString(Corr,2)+" | DELTA "+Symm1+" & "+Symm2+" |");

   if(KDBase!=0.0 && KDHedge!=0.0)
     {

      for(int i=barscount-1; i>=1; i--)
        {
         L1[i]=L1[i]/KDBase;
         if(Corr>0) L2[i]=L2[i]/KDHedge+KS;
         if(Corr<0) L2[i]=2*AverageH-L2[i]/KDHedge+KS;
         L3[i]=(int)((L1[i]-L2[i])/0.00001);
        }
     }
      if(Corr>0) L3[0]=(int)((SymbolInfoDouble(Symm1, SYMBOL_BID)/KDBase-(SymbolInfoDouble(Symm2, SYMBOL_BID)/KDHedge+KS))/0.00001);
      if(Corr<0) L3[0]=(int)((SymbolInfoDouble(Symm1,SYMBOL_BID)/KDBase-(2*AverageH-SymbolInfoDo

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

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

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

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

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

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

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