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

SSA of MFI AA TT

ssa of mfi aa tt.mq5
Вы автор или правообладатель?

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

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

О программе

Индикатор «SSA of MFI AA TT» отображает в отдельном подокне результат применения метода Сингулярного Спектрального Анализа (SSA) к индикатору Money Flow Index (MFI). Расчёт выполняется через внешнюю библиотеку libSSA.dll. Основная линия индикатора представляет собой сглаженную SSA-линию, а дополнительные буферы отображают стрелки покупочных и продажных сигналов.

Сигналы формируются при пересечении SSA-линией заданного уровня (CrossLevel) или нулевой отметки. Стрелки рисуются на указанном баре с настраиваемым отступом от ценовых экстремумов свечей. Индикатор поддерживает настройку режима отображения стрелок (скрыты, внутри, по центру, снаружи) и выбор типов отображаемых стрелок.

Индикатор оснащён системой уведомлений: всплывающие сообщения, звуковые сигналы, e-mail и push-уведомления срабатывают при появлении стрелок BUY/SELL. Параметры SSA (задержка, количество вычислений) ограничены внутренними пределами для стабильной работы.

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

НастройкаОписание
NumberOfBars Количество баров, используемых для расчёта индикатора. Максимальное значение ограничено 5000.
MFIPeriod Период расчёта индикатора Money Flow Index (MFI), используемого в качестве исходных данных для SSA.
Lag Параметр задержки (lag) для алгоритма SSA. Ограничен значением до 200. Влияет на глубину анализа.
NumberOfComputations Количество вычислительных итераций SSA, позволяющее точнее подогнать результат к исходным данным. Ограничено значением 20.
Price Тип цены, используемой при расчёте MFI (например, PRICE_CLOSE).
ShowArrowsSW Переключатель включения/отключения отрисовки стрелок BUY и SELL.
CrossLevel Уровень, при пересечении которого SSA-линией формируются стрелки. Положительное и отрицательное значения задают верхнюю и нижнюю границы фильтрации.
WhichArrows Тип отображаемых стрелок: только при пересечении нуля, только при пересечении уровня, оба типа или все сразу.
ShowArrows Режим отображения стрелок: скрыты, внутри свечей, по центру или снаружи.
ARROWBAR Номер бара, на котором отрисовываются стрелки. Значение 0 означает текущий бар (до закрытия стрелка может исчезнуть).
ArrGap Дистанция от экстремумов High/Low свечи до размещения стрелки.
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            MFIPeriod  =  12;  //14;
extern int                  Lag  =  12;  //25;
extern int NumberOfComputations  =  2;   //2;
extern ENUM_APPLIED_PRICE Price  =  PRICE_CLOSE;

extern bool        ShowArrowsSW  =  true;    
extern int           CrossLevel  =  15;                    
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;

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

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

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

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

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

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

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