double stochastic rsi.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «double stochastic rsi.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для MetaTrader 5 рассчитывает вариант индекса относительной силы с последующим применением двойной стохастической обработки и экспоненциального сглаживания. Результат отображается в отдельном окне с возможностью смены цвета линии в зависимости от заданных условий.
Индикатор поддерживает несколько методов расчёта RSI и различные типы ценовых данных для анализа. Пользователь может настроить периоды, уровни сглаживания и параметры отображения. Линия индикатора меняет цвет при пересечении заданных уровней или при изменении направления тренда.
Все расчёты выполняются на каждом тике с использованием исторических ценовых данных. Индикатор предназначен для технического анализа и визуализации динамики ценовых изменений.
Настройки программы
| Настройка | Описание |
|---|---|
| RSI period (RSIPeriod) | Период RSI — Задаёт количество баров, используемых для расчёта RSI. |
| Rsi type (RsiMethod) | Метод расчёта RSI — Определяет вариант индекса относительной силы (обычный, медленный, быстрый и др.). |
| RSI applied to price (Price) | Применяемая цена для RSI — Задаёт тип ценовых данных, используемый при расчёте RSI. |
| Stochastic period 1 (less than 2 - no stochastic) (StoPeriod1) | Период стохастика 1 — Первый период для расчёта стохастического компонента. При значении менее 2 стохастик не рассчитывается. |
| Stochastic period 2 (less than 2 - no stochastic) (StoPeriod2) | Период стохастика 2 — Второй период для расчёта двойного стохастического компонента. При значении менее 2 стохастик не рассчитывается. |
| Smoothing period (less than 2 - no smoothing) (EMAPeriod) | Период сглаживания — Период экспоненциального сглаживания. При значении менее 2 сглаживание не применяется. |
| Floating levels look back period (flLookBack) | Период обзора для плавающих уровней — Количество баров, используемых для определения плавающих уровней. |
| Floating levels up level % (flLevelUp) | Верхний плавающий уровень, % — Процентное значение верхнего плавающего уровня. |
| Floating levels down level % (flLevelDown) | Нижний плавающий уровень, % — Процентное значение нижнего плавающего уровня. |
| Color change on : (ColorOn) | Режим смены цвета — Определяет условие смены цвета линии индикатора. |
| Color for nuetral (ColorNu) | Цвет нейтральный — Цвет линии индикатора в нейтральном состоянии. |
| Color for up (ColorUp) | Цвет восходящий — Цвет линии индикатора при восходящем тренде. |
| Color for down (ColorDown) | Цвет нисходящий — Цвет линии индикатора при нисходящем тренде. |
| Main line width (LineWidth) | Толщина основной линии — Толщина отображаемой линии индикатора. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 clrSilver
#property indicator_color2 clrSilver
#property indicator_color3 clrSilver
#property indicator_style2 STYLE_DOT
#property indicator_minimum -1
#property indicator_maximum 101
#property strict
enum enPrices
{
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
pr_median, // Median
pr_typical, // Typical
pr_weighted, // Weighted
pr_average, // Average (high+low+open+close)/4
pr_medianb, // Average median body (open+close)/2
pr_tbiased, // Trend biased price
pr_highlow, // High/low
pr_tbiased2, // Trend biased (extreme) price
pr_haclose, // Heiken ashi close
pr_haopen , // Heiken ashi open
pr_hahigh, // Heiken ashi high
pr_halow, // Heiken ashi low
pr_hamedian, // Heiken ashi median
pr_hatypical, // Heiken ashi typical
pr_haweighted, // Heiken ashi weighted
pr_haaverage, // Heiken ashi average
pr_hamedianb, // Heiken ashi median body
pr_hatbiased, // Heiken ashi trend biased price
pr_hatbiased2, // Heiken ashi trend biased (extreme) price
pr_hahighlow // Heiken ashi high/low
};
enum enRsiTypes
{
rsi_rsi, // Regular RSI
rsi_wil, // Slow RSI
rsi_rap, // Rapid RSI
rsi_har, // Harris RSI
rsi_rsx, // RSX
rsi_cut // Cuttlers RSI
};
enum enColorOn
{
cc_onSlope, // Change color on slope change
cc_onMiddle, // Change color on middle line cross
cc_onLevels // Change color on outer levels cross
};
extern int RSIPeriod = 14; // RSI period
extern enRsiTypes RsiMethod = rsi_rsx; // Rsi type
extern enPrices Price = pr_close; // RSI applied to price
extern int StoPeriod1 = 55; // Stochastic period 1 (less than 2 - no stochastic)
extern int StoPeriod2 = 55; // Stochastic period 2 (less than 2 - no stochastic)
extern int EMAPeriod = 15; // Smoothing period (less than 2 - no smoothing)
extern int flLookBack = 25; // Floating levels look back period
extern double flLevelUp = 90; // Floating levels up level %
extern double flLevelDown = 10; // Floating levels down level %
extern enColorOn ColorOn = cc_onLevels; // Color change on :
extern color ColorNu = clrDodgerBlue; // Color for nuetral
extern color ColorUp = clrDodgerBlue; // Color for up
extern color ColorDown = clrSandyBrown; // Color for down
extern int LineWidth = 3; // Main line width
double RsiBuffer[],Stoch[],StcBuffer[],levup[],levmi[],levdn[],valUa[],valUb[],valDa[],valDb[],trend[];
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
string rsiMethodNames[] = {"RSI","Slow RSI","Rapid RSI","Harris RSI","RSX","Cuttler RSI"};
string getRsiName(int method)
{
int max = ArraySize(rsiMethodNames)-1;
method=fmax(fmin(method,max),0); return(rsiMethodNames[method]);
}
#define rsiInstances 1
double workRsi[][rsiInstances*13];
#define _price 0
#define _change 1
#define _changa 2
#define _rsival 1
#define _rsval 1
double iRsi(int rsiMode, double price, double period, int i, int instanceNo=0)
{
if (ArrayRange(workRsi,0)!=Bars) ArrayResize(workRsi,Bars);
int z = instanceNo*13;
int r = Bars-i-1;
workRsi[r][z+_price] = price;
switch (rsiMode)
{
case rsi_rsi:
{
double alpha = 1.0/fmax(period,1);
if (r<period)
{
int k; double sum = 0; for (k=0; k<period && (r-k-1)>=0; k++) sum += fabs(workRsi[r-k][z+_price]-workRsi[r-k-1][z+_price]);
workRsi[r][z+_change] = (workRsi[r][z+_price]-workRsi[0][z+_price])/fmax(k,1);
workRsi[r][z+_changa] = sum/fmax(k,1);
}
else
{
double change = workRsi[r][z+_price]-workRsi[r-1][z+_price];
workRsi[r][z+_change] = workRsi[r-1][z+_chanПоказано первые 50% кода (символов: 10100)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.