Traders dynamic cb ssa norm index
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «traders_dynamic_cb_ssa_ep_norm_index_alerts+arrows_new@fxsignalpot.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для MetaTrader 4 выполняет расчёт аналитического нормализованного индекса на основе сингулярного спектрального анализа (SSA), используя внешнюю библиотеку libSSA.dll. Результаты SSA дополнительно обрабатываются и отображаются в виде линий, аналогичных RSI, а также доверительных полос, рассчитываемых на основе отклонений и заданного уровня доверия.
Индикатор отображает четыре буфера в отдельном окне: верхнюю и нижнюю доверительные границы, линию цены RSI и сигнальную линию. Визуальные стрелки и уведомления срабатывают при пересечении нулевого уровня и пересечении сигнальной линии, помогая отслеживать изменение тренда.
Поддерживается работа на различных таймфреймах, включая режим интерполяции значений между барами старшего таймфрейма. Система уведомлений включает всплывающие сообщения, звуковые сигналы и email-рассылку.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Таймфрейм, на котором работает индикатор (например, M1, H4, D1) |
| SSAPrice | Цена SSA — Тип цены, используемой для расчёта индикатора |
| SSALag | Лаг SSA — Параметр лага (задержки) для сингулярного спектрального анализа |
| SSANumberOfComputations | Количество вычислений SSA — Количество вычислительных итераций для сингулярного спектрального анализа |
| SSAPeriodNormalization | Период нормализации SSA — Период нормализации для расчёта скользящего среднего при подготовке данных SSA |
| SSANumberOfBars | Количество баров SSA — Общее количество баров, используемых для расчёта индикатора |
| SSABarsToCalculate | Бары для расчёта SSA — Количество баров, используемых для расчёта SSA |
| RsiPriceLinePeriod | Период линии цены RSI — Период расчёта линии цены RSI |
| RsiPriceLineMAMode | Метод сглаживания линии цены RSI — Метод сглаживания для линии цены RSI |
| RsiSignalLinePeriod | Период сигнальной линии RSI — Период расчёта сигнальной линии RSI |
| RsiSignalLineMAMode | Метод сглаживания сигнальной линии RSI — Метод сглаживания для сигнальной линии RSI |
| VolatilityBandPeriod | Период полосы волатильности — Период расчёта полосы волатильности |
| VolatilityBandMAMode | Метод сглаживания полосы волатильности — Метод сглаживания для полосы волатильности |
| ConfidenceLevel | Уровень доверия — Уровень доверия для расчёта доверительных границ |
| ConfidenceBandsShift | Смещение доверительных полос — Смещение доверительных полос относительно расчётного периода |
| LevelDown | Нижний уровень — Значение нижнего уровня для отображения горизонтальных линий |
| LevelMiddle | Средний уровень — Значение среднего уровня для отображения горизонтальной линии |
| LevelUp | Верхний уровень — Значение верхнего уровня для отображения горизонтальных линий |
| Interpolate | Интерполяция — Включает или отключает интерполяцию значений между барами при работе на старших таймфреймах |
| alertsOn | Уведомления включены — Включает или отключает систему уведомлений |
| alertsOnZeroCross | Уведомления при пересечении нуля — Включает уведомления при пересечении нулевого уровня |
| alertsOnRsiSignalCross | Уведомления при пересечении сигнальной линии — Включает уведомления при пересечении сигнальной линии RSI |
| alertsOnCurrent | Уведомления на текущем баре — Определяет, на каком баре проверять условие для уведомлений: на текущем или на предыдущем |
| alertsMessage | Всплывающие уведомления — Включает или отключает всплывающие текстовые уведомления |
| alertsSound | Звуковые уведомления — Включает или отключает звуковые уведомления |
| alertsEmail | Email-уведомления — Включает или отключает отправку email-уведомлений |
| arrowsVisible | Стрелки видимы — Включает или отключает отображение стрелок на графике |
| arrowsDisplacement | Отступ стрелок — Отступ стрелок от цены в единицах ATR |
| arrowsIdentifier | Идентификатор стрелок — Идентификатор объектов стрелок на графике |
| arrowsOnZeroCross | Стрелки при пересечении нуля — Включает отображение стрелок при пересечении нулевого уровня |
| arrowsOnZeroCrossUpColor | Цвет стрелки вверх (нуль) — Цвет стрелки вверх при пересечении нулевого уровня |
| arrowsOnZeroCrossDnColor | Цвет стрелки вниз (нуль) — Цвет стрелки вниз при пересечении нулевого уровня |
| arrowsOnZeroCrossUpCode | Код стрелки вверх (нуль) — Код стрелки вверх при пересечении нулевого уровня |
| arrowsOnZeroCrossDnCode | Код стрелки вниз (нуль) — Код стрелки вниз при пересечении нулевого уровня |
| arrowsOnZeroCrossUpSize | Размер стрелки вверх (нуль) — Размер стрелки вверх при пересечении нулевого уровня |
| arrowsOnZeroCrossDnSize | Размер стрелки вниз (нуль) — Размер стрелки вниз при пересечении нулевого уровня |
| arrowsOnRsiSignalCross | Стрелки при пересечении сигнальной линии — Включает отображение стрелок при пересечении сигнальной линии RSI |
| arrowsOnRsiSignalCrossUpColor | Цвет стрелки вверх (сигнал) — Цвет стрелки вверх при пересечении сигнальной линии RSI |
| arrowsOnRsiSignalCrossDnColor | Цвет стрелки вниз (сигнал) — Цвет стрелки вниз при пересечении сигнальной линии RSI |
| arrowsOnRsiSignalCrossUpCode | Код стрелки вверх (сигнал) — Код стрелки вверх при пересечении сигнальной линии RSI |
| arrowsOnRsiSignalCrossDnCode | Код стрелки вниз (сигнал) — Код стрелки вниз при пересечении сигнальной линии RSI |
| arrowsOnRsiSignalCrossUpSize | Размер стрелки вверх (сигнал) — Размер стрелки вверх при пересечении сигнальной линии RSI |
| arrowsOnRsiSignalCrossDnSize | Размер стрелки вниз (сигнал) — Размер стрелки вниз при пересечении сигнальной линии RSI |
Поиск по коду файла
#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 SSABarsToCalculate = 250;
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 bool alertsOn = false;
extern bool alertsOnZeroCross = true;
extern bool alertsOnRsiSignalCross = true;
extern bool alertsOnCurrent = false;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern bool arrowsVisible = true;
extern double arrowsDisplacement = 1.0;
extern string arrowsIdentifier = "tdi ssa arrows";
extern bool arrowsOnZeroCross = true;
extern color arrowsOnZeroCrossUpColor = Lime;
extern color arrowsOnZeroCrossDnColor = Red;
extern int arrowsOnZeroCrossUpCode = 233;
extern int arrowsOnZeroCrossDnCode = 234;
extern int arrowsOnZeroCrossUpSize = 1;
extern int arrowsOnZeroCrossDnSize = 1;
extern bool arrowsOnRsiSignalCross = false;
extern color arrowsOnRsiSignalCrossUpColor = Yellow;
extern color arrowsOnRsiSignalCrossDnColor = Magenta;
extern int arrowsOnRsiSignalCrossUpCode = 119;
extern int arrowsOnRsiSignalCrossDnCode = 222;
extern int arrowsOnRsiSignalCrossUpSize = 1;
extern int arrowsOnRsiSignalCrossDnSize = 1;
double bandUp[];
double bandDown[];
double rsiPriceLine[];
double rsiSignalLine[];
double in[];
double no[];
double avg[];
double trend[];
double ssaIn[];
double ssaOut[];
double trends[][2];
#define _tzl 0
#define _tcr 1
string indicatorFileName;
bool calculateValue;
bool returnBars;
int timeFrame;
double ConfidenceZ;
int init()
{
// код доступен только после оплаты
}
int deinit() { if (!calculateValue && arrowsVisible) deleteArrows(); return(0);}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int i,r,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, r=Bars-i-1; i>=0; i--, r++)
{
if (ArrayRange(trends,0)!=Bars) ArrayResize(trends,Bars);
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 (i<SSABarsToCalculate)
{
if (ArraySize(ssaIn) != ssaBars)
{
ArrayResize(ssaIn ,ssaBars);
ArrayResize(ssaOut,ssaBars);
}
ArrayCopy(ssaIn,no,0,i,ssaBars);
fastSingular(ssaIn,ssaBars,SSALag,SSANumberOfComputations,ssaOut);
in[i] = ssaOut[0];
}
}
for(i=ssaBars, r=Bars-i-1; i>=0; i--, r++)
{
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;
setTrends(i,r);
manageArrow(i,r);
}
manageAlerts();
SetIndexDrawBegin(0,Bars-MathMin(ssaBars,SSABarsToCalculate)+SSAPeriodNormalization);
SetIndexDrawBegin(1,Bars-MathMin(ssaBars,SSABarsToCalculate)+SSAPeriodNormalization);
SetIndexDrawBegin(2,Bars-MathMin(ssaBars,SSABarsToCalculate)+SSAPeriodNormalization);
SetIndexDrawBegin(3,Bars-MathMin(ssaBars,SSABarsToCalculate)+SSAPeriodNormalization);
return (0);
}
limit = MathMin(Bars,SSANumberOfBars*timeFrame/Period());
if (ArrayRange(trends,0)!=Bars) ArrayResize(trends,Bars);
for(i=limit, r=Bars-i-1; i>=0; i--, r++)
{
int y = iBarShift(NULL,timeFrame,Time[i]);
bandUp[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",SSAPrice,SSALag,SSANumberOfComputations,SSAPeriodNormalization,SSANumberOfBars,SSABarsToCalculate,RsiPriceLinePeriod,RsiPriceLineMAMode,RsiSignalLinePeriod,RsiSignalLineMAMode,VolatilityBandPeriod,VolatilityBandMAMode,ConfidenceLevel,ConfidenceBandsShift,0,y);
bandDown[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",SSAPrice,SSALag,SSANumberOfComputations,SSAPeriodNormalization,SSANumberOfBars,SSABarsToCalculate,RsiPriceLinePeriod,RsiPriceLineMAMode,RsiSignalLinePeriod,RsiSignalLineMAMode,VolatilityBandPeriod,VolatilityBandMAMode,CoПоказано первые 50% кода (символов: 11358)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.