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

Delta3MCH

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

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

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

О программе

Delta3MCH — пользовательский индикатор для MetaTrader 4, отображаемый в отдельном окне. Он рассчитывает и показывает соотношения между тремя заданными валютными инструментами: базовым символом, вторым символом и кросс-курсом. Индикатор строит линии разностей между этими инструментами и может отображать канал дельт для первых двух символов.

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

Индикатор работает на выбранном таймфрейме расчёта и периодически пересчитывает данные на заданном периоде перерасчёта. Количество баров для расчёта задаётся пользователем.

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

НастройкаОписание
Triangle Включает отображение линий треугольника, соответствующих разностям между символами.
Sym1 Задаёт имя первого валютного инструмента, используемого в расчётах.
Sym2 Задаёт имя второго валютного инструмента, используемого в расчётах.
Sym3 Задаёт имя кросс-курса, образованного первым и вторым символами.
ShowMax Включает отображение линий канала дельт для первого и второго символов.
BarsCount Задаёт количество баров, используемых для расчёта значений индикатора.
TF Задаёт таймфрейм, на котором выполняется расчёт значений индикатора.
TF1 Задаёт период, по которому выполняется перерасчёт данных индикатора.
Alerts Включает выдачу текстовых уведомлений при достижении пороговых уровней сигнала.
SigMax Задаёт максимальный уровень сигнала в процентах, при достижении которого срабатывает уведомление.
SigMin Задаёт минимальный уровень сигнала в процентах, при котором срабатывает уведомление.
Sound Включает воспроизведение звукового файла при срабатывании сигнала.
Получить полный код

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

#property description "Delta3MCH"
#property version   "1.20"
#property strict
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 clrGreen
#property indicator_color2 clrRed
#property indicator_color3 clrYellow
#property indicator_color4 clrMagenta
#property indicator_color5 clrMagenta
#property indicator_level1 0

extern bool   Triangle=true; //Включить треугольник
extern string Sym1="EURUSD"; //Символ 1
extern string Sym2="USDCHF"; //Символ 2
extern string Sym3="EURCHF"; //Кросс символов 1 и 2
extern bool   ShowMax=true;  //Включить канал дельт символов 1 и 2
extern int    BarsCount=300; //Количество баров расчета
extern ENUM_TIMEFRAMES TF=PERIOD_CURRENT;  //Таймфрейм расчета
extern ENUM_TIMEFRAMES TF1=PERIOD_CURRENT; //Период перерасчета
extern bool   Alerts=false;  //Включить сигналы
extern int    SigMax=80;     //Максимальный уровень сигнала в %
extern int    SigMin=10;     //Минимальный уровень сигнала в %
extern bool   Sound=false;   //Включить звуковое оповещение
double L1[];
double L2[];
double L3[];
double L4[];
double L5[];
double L6[];
double DP[];
double DM[];
double BaseOpen[],BaseHigh[],BaseLow[],BaseClose[];
double HedgeOpen[],HedgeHigh[],HedgeLow[],HedgeClose[];
double corr=0.0,corr2=0.0;
datetime Told=0;
double DMP=0.0,DMM=0.0;
int Percent=0;
bool alert=false;
int IndxDMP=-1,IndxDMM=-1;

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(Told!=iTime(_Symbol,TF1,0)) {KN(Sym1,Sym2,Sym3); corr=Cor(Sym1,Sym2); corr2=Cor(Sym1,Sym3); Told=iTime(_Symbol,TF1,0); IndxDMP=-1; IndxDMM=-1;}
   IndicatorShortName("Correlation "+DoubleToString(corr,2)+" | DELTA "+Sym1+" / "+Sym2+" = "+Sym3+" | ");

   for(int i=BarsCount-1; i>=0; i--)
     {
      L4[i]=iClose(Sym1,TF,i)/KDBase;
      if(corr>0) L5[i]=iClose(Sym2,TF,i)/KDHedge1+K1;
      if(corr<0) L5[i]=2*AverageH1-iClose(Sym2,TF,i)/KDHedge1+K1;
      if(corr2>0) L6[i]=iClose(Sym3,TF,i)/KDHedge2+K2;
      if(corr2<0) L6[i]=2*AverageH2-iClose(Sym3,TF,i)/KDHedge2+K2;
      L1[i]=(int)((L4[i]-L6[i])/0.00001);
      L2[i]=(int)((L5[i]-L6[i])/0.00001);
      L3[i]=(int)((L4[i]-L5[i])/0.00001);
      if(DMP<L3[i]) {DMP=L3[i]; IndxDMP=i;}
      if(DMM>L3[i]) {DMM=L3[i]; IndxDMM=i;}
     }

   for(int i=BarsCount-1; i>=0; i--) {DP[i]=DMP; DM[i]=DMM;}

   int win=WindowFind("Correlation "+DoubleToString(corr,2)+" | DELTA "+Sym1+" / "+Sym2+" = "+Sym3+" | ");//Alert(win);
   if(ObjectFind(0,"Max")>0) ObjectDelete(0,"Max");
   if(ObjectFind(0,"Min")>0) ObjectDelete(0,"Min");
   if(ObjectFind(0,"Per")>0) ObjectDelete(0,"Per");
   ObjectCreate(0,"Max",OBJ_LABEL,win,TimeCurrent(),DMP);
   ObjectSetText("Max","                    MAX "+DoubleToStr(DMP,0),9,"Arial Bold",clrMagenta);
   ObjectSet("Max",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
   ObjectSet("Max",OBJPROP_XDISTANCE,10);
   ObjectSet("Max",OBJPROP_YDISTANCE,5);
   ObjectCreate(0,"Min",OBJ_LABEL,win,TimeCurrent(),DMM+(int)MathAbs(DMM/100*21));
   ObjectSetText("Min","                    MIN "+DoubleToStr(DMM,0),9,"Arial B

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

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

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

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

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

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

Стоимость полного кода
833,90₽ ≈ $10.19