StepMA_3D
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «stepma_3d_v4.1 600+.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
StepMA_3D — это пользовательский индикатор для MetaTrader 5, рассчитывающий три линии (быструю, медленную и среднюю) на основе алгоритма Step Moving Average. Индикатор использует волатильность актива для определения размера шага, что позволяет адаптивно отслеживать изменения тренда. Линии отображаются на графике цены с возможностью горизонтального смещения.
Индикатор поддерживает два режима расчёта — новый и старый метод, а также три способа оценки волатильности: ATR, WATR и средний ценовой диапазон. Встроенная функция позволяет анализировать данные на старшем таймфрейме, отображая результаты на графике текущего таймфрейма через вызов iCustom.
StepMA_3D поддерживает различные типы цен, включая стандартные (Close, Open, High, Low) и цены Heikin Ashi. Параметр MinStep позволяет фильтровать малые изменения линий, а параметр ShowStepSize включает отображение текущих значений размеров шагов в комментариях к графику.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм, на котором рассчитываются данные индикатора |
| Price | Тип цены для расчёта индикатора, включая стандартные и Heikin Ashi варианты |
| Length | Длина периода оценки для расчёта волатильности и шага moving average |
| MinStepSize | Минимальный размер шага в пипсах, ограничивающий нижнюю границу волатильности |
| MaxStepSize | Максимальный размер шага в пипсах, ограничивающий верхнюю границу волатильности |
| Multiplier | Множитель волатильности, управляющий масштабом расчётного шага |
| MinStep | Минимальный шаг в пипсах, ниже которого изменения линий игнорируются |
| MinDisplace | Горизонтальное смещение быстрой линии в барах |
| MidDisplace | Горизонтальное смещение средней линии в барах |
| MaxDisplace | Горизонтальное смещение медленной линии в барах |
| StepMAMode | Режим алгоритма StepMA: новый метод или старый метод расчёта |
| VoltyMode | Режим расчёта волатильности: ATR, WATR или средний ценовой диапазон |
| ShowStepSize | Переключатель отображения текущих значений размеров шагов в комментариях на графике |
Поиск по коду файла
???//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 clrYellowGreen
#property indicator_color2 clrDodgerBlue
#property indicator_color3 clrCoral
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
enum ENUM_PRICE
{
close, // Close
open, // Open
high, // High
low, // Low
median, // Median
typical, // Typical
weightedClose, // Weighted Close
heikenAshiClose, // Heiken Ashi Close
heikenAshiOpen, // Heiken Ashi Open
heikenAshiHigh, // Heiken Ashi High
heikenAshiLow, // Heiken Ashi Low
heikenAshiMedian, // Heiken Ashi Median
heikenAshiTypical, // Heiken Ashi Typical
heikenAshiWeighted // Heiken Ashi Weighted Close
};
enum ENUM_STEPMAMODE
{
newmode, // New method
oldmode // Old method
};
enum ENUM_VOLTYMODE
{
atr, // ATR
watr, // WATR
range // Average Price Range
};
input ENUM_TIMEFRAMES TimeFrame = 0; //
input ENUM_PRICE Price = 0; // Price
input int Length = 10; // Length of evaluation
input double MinStepSize = 0; // Min Step Size in pips
input double MaxStepSize = 0; // Max Step Size in pips
input double Multiplier = 1; // Volatility's Factor or Multiplier
input double MinStep = 0; // Min Step in pips
input int MinDisplace = 0; // Fast Line DispLace or Shift in bars
input int MidDisplace = 0; // Middle Line DispLace or Shift in bars
input int MaxDisplace = 0; // Slow Line DispLace or Shift in bars
input ENUM_STEPMAMODE StepMAMode = 0; // StepMA Algorithm Mode
input ENUM_VOLTYMODE VoltyMode = 0; // Volatility Mode
input bool ShowStepSize = false;
double fastLine[];
double slowLine[];
double midLine[];
double iprice[];
int timeframe, draw_begin;
double _point, sizes[3];
string short_name, IndicatorName, TF;
datetime prevtime[3];
int OnInit()
{
// код доступен только после оплаты
}
int deinit() { Comment(""); return(0); }
int start()
{
// код доступен только после оплаты
}
int steptrend[3][2];
double smax[3][2], smin[3][2];
double StepMA(int index,double& price[],int length,double mult,int voltymode,int bar)
{
if(prevtime[index] != Time[bar])
{
smin[index][1] = smin[index][0];
smax[index][1] = smax[index][0];
steptrend[index][1] = steptrend[index][0];
atrmax[index][1] = atrmax[index][0];
atrmin[index][1] = atrmin[index][0];
prevtime[index] = Time[bar];
}
if(bar > Bars - length - 1) return(0);
if(length > 0)
{
double alpha, sumRange = 0, weight = 0;
for (int i=length-1;i>=0;i--)
{
switch(voltymode)
{
case 0: alpha = 1;
sumRange += MathAbs(High[bar+i] - Low[bar+i]);
break;
case 1: alpha = (length - i)/(1.0*length);
sumRange += alpha*MathAbs(High[bar+i] - Low[bar+i]);
break;
case 2: alpha = 1;
sumRange += MathAbs(price[bar+i] - price[bar+i+1]);
break;
Показано первые 50% кода (символов: 10510)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.