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

ssa of cci aa tt.mq5

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

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

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

О программе

Аналитический индикатор для MetaTrader 5, объединяющий индикатор Commodity Channel Index (CCI) с методом Сингулярного Спектрального Анализа (SSA) через внешнюю библиотеку libSSA.dll. SSA позволяет сгладить трендовую составляющую CCI и фильтровать шум без фазовых запаздываний. Индикатор отображает результат расчёта в отдельном подокне и рисует стрелки сигналов при пересечении заданных уровней.

Управление отображением стрелок BUY и SELL осуществляется через параметры типа переключатель и вариант настройки, включая выбор положения стрелок относительно свечей и тип отображения. При достижении условий формируются уведомления: всплывающие сообщения, звуковые сигналы, email- и мобильные уведомления.

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

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

НастройкаОписание
NumberOfBars Определяет количество исторических баров, используемых для расчёта индикатора. Максимальное значение ограничено 5000.
CCIPeriod Период расчёта индикатора Commodity Channel Index (CCI), используемого в качестве исходных данных для последующей обработки методом SSA.
Lag Параметр запаздывания (lag) для метода Сингулярного Спектрального Анализа. Определяет длину окна анализа, максимальное значение — 200.
NumberOfComputations Количество итераций вычислений SSA, влияющее на точность подгонки к исходным данным. Максимальное значение — 20.
Price Тип цены, используемой для расчёта CCI: закрытие, открытие, высокая, низкая или средняя цена свечи.
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            CCIPeriod  =  15;  //14;
extern int                  Lag  =  45;  //25;
extern int NumberOfComputations  =  5;   //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)
       {

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

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

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

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

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

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

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