extreme_tma_line_indicator.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «extreme_tma_line_indicator.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Extreme TMA Line indicator — это пользовательский индикатор для платформы MetaTrader 5, отображающий на графике линию треугольного скользящего среднего (TMA) вместе с каналом и цветовой индикацией тренда. Индикатор использует три буфера: основной TMA-график с цветовой разбивкой, а также верхняя и нижняя границы канала, рассчитанные на основе ATR.
Линия TMA рассчитывается как взвешенное среднее ценовых данных за заданный период. Ширина канала определяется умножением текущего значения ATR на заданный множитель, верхняя и нижняя границы откладываются соответственно выше и ниже TMA-линии.
Цвет линии TMA меняется в зависимости от наклона, нормализованного через ATR: при положительном наклоне выше порогового значения линия отображается одним цветом, при отрицательном — другим. Индикатор поддерживает опцию перерисовки, позволяющую учитывать текущую свечу в расчётах. Все расчёты выполняются на ценовых данных текущего таймфрейма.
Настройки программы
| Настройка | Описание |
|---|---|
| InpPeriodTMA | Период треугольного скользящего среднего (TMA), задающий количество баров, используемых при расчёте основной линии индикатора. |
| InpPeriodATR | Период расчёта индикатора ATR (Average True Range), используемого для определения волатильности и ширины канала. |
| InpMultiplierATR | Множитель ATR, определяющий ширину канала вокруг линии TMA. Умножает текущее значение ATR для расчёта верхней и нижней границ канала. |
| InpThreshold | Пороговое значение наклона для определения направления тренда. Нормализованный наклон TMA-линии сравнивается с этим порогом для выбора цвета отображения. |
| InpRedraw | Переключатель перерисовки. При включении индикатор учитывает текущую незавершённую свечу при расчёте TMA-линии, при выключении — только завершённые свечи. |
Поиск по коду файла
#property version "1.00"
#property description "Extreme TMA Line indicator"
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_plots 3
#property indicator_label1 "TMA"
#property indicator_type1 DRAW_COLOR_LINE
#property indicator_color1 clrGreen,clrRed,clrDarkGray
#property indicator_style1 STYLE_SOLID
#property indicator_width1 2
#property indicator_label2 "Top"
#property indicator_type2 DRAW_LINE
#property indicator_color2 clrDarkGray
#property indicator_style2 STYLE_SOLID
#property indicator_width2 1
#property indicator_label3 "Bottom"
#property indicator_type3 DRAW_LINE
#property indicator_color3 clrDarkGray
#property indicator_style3 STYLE_SOLID
#property indicator_width3 1
enum ENUM_INPUT_YES_NO
{
INPUT_YES = 1, // Yes
INPUT_NO = 0 // No
};
input uint InpPeriodTMA = 56; // TMA period
input uint InpPeriodATR = 100; // ATR period
input double InpMultiplierATR = 2.0; // ATR multiplier
input double InpThreshold = 0.5; // Trend threshold
input ENUM_INPUT_YES_NO InpRedraw = INPUT_YES; // Redraw
double BufferTMA[];
double BufferColors[];
double BufferTop[];
double BufferBottom[];
double BufferATR[];
double multiplier;
double threshold;
int period_tma;
int period_atr;
int period_max;
int handle_atr;
int OnInit()
{
// код доступен только после оплаты
}
period_tma=int(InpPeriodTMA<1 ? 1 : InpPeriodTMA);
period_atr=int(InpPeriodATR<1 ? 1 : InpPeriodATR);
period_max=fmax(period_atr,period_tma);
multiplier=InpMultiplierATR;
threshold=InpThreshold;
SetIndexBuffer(0,BufferTMA,INDICATOR_DATA);
SetIndexBuffer(1,BufferColors,INDICATOR_COLOR_INDEX);
SetIndexBuffer(2,BufferTop,INDICATOR_DATA);
SetIndexBuffer(3,BufferBottom,INDICATOR_DATA);
SetIndexBuffer(4,BufferATR,INDICATOR_CALCULATIONS);
IndicatorSetString(INDICATOR_SHORTNAME,"Extreme TMA Line ("+(string)period_tma+","+(string)period_atr+","+DoubleToString(multiplier,1)+","+DoubleToString(threshold,2)+")");
IndicatorSetInteger(INDICATOR_DIGITS,Digits());
ArraySetAsSeries(BufferTMA,true);
ArraySetAsSeries(BufferColors,true);
ArraySetAsSeries(BufferTop,true);
ArraySetAsSeries(BufferBottom,true);
ArraySetAsSeries(BufferATR,true);
ResetLastEПоказано первые 50% кода (символов: 3572)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.