← К каталогу
Исходный код · ID 1857

macd^rsi.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный индикатор отображает в отдельном окне три графика: MACD, сигнальную линию и RSI, рассчитанные на основе ценовых данных. MACD вычисляется как разность двух экспоненциальных скользящих средних с заданными периодами, а сигнальная линия строится как простая скользящая средняя от значения MACD.

Особенностью индикатора является расчёт RSI не на основе разниц цен, а на основе разностей значений MACD. Для этого используются отдельные буферы накопления положительных и отрицательных изменений, а также параметр калибра для масштабирования результата.

Индикатор использует пять буферов: три отображаемых (MACD, сигнальная линия, RSI) и два вспомогательных для промежуточных расчётов. Настройки периодов позволяют гибко управлять чувствительностью каждого компонента.

Настройки программы

НастройкаОписание
FastEMA Период быстрой экспоненциальной скользящей средней, используемой для расчёта MACD.
SlowEMA Период медленной экспоненциальной скользящей средней, используемой для расчёта MACD.
SignalSMA Период простой скользящей средней для построения сигнальной линии MACD.
RSIPeriod Период расчёта индикатора RSI, определяющий количество баров для анализа.
caliber Калибр (масштабный коэффициент) для расчёта и отображения RSI.
Получить полный код

Поиск по коду файла

#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Silver
#property  indicator_color2  Red
#property  indicator_color3 DodgerBlue
#property  indicator_width1  2

extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;

extern int RSIPeriod=14;
extern double caliber=4.0; //need for RSI caliber

double RSIBuffer[];
double PosBuffer[];
double NegBuffer[];

double     MacdBuffer[];
double     SignalBuffer[];

int init()
  {
      // код доступен только после оплаты
   }

int start()
  {
      // код доступен только после оплаты
   }
   int limit;
   int counted_bars=IndicatorCounted();
   double rel,negative,positive;

   if(counted_bars>0) counted_bars--;
   limit=B

Показано первые 50% кода (символов: 1857)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
185,70₽ ≈ $2.27