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

ssa of rvi aa tt.mq5

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

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

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

О программе

Данный индикатор для MetaTrader 5 объединяет индикатор Относительной Энергии (RVI) с сингулярным спектральным анализом (SSA) через внешнюю библиотеку libSSA.dll. Сначала вычисляется значение RVI, затем оно обрабатывается алгоритмом SSA для сглаживания шума и выделения тренда, после чего результат отображается в виде линии в отдельном подокне.

Индикатор генерирует графические сигналы-стрелки BUY и SELL при пересечении SSA-линией заданного уровня или нулевой отметки. Доступны настройки типов стрелок, их расположения на графике и визуальных параметров.

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

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

НастройкаОписание
NumberOfBars Максимальное количество баровых данных, используемых для расчёта индикатора. Ограничено значением 5000.
RVIPeriod Период расчёта индикатора Относительной Энергии (RVI).
Lag Параметр задержки (лаг) для алгоритма сингулярного спектрального анализа (SSA). Ограничен значением до 200.
NumberOfComputations Количество итераций вычислений SSA для уточнения результата. Ограничено значением 20.
Price Тип цены, используемой для расчёта индикатора RVI.
ShowArrowsSW Переключатель включения и отключения отображения стрелок сигналов BUY/SELL на графике.
CrossLevel Пороговое значение уровня для генерации сигналов при пересечении SSA-линией заданных положительных и отрицательных границ.
WhichArrows Тип отображаемых стрелок: только при пересечении нулевой линии, только при пересечении уровня, или все стрелки.
ShowArrows Режим размещения стрелок на графике: скрыты, снаружи свечей, внутри свечей или по центру.
ARROWBAR Номер бара, на котором отображается стрелка сигнала. Значение 0 означает отображение на текущем баре (до закрытия может исчезнуть).
ArrGap Расстояние от стрелки до верхней или нижней точки свечи.
SIGNALBAR Номер бара, на котором фиксируется сигнал для проверки и отправки уведомлений.
Получить полный код

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

#property description "Индикатор работает с библиотекой libSSA.dll"
#property description "^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^"
#property description "Moving Average на основе  метода Сингулярного Спектрального Анализа [SSA]." 
#property description "Параметры SSA позволяют сгладить выделенный тренд,"
#property description "и установить порог фильтрации шума. SSA не имеет фазовых запаздываний," 
#property description "в отличие от методов обычной фильтрации и сглаженной MA."
#property description " "
#property description "SSA перерисовывается!!!"  //"НЕ перерисовывается! в режиме MTF." 
#property description " "  //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "
#property description "Почта:  t*******e*@mail.ru" 
#property version  "2.92"

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

#property indicator_separate_window
#property indicator_buffers 3

#property indicator_color1  clrLime   //Goldenrod
#property indicator_color2  clrWhite  //LightSteelBlue
#property indicator_color3  clrRed    //MediumOrchid

#property indicator_width1  2
#property indicator_width2  0
#property indicator_width3  0

#property indicator_style1  STYLE_DASH
#property indicator_style2  STYLE_DOT
#property indicator_style3  STYLE_DOT

#property indicator_levelcolor clrDimGray  //White
#property indicator_levelstyle STYLE_DOT

enum arrows { ArrowsOFF, arCrossZero, arCrossLev, allArrows };
enum showAR { HideArrows, INSIDE, CENTER, OUTSIDE };  //enum showAR { aDoNotCALC, HideArrows, aOnCHART, aOnINDIK }; 

extern int         NumberOfBars  =  1234;
extern int            RVIPeriod  =  9;  //14;
extern int                  Lag  =  27;  //25;
extern int NumberOfComputations  =  3;   //2;
extern ENUM_APPLIED_PRICE Price  =  PRICE_CLOSE;

extern bool        ShowArrowsSW  =  true;    
extern int           CrossLevel  =  100;                    
extern arrows       WhichArrows  =  allArrows;   //arCrossLev;  //arCrossSignal;  //CrossZero;  //     
extern showAR        ShowArrows  =  OUTSIDE;   //IN      
extern int             ARROWBAR  =  0;   //На каком баре рисовать Стрелку: =0 - рисовать на текущем (до закрытия - может исчезнуть)
extern int               ArrGap  =  5;   //Дистанция от High/Low свечи  
extern color           ColorBUY  =  clrWhite,  //LightCyan,   //Aqua,  // //DarkTurquoise,  //LimeGreen,  //FireBrick,   //Aqua,  //
                       ColorSEL  =  clrRed;    //Magenta;   //Gold;  // //HotPink;  //Orange;   //SlateBlue;   //DodgerBlue;   //Lavender;  //Gold;  //
extern int              CodeBUY  =  233,
                        CodeSEL  =  234,  
                        ArrSize  =  1;        

extern int            SIGNALBAR  =  1;
extern bool       AlertsMessage  =  true,   //false,    
                    AlertsSound  =  true,   //false,
                    AlertsEmail  =  false,
                   AlertsMobile  =  false;
extern string          SoundBUY  =  "news.wav",
                      SoundSELL  =  "expert.wav";    //"alert2.wav";  //"expert.wav";   //"stops.wav"   //"alert2.wav"   //"news.wav";   //

double SSA[], ARRUP[], ARRDN[], sourceValues[], calcValues[];        
int ARB, SGB;    string PREF;    datetime TimeBar=0;  

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

int deinit()  { ALL_OBJ_DELETE();  Comment("");  return(0); }

void ALL_OBJ_DELETE()
{
   string name;
   for (int s=ObjectsTotal()-1; s>=0; s--) {
        name=ObjectName(s);
        if (StringSubstr(name,0,StringLen(PREF))==PREF) ObjectDelete(name); }
}  

datetime LastBarOpenTime=0; 

bool NewBarTF(int period) 
{
   datetime BarOpenTime=iTime(NULL,period,0);
   if (BarOpenTime!=LastBarOpenTime) {
       LastBarOpenTime=BarOpenTime;
       return (true); } 
   else 
       return (false);
}

int start()
{
      // код доступен только после оплаты
   }
   static datetime barTime;
   int i, n, limit, CountedBars=IndicatorCounted();

   n = NumberOfBars;
      if (n > Bars)
       {
        n = Bars;
        if (ArraySize(s

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

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

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

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

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

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

Стоимость полного кода
818,20₽ ≈ $10.00