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

DuettoFX Mod

duettofx_mod.mq5

Похожие материалы по тегам

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

DuettoFX Mod — это пользовательский индикатор для MetaTrader 5, сравнивающий два валютных инструмента на основе RSI или стохастика. Индикатор рассчитывает нормализованную разницу (спред) между двумя аналитическими линиями и отображает её в виде гистограмм и линий на отдельном окне графика.

Индикатор предоставляет текстовую панель с информацией о корреляции между парами, среднем дневном диапазоне (ADR), размере лота и текущем спреде. Также доступны визуальные перекрёстки и метки для отслеживания точек пересечения двух инструментов.

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

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

НастройкаОписание
SetupIndicator Тип аналитического индикатора: RSI или стохастик
period Период расчёта основного индикатора
instrument_1 Символ первого инструмента для сравнения
instrument_2 Символ второго инструмента для сравнения
smoothing Количество баров для усреднения значений индикатора
first_pair_lot Размер лота для первой пары
show_spread Отображение линии нормализованного спреда
show_spread_ma Отображение линии скользящей средней спреда
MA_period Период скользящей средней для линии спреда
MA_mode Метод скользящей средней для расчёта линии спреда
show_text_interface Отображение текстовой информационной панели
show_crosses Отображение вертикальных линий пересечения инструментов
bar Смещение бара для определения точек пересечения
show_labels Отображение текстовых меток текущих значений
text_size Размер шрифта для текстовых меток и панели
text_font Шрифт для текстовых меток и панели
Получить полный код

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

???//+------------------------------------------------------------------+

#property description "modif. by Mobidik /2018.06.10/"

#property indicator_separate_window

#property indicator_buffers 8
#property indicator_color1 C'0x40,0x00,0x00'
#property indicator_color2 clrBlack
#property indicator_color3 C'0x00,0x40,0x00'
#property indicator_color4 clrBlack
#property indicator_color5 clrWhite
#property indicator_color6 clrGold
#property indicator_color7 clrBlue
#property indicator_color8 clrRed

#property indicator_width1 10
#property indicator_width2 10
#property indicator_width3 10
#property indicator_width4 10
#property indicator_width5 2
#property indicator_width6 2
#property indicator_width7 2

#property indicator_level1 50.0

#property indicator_levelcolor clrMediumTurquoise

enum enm
 {
   RS,  // RSI
   ST   // Stochastic
 };

extern enm    SetupIndicator      = 0; 
extern int    period              = 120;
extern string instrument_1        = "EURUSD";
extern string instrument_2        = "GBPUSD";
extern int    smoothing           = 2;
extern double first_pair_lot      = 1.0;
extern bool   show_spread         = TRUE;
extern bool   show_spread_ma      = FALSE;
extern int    MA_period           = 24;
extern ENUM_MA_METHOD MA_mode     = 2;
extern bool   show_text_interface = TRUE;
extern bool   show_crosses        = false;
extern int    bar                 = 1;
extern bool   show_labels         = TRUE;
extern int    text_size           = 10;
extern string text_font           = "Segoe UI";

double gda_152[];
double gda_156[];
double gda_160[];
double gda_164[];
double Instr_1[];
double Instr_2[];
double gda_176[];
double gda_180[];
int    gi_184;
double gd_188;
int    gi_196;
string gs_200;
int    gi_208;
int    gi_212;
double gd_216;
double gd_224;
double gd_232;
double gd_240;
double gd_248;
double gd_256;
double gd_264;
double gd_272;
double gd_280;
int    gi_288 = Blue;
string PREFIX = "DuettoFX - ";
bool   gi_300 = FALSE;
string indnm = "";

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

void OnDeinit(const int reason)  
  { 
    ObjectsDeleteAll(0,PREFIX,-1,-1);
    Comment("");
  }

int start() 
{
      // код доступен только после оплаты
   }
   double ld_12;
   string name_b;
   string name_s;
   int    li_36;
   int    li_40;

   gi_196 = WindowFind(indnm);

   int li_4 = IndicatorCounted();

   if (Bars <= period) return (0);

   if (li_4 < 1) 
    {
      for (int i = 1; i <= period; i++)
       {
         gda_152[Bars - i] = 0.0;
         gda_156[Bars - i] = 0.0;
         gda_160[Bars - i] = 0.0;
         gda_164[Bars - i] = 0.0;
         Instr_1[Bars - i] = 0.0;
         Instr_2[Bars - i] = 0.0;
         gda_176[Bars - i] = 0.0;
         gda_180[Bars - i] = 0.0;
       }
    }

   i = Bars - period - 1;

   if(li_4 >= period) i = Bars - li_4 - 1;

   while(i >= 0)
    {
      Instr_1[i] = 0;
      Instr_2[i] = 0;

      for(int li_8 = 0; li_8 < smoothing; li_8++)
       {
         if(SetupIndicator==0)
          {
            Instr_1[i] += iRSI(instrument_1, 0, period, PRICE_CLOSE, i + li_8);
            Instr_2[i] += iRSI(instrument_2, 0, period, PRICE_CLOSE, i + li_8);
          }else{
            Instr_1[i] += iStochastic(instrument_1,0,period,1,1,MODE_SMA,0,MODE_MAIN,i+li_8);
            Instr_2[i] += iStochastic(instrument_2,0,period,1,1,MODE_SMA,0,MODE_MAIN,i+li_8);
          }               
       }

      Instr_1[i] = Instr_1[i] / smoothing;
      Instr_2[i] = Instr_2[i] / smoothing;

      gda_176[i] = Instr_1[i] - Instr_2[i] + 50.0;

      ld_12 = Instr_1[i] - Instr_2[i];

      if(ld_12 > 0.0) 
       {
         gda_156[i] = Instr_1[i];
         gda_164[i] = Instr_2[i];
         gda_152[i] = EMPTY_VALUE;
         gda_160[i] = EMPTY_VALUE;
       }else{
         gda_156[i] = EMPTY_VALUE;
         gda_164[i] = EMPTY_VALUE;
         gda_152[i] = Instr_2[i];
         gda_160[i] = Instr_1[i];
       }

      if(Instr_1[i+1+bar] < Instr_2[i+1+bar] && Instr_1[i+bar] > Instr_2[i+bar])
       {
         name_b = PREFIX+instrument_1+instrument_2+"BUY"+((Time[i+bar]));

         if (show_crosses)
          {
            ObjectCreate    (0,name_b, OBJ_VLINE, 0, Time[i+bar], 0);
            ObjectSetInteger(0,name_b, OBJPROP_BACK, 0);
            ObjectSetInteger(0,name_b, OBJPROP_TIME1, Time[i+bar]);
            ObjectSetInteger(0,name_b, OBJPROP_COLOR, Green);
            ObjectSetInteger(0,name_b, OBJPROP_STYLE, STYLE_DOT);
          }
         gi_208 = iTime(Symbol(), 0, i + bar);
       }

      if(Instr_1[i+1+bar] > Instr_2[i+1+bar] && Instr_1[i+bar] < Instr_2[i+bar])
       {
         name_s = PREFIX+instrument_1+instrument_2+"SELL"+((Time[i+bar]));

         if(show_crosses)
          {
            ObjectCreate    (0,name_s, OBJ_VLINE, 0, Time[i+bar],0);
            ObjectSetInteger(0,name_s, OBJPROP_BACK, 0);
            ObjectSetInteger(0,name_s, OBJPROP_TIME1, Time[i+bar]);
            ObjectSetInteger(0,name_s, OBJPROP_COLOR, Maroon);
            ObjectSetInteger(0,name_s, OBJPROP_STYLE, STYLE_DOT);
          }
  

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

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

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

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

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

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

Стоимость полного кода
891,10₽ ≈ $10.89