StepMA
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «stepma nmc v3.01.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
StepMA — индикатор для MetaTrader 4, рассчитывающий скользящую среднюю на основе взвешивания по нормальной функции плотности (PDF). Основная линия формируется с использованием параметров чувствительности, шага и коэффициентов PDF, а изменение тренда отображается стрелками и вспомогательными линиями.
Индикатор поддерживает работу на произвольном таймфрейме, интерполяцию значений между барами, а также комплексную систему уведомлений: всплывающие сообщения, push-уведомления, email и звуковые сигналы. Всплывающие оповещения срабатывают при смене тренда.
В качестве вспомогательных инструментов индикатор отрисовывает линии трендовых разрывов и стрелки на основе ATR(20), маркируя точки разворота. Все визуальные элементы управляются отдельными настройками, включая размер и тип стрелок.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Таймфрейм для расчёта индикатора (строковое обозначение или числовой) |
| Pdfma Length (PdfMaLength) | Длина PDFMA — Период расчёта PDF-скользящей средней |
| Sensivity Factor (Sensitivity) | Чувствительность — Множитель чувствительности шаговой средней |
| Constant Step Size (StepSize) | Размер шага — Фиксированный размер шага расчёта средней |
| Pdfma variance (Variance) | Дисперсия PDF — Дисперсия для функции плотности PDF |
| Pdfma mean (Mean) | Среднее PDF — Среднее значение для функции плотности PDF |
| OShify (Shift) | Сдвиг — Сдвиг индикаторной линии в барах |
| High/Low Mode Switch (more sensitive) (HighLow) | Режим High/Low — Переключатель режима High/Low для повышения чувствительности расчёта |
| Interpolate | Интерполяция — Включает интерполяцию значений линии между барами |
| alertsOn | Уведомления включены — Общий переключатель системы уведомлений |
| alertsOnCurrent | Уведомления по текущему бару — Уведомление по текущему бару или по предыдущему |
| alertsMessage | Всплывающие сообщения — Всплывающее сообщение при смене тренда |
| alertsNotification | Push-уведомления — Push-уведомление при смене тренда |
| alertsSound | Звуковые сигналы — Звуковой сигнал при смене тренда |
| alertsEmail | Email-уведомления — Отправка email-уведомления при смене тренда |
| ShowArrows | Показать стрелки — Отображение стрелок разворота на графике |
| arrowSize | Размер стрелок — Размер отображаемых стрелок разворота |
| uparrowCode | Код стрелки вверх — Код символа стрелки восходящего разворота |
| dnarrowCode | Код стрелки вниз — Код символа стрелки нисходящего разворота |
| ArrowsOnFirstBar | Стрелки на первом баре — Отображение стрелок на первом видимом баре |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 DeepSkyBlue
#property indicator_color2 Red
#property indicator_color3 Orange
#property indicator_color4 DeepSkyBlue
#property indicator_color5 Red
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
extern string TimeFrame = "Current time frame";
extern int PdfMaLength = 10; // Pdfma Length
extern double Sensitivity = 5; // Sensivity Factor
extern double StepSize = 2; // Constant Step Size
extern double Variance = 1; // Pdfma variance
extern double Mean = 0.0; // Pdfma mean
extern int Shift = 0; // OShify
extern bool HighLow = false; // High/Low Mode Switch (more sensitive)
extern bool Interpolate = true;
extern bool alertsOn = false;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsNotification = false;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern bool ShowArrows = true;
extern int arrowSize = 2;
extern int uparrowCode = 233;
extern int dnarrowCode = 234;
extern bool ArrowsOnFirstBar = true;
double LineBuffer[];
double DnBuffera[];
double DnBufferb[];
double arrowUp[];
double arrowDn[];
double smin[];
double smax[];
double trend[];
double _coeffs[];
string indicatorFileName;
bool returnBars;
int timeFrame;
#define maxx 3.5
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { LineBuffer[0] = limit+1; return(0); }
if (timeFrame!=Period())
{
int shift = -1; if (ArrowsOnFirstBar) shift=1;
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
if (trend[limit]==-1) CleanPoint(limit,DnBuffera,DnBufferb);
for (int i=limit; i>=0; i--)
{
int y = iBarShift(NULL,timeFrame,Time[i]);
int x = iBarShift(NULL,timeFrame,Time[i+shift]);
LineBuffer[i] = iCustom(NULL,timeFrame,indicatorFileName,"",PdfMaLength,Sensitivity,StepSize,Variance,Mean,0,HighLow,false,alertsOn,alertsOnCurrent,alertsMessage,alertsNotification,alertsSound,alertsEmail,0,y);
trend[i] = iCustom(NULL,timeFrame,indicatorFileName,"",PdfMaLength,Sensitivity,StepSize,Variance,Mean,0,HighLow,false,alertsOn,alertsOnCurrent,alertsMessage,alertsNotification,alertsSound,alertsEmail,7,y);
DnBuffera[i] = EMPTY_VALUE;
DnBufferb[i] = EMPTY_VALUE;
if(x!=y)
{
arrowUp[i] = iCustom(NULL,timeFrame,indicatorFileName,"",PdfMaLength,Sensitivity,StepSize,Variance,Mean,0,HighLow,false,alertsOn,alertsOnCurrent,alertsMessage,alertsNotification,alertsSound,alertsEmail,3,y);
arrowDn[i] = iCustom(NULL,timeFrame,indicatorFileName,"",PdfMaLength,Sensitivity,StepSize,Variance,Mean,0,HighLow,false,alertsOn,alertsOnCurrent,alertsMessage,alertsNotification,alertsSound,alertsEmail,4,y);
}
else
{
arrowUp[i] = EMPTY_VALUE;
arrowDn[i] = EMPTY_VALUE;
}
if (!Interpolate || y==iBarShift(NULL,timeFrame,Time[i-1])) continue;
int n,w;
datetime time = iTime(NULL,timeFrame,y);
for(n = 1; i+n < Bars && Time[i+n] >= time; n++) continue;
for(w = 1; w < n; w++)
LineBuffer[i+w] = LineBuffer[i] + (LineBuffer[i+n] - LineBuffer[i]) * w/n;
}
for (i=limit; i>=0; i--) if (trend[i]==-1) PlotPoint(i,DnBuffera,DnBufferb,LineBuffer);
return(0);
}
double useSize = Point*MathPow(10,MathMod(Digits,2));
if (trend[limit]==-1) CleanPoint(limit,DnBuffera,DnBufferb);
for(i=limit; i>=0; i--)
{
double thigh;
double tlow;
if (HighLow)
{ thigh=iPdfma(Low[i ] ,PdfMaLength,_coeПоказано первые 50% кода (символов: 8238)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.