Traders dynamic cb ssa norm index
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «traders_dynamic_cb_ssa_norm_index_alerts+arrows1@lifeindreamsworld.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор MetaTrader 4 рассчитывает нормализованный индекс на основе сингулярного спектрального анализа (SSA) ценовых данных. В отдельном окне отображаются полосы доверия, сигнальная линия и направление тренда. Индикатор поддерживает работу на любом таймфрейме с интерполяцией между барами и визуальными маркерами смены направления.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Таймфрейм для расчёта индикатора или специальный режим (calculateValue/returnBars) |
| SSAPrice | Цена SSA — Тип цены для расчёта SSA |
| SSALag | Задержка SSA — Параметр задержки для сингулярного спектрального анализа |
| SSANumberOfComputations | Количество вычислений SSA — Число итераций вычислений SSA |
| SSAPeriodNormalization | Период нормализации SSA — Период скользящего среднего для нормализации данных SSA |
| SSANumberOfBars | Количество баров SSA — Максимальное число баров для обработки SSA |
| RsiPriceLinePeriod | Период линии цены RSI — Период скользящего среднего для линии цены индекса |
| RsiPriceLineMAMode | Режим СМА линии цены RSI — Тип скользящего среднего для линии цены индекса |
| RsiSignalLinePeriod | Период сигнальной линии RSI — Период скользящего среднего для сигнальной линии |
| RsiSignalLineMAMode | Режим СМА сигнальной линии RSI — Тип скользящего среднего для сигнальной линии |
| VolatilityBandPeriod | Период полос волатильности — Период для расчёта средней полосы волатильности |
| VolatilityBandMAMode | Режим СМА полос волатильности — Тип скользящего среднего для полос волатильности |
| 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.