ssa of price advanced mtf tt.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ssa of price advanced mtf tt.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор на языке MQL4 для платформы MetaTrader 4, выполняющий расчёт сингулярного спектрального анализа (SSA) на данных цены. Использует внешнюю DLL-библиотеку libSSA.dll для вычислений и отображает результат в виде линий на графике. Поддерживает работу на нескольких таймфреймах (MTF) и режимы интерполяции промежуточных значений. Индикатор формирует оповещения через звук, email и мобильные уведомления при изменении направления тренда.
Настройки программы
| Настройка | Описание |
|---|---|
| History | История — Количество баров, используемых для расчёта SSA; ограничивается максимумом 5000. |
| TimeFrame | Таймфрейм — Таймфрейм, на котором выполняется расчёт SSA; автоматически корректируется до минимального из выбранного и текущего графика. |
| true; (Interpolate) | Интерполяция — Режим интерполяции промежуточных значений между барами: без интерполяции, линейная или квадратичная. |
| Lag | Задержка — Параметр задержки SSA, влияющий на сглаживание и чувствительность анализа. |
| NumberOfComps | Количество вычислений — Число итераций вычислений SSA, определяющее точность подгонки к исходному массиву данных. |
| Price | Цена — Тип цены, используемый как исходные данные для расчёта (например, цена закрытия). |
| MultiColor | Мультицвет — Включает или отключает цветовое выделение участков тренда на графике индикатора. |
| SIGNALBAR | Бар сигнала — Номер бара, на котором проверяется смена направления тренда для генерации оповещений. |
| "expert.wav"; //"stops.wav" //"alert2.wav" //"news.wav" (SoundFile) | Звуковой файл — Имя звукового файла, воспроизводимого при срабатывании оповещения о смене тренда. |
Поиск по коду файла
#import "libSSA.dll"
void fastSingular(double& sourceArray[],int arraySize, int lag, int numberOfComputationLoops, double& destinationArray[]);
#import
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 clrDeepSkyBlue //clrLimeGreen //
#property indicator_color2 clrOrangeRed //PaleVioletRed
#property indicator_color3 clrOrangeRed //PaleVioletRed
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
enum Iterpolation { intNO, /*No interpolation*/ intLinear, /*Linear Interpolation*/ intQuad /*Quadratic Interpolation*/ };
extern int History = 1888;
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT;
extern Iterpolation Interpolate = intQuad; //true;
extern int Lag = 25;
extern int NumberOfComps = 2;
extern int Price = PRICE_CLOSE;
extern bool MultiColor = true;
extern int SIGNALBAR = 0;
extern bool AlertsMessage = true, //false,
AlertsSound = true, //false,
AlertsEmail = false,
AlertsMobile = false;
extern string SoundFile = "alert2.wav"; //"expert.wav"; //"stops.wav" //"alert2.wav" //"news.wav"
#define CallMTF(BUFF,idx) iCustom(NULL,TimeFrame,IndikName,History,PERIOD_CURRENT,Interpolate, Lag,NumberOfComps,Price, MultiColor,SIGNALBAR,AlertsMessage,AlertsSound,AlertsEmail,AlertsMobile,SoundFile, BUFF, idx)
double SSA[], SSADa[], SSADb[]; string IndikName;
double trend[], Source[], Value[];
static datetime TimeBar=0; string messageUP, messageDN;
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
int start()
{
// код доступен только после оплаты
}
int n = History;
if (n > Bars) {
n = Bars;
if (ArraySize(Source)!= n) { ArrayResize(Source,n); ArrayResize(Value,n); } }
static datetime barTime;
int i, limit, CountedBars=IndicatorCounted();
if (CountedBars<0) return(-1);
if (CountedBars>0) CountedBars--;
limit = MathMin(MathMax(Bars-CountedBars,Lag),n-1);
SetIndexDrawBegin(0,Bars-n);
if (barTime!=Time[0]) {
barTime=Time[0];
limit=n-1; }
if (TimeFrame!=_Period)
{
limit = (int)fmax(limit,fmin(Bars-2,CallMTF(4,0)*TimeFrame/_Period));
if (MultiColor && trend[limit]==-1) CleanPoint(limit,SSADa,SSADb);
for (i=limit+Lag*3; i>=0; i--)
{
int y = iBarShift(NULL,TimeFrame,Time[i],false);
SSA[i] = CallMTF(0,y);
trend[i] = CallMTF(3,y);
if (Interpolate==0 || (i>0 && y==iBarShift(NULL,TimeFrame,Time[i-1]))) continue;
interpolate(SSA,TimeFrame,Interpolate,i);
} //*конец цикла* for (i=limit+MAX*3; i>=0; i--)
for (i=limit+Lag; i>=0; i--) { if (MultiColor && trend[i]==-1) PlotPoint(i,SSADa,SSADb,SSA); }
return(0);
} //*конец* if (TimeFrame!=_Period).....
for(i=limit; i>=0; i--) Source[i]=iMA(NULL,0,1,0,MODE_SMA,Price,i);
fastSingular(Source,n,Lag,NumberOfComps,Value); ArrayCopy(SSA,Value);
if (MultiColor && trend[limit]==-1) CleanPoint(limit,SSADa,SSADПоказано первые 50% кода (символов: 5831)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.