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

Traders Dynamic CB SSA Norm Index

traders dynamic cb_ssa norm index-alerts+arrows(1).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), реализованном через внешнюю DLL-библиотеку libSSA.dll. Исходные данные нормализуются по скользящему среднему и стандартному отклонению, после чего применяется SSA-преобразование с заданными параметрами лага и числа вычислений.

Результат SSA обрабатывается аналогами RSI (ценовая и сигнальная линии) и волатильности (скользящие средние и доверительные полосы). Тренд определяется сравнением RSI-линий: направление меняется при пересечении сигнальной линии ценовой. На графике отображаются доверительные полосы, уровни и стрелки при смене тренда.

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

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм для анализа
SSAPrice Цена SSA — Тип цены для SSA-расчётов
SSALag Лаг SSA — Лаг параметр для SSA-преобразования
SSANumberOfComputations Число вычислений SSA — Количество циклов вычислений для SSA
SSAPeriodNormalization Период нормализации SSA — Период нормализации при расчёте SSA
SSANumberOfBars Число баров SSA — Количество баров для SSA-вычислений
RsiPriceLinePeriod Период RSI ценовой линии — Период RSI ценовой линии
RsiPriceLineMAMode Метод MA RSI ценовой линии — Метод усреднения для RSI ценовой линии
RsiSignalLinePeriod Период RSI сигнальной линии — Период RSI сигнальной линии
RsiSignalLineMAMode Метод MA RSI сигнальной линии — Метод усреднения для RSI сигнальной линии
VolatilityBandPeriod Период волатильности — Период волатильности
VolatilityBandMAMode Метод MA волатильности — Метод усреднения для волатильности
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.97