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

Traders dynamic cb ssa norm index

traders_dynamic_cb_ssa_ep_norm_index_alerts+arrows_new@fxsignalpot.mq5

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

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный индикатор для MetaTrader 4 выполняет расчёт аналитического нормализованного индекса на основе сингулярного спектрального анализа (SSA), используя внешнюю библиотеку libSSA.dll. Результаты SSA дополнительно обрабатываются и отображаются в виде линий, аналогичных RSI, а также доверительных полос, рассчитываемых на основе отклонений и заданного уровня доверия.

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

Поддерживается работа на различных таймфреймах, включая режим интерполяции значений между барами старшего таймфрейма. Система уведомлений включает всплывающие сообщения, звуковые сигналы и email-рассылку.

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм, на котором работает индикатор (например, M1, H4, D1)
SSAPrice Цена SSA — Тип цены, используемой для расчёта индикатора
SSALag Лаг SSA — Параметр лага (задержки) для сингулярного спектрального анализа
SSANumberOfComputations Количество вычислений SSA — Количество вычислительных итераций для сингулярного спектрального анализа
SSAPeriodNormalization Период нормализации SSA — Период нормализации для расчёта скользящего среднего при подготовке данных SSA
SSANumberOfBars Количество баров SSA — Общее количество баров, используемых для расчёта индикатора
SSABarsToCalculate Бары для расчёта SSA — Количество баров, используемых для расчёта SSA
RsiPriceLinePeriod Период линии цены RSI — Период расчёта линии цены RSI
RsiPriceLineMAMode Метод сглаживания линии цены RSI — Метод сглаживания для линии цены RSI
RsiSignalLinePeriod Период сигнальной линии RSI — Период расчёта сигнальной линии RSI
RsiSignalLineMAMode Метод сглаживания сигнальной линии RSI — Метод сглаживания для сигнальной линии RSI
VolatilityBandPeriod Период полосы волатильности — Период расчёта полосы волатильности
VolatilityBandMAMode Метод сглаживания полосы волатильности — Метод сглаживания для полосы волатильности
ConfidenceLevel Уровень доверия — Уровень доверия для расчёта доверительных границ
ConfidenceBandsShift Смещение доверительных полос — Смещение доверительных полос относительно расчётного периода
LevelDown Нижний уровень — Значение нижнего уровня для отображения горизонтальных линий
LevelMiddle Средний уровень — Значение среднего уровня для отображения горизонтальной линии
LevelUp Верхний уровень — Значение верхнего уровня для отображения горизонтальных линий
Interpolate Интерполяция — Включает или отключает интерполяцию значений между барами при работе на старших таймфреймах
alertsOn Уведомления включены — Включает или отключает систему уведомлений
alertsOnZeroCross Уведомления при пересечении нуля — Включает уведомления при пересечении нулевого уровня
alertsOnRsiSignalCross Уведомления при пересечении сигнальной линии — Включает уведомления при пересечении сигнальной линии RSI
alertsOnCurrent Уведомления на текущем баре — Определяет, на каком баре проверять условие для уведомлений: на текущем или на предыдущем
alertsMessage Всплывающие уведомления — Включает или отключает всплывающие текстовые уведомления
alertsSound Звуковые уведомления — Включает или отключает звуковые уведомления
alertsEmail Email-уведомления — Включает или отключает отправку email-уведомлений
arrowsVisible Стрелки видимы — Включает или отключает отображение стрелок на графике
arrowsDisplacement Отступ стрелок — Отступ стрелок от цены в единицах ATR
arrowsIdentifier Идентификатор стрелок — Идентификатор объектов стрелок на графике
arrowsOnZeroCross Стрелки при пересечении нуля — Включает отображение стрелок при пересечении нулевого уровня
arrowsOnZeroCrossUpColor Цвет стрелки вверх (нуль) — Цвет стрелки вверх при пересечении нулевого уровня
arrowsOnZeroCrossDnColor Цвет стрелки вниз (нуль) — Цвет стрелки вниз при пересечении нулевого уровня
arrowsOnZeroCrossUpCode Код стрелки вверх (нуль) — Код стрелки вверх при пересечении нулевого уровня
arrowsOnZeroCrossDnCode Код стрелки вниз (нуль) — Код стрелки вниз при пересечении нулевого уровня
arrowsOnZeroCrossUpSize Размер стрелки вверх (нуль) — Размер стрелки вверх при пересечении нулевого уровня
arrowsOnZeroCrossDnSize Размер стрелки вниз (нуль) — Размер стрелки вниз при пересечении нулевого уровня
arrowsOnRsiSignalCross Стрелки при пересечении сигнальной линии — Включает отображение стрелок при пересечении сигнальной линии RSI
arrowsOnRsiSignalCrossUpColor Цвет стрелки вверх (сигнал) — Цвет стрелки вверх при пересечении сигнальной линии RSI
arrowsOnRsiSignalCrossDnColor Цвет стрелки вниз (сигнал) — Цвет стрелки вниз при пересечении сигнальной линии RSI
arrowsOnRsiSignalCrossUpCode Код стрелки вверх (сигнал) — Код стрелки вверх при пересечении сигнальной линии RSI
arrowsOnRsiSignalCrossDnCode Код стрелки вниз (сигнал) — Код стрелки вниз при пересечении сигнальной линии RSI
arrowsOnRsiSignalCrossUpSize Размер стрелки вверх (сигнал) — Размер стрелки вверх при пересечении сигнальной линии RSI
arrowsOnRsiSignalCrossDnSize Размер стрелки вниз (сигнал) — Размер стрелки вниз при пересечении сигнальной линии RSI
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers    4
#property indicator_color1     MediumSeaGreen
#property indicator_color2     MediumSeaGreen
#property indicator_color3     DeepSkyBlue
#property indicator_color4     Red
#property indicator_style4     STYLE_DASH
#property indicator_width3     1
#property indicator_levelcolor MediumOrchid

#import "libSSA.dll"
   void fastSingular(double& sourceArray[],int arraySize, int lag, int numberOfComputationLoops, double& destinationArray[]);
#import

extern string TimeFrame                     = "Current time frame";
extern int    SSAPrice                      = PRICE_CLOSE;
extern int    SSALag                        = 10;
extern int    SSANumberOfComputations       = 2;
extern int    SSAPeriodNormalization        = 20;
extern int    SSANumberOfBars               = 500;
extern int    SSABarsToCalculate            = 250;
extern int    RsiPriceLinePeriod            = 2;
extern int    RsiPriceLineMAMode            = MODE_LWMA;
extern int    RsiSignalLinePeriod           = 7;
extern int    RsiSignalLineMAMode           = MODE_LWMA;
extern int    VolatilityBandPeriod          = 10;
extern int    VolatilityBandMAMode          = MODE_LWMA;
extern double ConfidenceLevel               = 98;
extern int    ConfidenceBandsShift          = 0;
extern double LevelDown                     = -0.40;
extern double LevelMiddle                   = 0.0;
extern double LevelUp                       = 0.40;
extern bool   Interpolate                   = true;

extern bool   alertsOn                      = false;
extern bool   alertsOnZeroCross             = true;
extern bool   alertsOnRsiSignalCross        = true;
extern bool   alertsOnCurrent               = false;
extern bool   alertsMessage                 = true;
extern bool   alertsSound                   = false;
extern bool   alertsEmail                   = false;

extern bool   arrowsVisible                 = true;
extern double arrowsDisplacement            = 1.0;
extern string arrowsIdentifier              = "tdi ssa arrows";

extern bool   arrowsOnZeroCross             = true;
extern color  arrowsOnZeroCrossUpColor      = Lime;
extern color  arrowsOnZeroCrossDnColor      = Red;
extern int    arrowsOnZeroCrossUpCode       = 233;
extern int    arrowsOnZeroCrossDnCode       = 234;
extern int    arrowsOnZeroCrossUpSize       = 1;
extern int    arrowsOnZeroCrossDnSize       = 1;

extern bool   arrowsOnRsiSignalCross        = false;
extern color  arrowsOnRsiSignalCrossUpColor = Yellow;
extern color  arrowsOnRsiSignalCrossDnColor = Magenta;
extern int    arrowsOnRsiSignalCrossUpCode  = 119;
extern int    arrowsOnRsiSignalCrossDnCode  = 222;
extern int    arrowsOnRsiSignalCrossUpSize  = 1;
extern int    arrowsOnRsiSignalCrossDnSize  = 1;

double bandUp[];
double bandDown[];
double rsiPriceLine[];
double rsiSignalLine[];
double in[];
double no[];
double avg[];
double trend[];
double ssaIn[];
double ssaOut[];

double trends[][2];
#define _tzl 0
#define _tcr 1

string indicatorFileName;
bool   calculateValue;
bool   returnBars;
int    timeFrame;
double ConfidenceZ;

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

int deinit() { if (!calculateValue && arrowsVisible) deleteArrows();  return(0);}

int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
   int i,r,n,k,limit;

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
         limit = MathMin(Bars-counted_bars,Bars-1);
         if (returnBars) { bandUp[0] = limit+1; return(0); }

   if (calculateValue || timeFrame == Period())
   {
      int ssaBars = MathMin(Bars-1,SSANumberOfBars);
      for(i=limit, r=Bars-i-1; i>=0; i--, r++)
      { 
      if (ArrayRange(trends,0)!=Bars) ArrayResize(trends,Bars); 

         double ma    = iMA(NULL,0,SSAPeriodNormalization,0,MODE_SMA,SSAPrice,i);
         double dev   = iStdDev(NULL,0,SSAPeriodNormalization,0,MODE_SMA,SSAPrice,i)*3.0;
         double price = iMA(NULL,0,1,0,MODE_SMA,SSAPrice,i);
                no[i] = (price-ma)/(MathMax(dev,0.000001));
                if (i<SSABarsToCalculate)
                {
                  if (ArraySize(ssaIn) != ssaBars)
                  {
                     ArrayResize(ssaIn ,ssaBars);
                     ArrayResize(ssaOut,ssaBars);
                  }
                  ArrayCopy(ssaIn,no,0,i,ssaBars);
                     fastSingular(ssaIn,ssaBars,SSALag,SSANumberOfComputations,ssaOut);
                  in[i] = ssaOut[0];
               }                  
         }                  

         for(i=ssaBars, r=Bars-i-1; i>=0; i--, r++)
         {
             rsiPriceLine[i]  = iMAOnArray(in,0, RsiPriceLinePeriod,  0, RsiPriceLineMAMode,  i);
             rsiSignalLine[i] = iMAOnArray(in,0, RsiSignalLinePeriod, 0, RsiSignalLineMAMode, i);
             avg[i]           = iMAOnArray(in,0, VolatilityBandPeriod,0, VolatilityBandMAMode,i);
             double deviation = iDeviation(in,VolatilityBandPeriod,avg[i+ConfidenceBandsShift],i+ConfidenceBandsShift);
             double me        = ConfidenceZ*deviation/MathSqrt(VolatilityBandPeriod);

                  bandUp[i]   = avg[i+ConfidenceBandsShift] + me;
                  bandDown[i] = avg[i+ConfidenceBandsShift] - me;
                  setTrends(i,r);
                  manageArrow(i,r);
         }
      manageAlerts();
      SetIndexDrawBegin(0,Bars-MathMin(ssaBars,SSABarsToCalculate)+SSAPeriodNormalization);
      SetIndexDrawBegin(1,Bars-MathMin(ssaBars,SSABarsToCalculate)+SSAPeriodNormalization);
      SetIndexDrawBegin(2,Bars-MathMin(ssaBars,SSABarsToCalculate)+SSAPeriodNormalization);
      SetIndexDrawBegin(3,Bars-MathMin(ssaBars,SSABarsToCalculate)+SSAPeriodNormalization);
      return (0);
   }      

   limit = MathMin(Bars,SSANumberOfBars*timeFrame/Period());
   if (ArrayRange(trends,0)!=Bars) ArrayResize(trends,Bars);

    for(i=limit, r=Bars-i-1; i>=0; i--, r++)
    {
      int y = iBarShift(NULL,timeFrame,Time[i]);
         bandUp[i]        = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",SSAPrice,SSALag,SSANumberOfComputations,SSAPeriodNormalization,SSANumberOfBars,SSABarsToCalculate,RsiPriceLinePeriod,RsiPriceLineMAMode,RsiSignalLinePeriod,RsiSignalLineMAMode,VolatilityBandPeriod,VolatilityBandMAMode,ConfidenceLevel,ConfidenceBandsShift,0,y);
         bandDown[i]      = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",SSAPrice,SSALag,SSANumberOfComputations,SSAPeriodNormalization,SSANumberOfBars,SSABarsToCalculate,RsiPriceLinePeriod,RsiPriceLineMAMode,RsiSignalLinePeriod,RsiSignalLineMAMode,VolatilityBandPeriod,VolatilityBandMAMode,Co

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

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

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

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

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

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

Стоимость полного кода
1 135,80₽ ≈ $13.88