Parabolic Marsi Adaptive MACD
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «parabolic marsi adaptive macd.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Parabolic Marsi Adaptive MACD — это пользовательский индикатор для MetaTrader 4, отображаемый в отдельном окне. Он строит адаптивную MACD-линию на основе двух RSI-периодов с настраиваемыми параметрами скорости и цены расчёта, а также добавляет к ней сигнальную линию, рассчитываемую выбранным методом скользящей средней.
Индикатор рисует гистограммы, цвет и толщину линий которых зависят от знака MACD и направления его изменения. Также на графике отображаются точки параболического SAR, применённого к MACD-линии, с отдельными буферами для восходящих и нисходящих значений.
Все расчёты выполняются на каждом тике при обновлении ценовых данных. Внутренняя логика использует пользовательские реализации скользящих средних (SMA, EMA, SMMA, LWMA, TEMA) и RSI-сглаженных Moving Average для формирования итоговых значений индикатора.
Настройки программы
| Настройка | Описание |
|---|---|
| First rsi period (RsiPeriod1) | Период RSI 1 — Первый период RSI, используемый при расчёте адаптивной MACD-линии. |
| First rsi speed (Speed1) | Скорость 1 — Коэффициент скорости сглаживания для первого RSI-адаптивного компонента. |
| First rsi price (RsiPrice1) | Цена RSI 1 — Тип цены для расчёта первого RSI (например, Close, Open, High, Low и др.). |
| Second rsi period (RsiPeriod2) | Период RSI 2 — Второй период RSI, используемый при расчёте адаптивной MACD-линии. |
| Second rsi speed (Speed2) | Скорость 2 — Коэффициент скорости сглаживания для второго RSI-адаптивного компонента. |
| Second rsi price (RsiPrice2) | Цена RSI 2 — Тип цены для расчёта второго RSI (например, Close, Open, High, Low и др.). |
| Signal period (SignalPeriod) | Период сигнальной средней — Период сигнальной скользящей средней. |
| Signal average type (SignalMethod) | Метод сигнальной средней — Тип скользящей средней, используемой для построения сигнальной линии (SMA, EMA, SMMA, LWMA, TEMA). |
| Accumulation step (AccStep) | Шаг ускорения SAR — Шаг увеличения коэффициента ускорения параболического SAR (Accumulation step). |
| Accumulation limit (AccLimit) | Предел ускорения SAR — Максимальный коэффициент ускорения параболического SAR (Accumulation limit). |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 10
#property indicator_color1 clrLimeGreen
#property indicator_color2 clrLimeGreen
#property indicator_color3 clrPaleVioletRed
#property indicator_color4 clrPaleVioletRed
#property indicator_color5 clrDimGray
#property indicator_color6 clrGold
#property indicator_color7 clrBlue
#property indicator_color8 clrRed
#property indicator_color9 clrBlue
#property indicator_color10 clrRed
#property indicator_width1 2
#property indicator_width3 2
#property indicator_width5 2
#property indicator_width6 2
#property indicator_width9 3
#property indicator_width10 3
#property strict
enum enMaTypes
{
ma_sma, // Simple moving average
ma_ema, // Exponential moving average
ma_smma, // Smoothed MA
ma_lwma, // Linear weighted MA
ma_tema // Triple exponential moving average - TEMA
};
extern int RsiPeriod1 = 14; // First rsi period
extern double Speed1 = 1.2; // First rsi speed
extern ENUM_APPLIED_PRICE RsiPrice1 = PRICE_CLOSE; // First rsi price
extern int RsiPeriod2 = 34; // Second rsi period
extern double Speed2 = 0.8; // Second rsi speed
extern ENUM_APPLIED_PRICE RsiPrice2 = PRICE_CLOSE; // Second rsi price
extern int SignalPeriod = 9; // Signal period
extern enMaTypes SignalMethod = ma_sma; // Signal average type
extern double AccStep = 0.01; // Accumulation step
extern double AccLimit = 0.1; // Accumulation limit
double machuu[];
double machud[];
double machdd[];
double machdu[];
double macd[];
double signal[];
double sarUp[];
double sarDn[];
double saraUp[];
double saraDn[];
double slope[];
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
double workMaRsi[][6];
double iMaRsi(int price, int rsiPeriod, double speed, int i, int instanceNo=0)
{
if (ArrayRange(workMaRsi,0)!=Bars) ArrayResize(workMaRsi,Bars); int r = Bars-i-1;
double tprice = iMA(NULL,0,1,0,MODE_SMA,price,i);
if (r<rsiPeriod)
workMaRsi[r][instanceNo] = tprice;
else workMaRsi[r][instanceNo] = workMaRsi[r-1][instanceNo]+(speed*fabs(iRSI(NULL,0,rsiPeriod,price,i)/100.0-0.5))*(tprice-workMaRsi[r-1][instanceNo]);
return(workMaRsi[r][instanceNo]);
}
double work[][7];
#define _high 0
#define _low 1
#define _ohigh 2
#define _olow 3
#define _open 4
#define _position 5
#define _af 6
void iParabolic(double high, double low, double step, double limit, double& pClose, double& pOpen, double& pPosition, double& pChange, int i)
{
if (ArrayRange(work,0)!=Bars) ArrayResize(work,Bars); i = Bars-i-1;
pChange = 0;
work[i][_ohigh] = high;
work[i][_olow] = low;
if (i<1)
{
work[i][_high] = high;
work[i][_low] = low;
work[i][_open] = high;
work[i][_position] = -1;
return;
}
work[i][_open] = work[i-1][_open];
work[i][_af] = work[i-1][_af];
work[i][_position] = work[i-1][_position];
work[i][_high] = fmax(work[i-1][_high],Показано первые 50% кода (символов: 8710)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.