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

Traders dynamic cb ssa norm index

traders_dynamic_cb_ssa_norm_index_alerts+arrows1@lifeindreamsworld.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) ценовых данных. В отдельном окне отображаются полосы доверия, сигнальная линия и направление тренда. Индикатор поддерживает работу на любом таймфрейме с интерполяцией между барами и визуальными маркерами смены направления.

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм для расчёта индикатора или специальный режим (calculateValue/returnBars)
SSAPrice Цена SSA — Тип цены для расчёта SSA
SSALag Задержка SSA — Параметр задержки для сингулярного спектрального анализа
SSANumberOfComputations Количество вычислений SSA — Число итераций вычислений SSA
SSAPeriodNormalization Период нормализации SSA — Период скользящего среднего для нормализации данных SSA
SSANumberOfBars Количество баров SSA — Максимальное число баров для обработки SSA
RsiPriceLinePeriod Период линии цены RSI — Период скользящего среднего для линии цены индекса
RsiPriceLineMAMode Режим СМА линии цены RSI — Тип скользящего среднего для линии цены индекса
RsiSignalLinePeriod Период сигнальной линии RSI — Период скользящего среднего для сигнальной линии
RsiSignalLineMAMode Режим СМА сигнальной линии RSI — Тип скользящего среднего для сигнальной линии
VolatilityBandPeriod Период полос волатильности — Период для расчёта средней полосы волатильности
VolatilityBandMAMode Режим СМА полос волатильности — Тип скользящего среднего для полос волатильности
ConfidenceLevel Уровень доверия — Процентный уровень доверия для расчёта доверительных полос
ConfidenceBandsShift Сдвиг полос доверия — Сдвиг индекса для расчёта полос доверия
LevelDown Уровень вниз — Нижний горизонтальный уровень индикатора
LevelMiddle Уровень посередине — Центральный горизонтальный уровень индикатора
LevelUp Уровень вверх — Верхний горизонтальный уровень индикатора
Interpolate Интерполяция — Включает интерполяцию значений между барами основного таймфрейма
_ Разделитель — Разделитель группы настроек уведомлений
alertsOn Уведомления включены — Включает отправку уведомлений при изменении тренда
alertsOnCurrent Уведомления на текущем баре — Отправлять уведомление на текущем баре вместо предыдущего
alertsMessage Уведомление сообщением — Отправка алерта в окно сообщений терминала
alertsSound Звуковое уведомление — Воспроизведение звукового сигнала при изменении тренда
alertsEmail Email-уведомление — Отправка email-уведомления при изменении тренда
ShowArrows Показать стрелки — Отображение графических стрелок смены тренда на графике
arrowsIdentifier Идентификатор стрелок — Префикс имени объектов-стрелок для их идентификации
arrowsUpColor Цвет стрелок вверх — Цвет стрелки при восходящем изменении тренда
arrowsDnColor Цвет стрелок вниз — Цвет стрелки при нисходящем изменении тренда
Получить полный код

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

#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    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 string _                        = "alerts settings";
extern bool   alertsOn                 = true;
extern bool   alertsOnCurrent          = true;
extern bool   alertsMessage            = true;
extern bool   alertsSound              = false;
extern bool   alertsEmail              = false;

extern bool   ShowArrows                = true;
extern string arrowsIdentifier          = "tdi ssa arrows";
extern color  arrowsUpColor             = LimeGreen;
extern color  arrowsDnColor             = Red;

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

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

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

int deinit()
{

   if (!calculateValue && ShowArrows) deleteArrows(); 

return(0);
}

int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
   int i,j,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; i>=0; i--)
      {
         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 (ArraySize(ssaIn) != ssaBars)
         {
         ArrayResize(ssaIn ,ssaBars);
         ArrayResize(ssaOut,ssaBars);
         }
         ArrayCopy(ssaIn,no,0,0,ssaBars);
                  fastSingular(ssaIn,ssaBars,SSALag,SSANumberOfComputations,ssaOut);
         ArrayCopy(in,ssaOut);
         }                  

         for (i=limit-1; i>=0; i--)
         {
             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;
                     trend[i] = trend[i+1]; 

	       if (rsiPriceLine[i] > rsiSignalLine[i]) trend[i]= 1; 
	       if (rsiPriceLine[i] < rsiSignalLine[i]) trend[i]=-1;

          if (!calculateValue) manageArrow(i);

      }
      manageAlerts();
      return (0);
   }      

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

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

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

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

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

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

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

Стоимость полного кода
897,30₽ ≈ $10.96