rsi_smoothed_bandsfba_osc.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi_smoothed_bandsfba_osc.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «RSI Smoothed BandsFBA Oscillator» рассчитывает значение RSI по выбранной цене, сглаживает его скользящей средней и строит полосы отклонения на основе стандартного отклонения от уровня 50. Дополнительно применяются полосы Боллинджера с адаптацией по методу FBA (Forward Backward Adaptation), что позволяет сглаживать компоненты полос в зависимости от направления цены.
На основе адаптированных полос формируется осциллятор, показывающий позицию цены относительно нижней и верхней границы в процентах. Значения осциллятора могут использоваться для оценки экстремумов и разворотов цены.
Индикатор работает в отдельном окне MetaTrader 5, использует 5 буферов для отрисовки. Параметры периодов сглаживания, типа скользящей средней и чувствительности настраиваются пользователем. Индикатор не гарантирует прибыль и является чисто аналитическим инструментом.
Настройки программы
| Настройка | Описание |
|---|---|
| RSIPrice | Тип цены для расчёта RSI: 0 — Close, 1 — Open, 2 — High и другие значения. |
| RSIPeriod | Период расчёта индикатора RSI. Определяет количество баров, используемых для вычисления RSI. |
| MA_Period | Период сглаживания скользящей средней, применяемой к значениям RSI. |
| MA_Mode | Метод сглаживания для скользящей средней RSI: 0 — SMA, 1 — EMA, 2 — SMMA, 3 — LWMA. |
| BandsPeriod | Период расчёта полос отклонения на основе скользящей средней RSI. Определяет ширину расчётного окна. |
| K_Dev | Множитель стандартного отклонения для расчёта ширины полос отклонения RSI. Определяет расстояние верхней и нижней полос от центрального уровня 50. |
| BandsFBAPeriod | Период расчёта адаптированных полос Боллинджера (FBA). Используется для определения верхней и нижней границ с учётом сглаживания. |
| BandsShift | Сдвиг полос Боллинджера по горизонтали. Позволяет смещать отображение полос относительно текущего бара. |
| OscPrice | Тип цены для расчёта осциллятора: 0 — Close, 1 — Open, 2 — High, 3 — Low, 4 — Middle, 5 — Typical, 6 — Weighted. |
| FrontPeriod | Период передней EMA для адаптации; при значении больше 1 преобразуется в коэффициент сглаживания (2/(1+значение)). Должен быть меньше или равен BackPeriod. |
| BackPeriod | Период задней EMA для адаптации; при значении больше 1 преобразуется в коэффициент сглаживания (2/(1+значение)). Должен быть больше или равен FrontPeriod для корректной работы. |
| Sens | Чувствительность — множитель минимального стандартного отклонения. Используется для ограничения нижней границы стандартного отклонения полос Боллинджера. |
Поиск по коду файла
#property indicator_separate_window // ????????? ? ????????? ????
#property indicator_buffers 5 // ?????????? ??????? 5
#property indicator_color3 Blue // ???? ??????? ????? ??
#property indicator_color4 Red // ???? ?????? ????? ??
#property indicator_color5 MediumSeaGreen // ???? ??????? ????? BandsFBA Oscillator
extern int RSIPrice = PRICE_CLOSE; // ???? RSI: 0 - Close, 1 - Open, 2 - High ? ?. ?.
extern int RSIPeriod = 11; // ?????? ??? ??????? RSI
extern int MA_Period = 8; // ?????? ???????????? ???????
extern int MA_Mode = MODE_LWMA; // ????? ???????????? ???????: 0 - ???????,
extern int BandsPeriod = 27; // ?????? ??? ??????? ??
extern double K_Dev = 3.6; // ??????????? ??????. ??? ??????? ?????
extern int BandsFBAPeriod = 20; // ?????? ??????????? BB
extern int BandsShift = 0; // ????? ??????????? ??
extern int OscPrice = 0; // ??? ???? (?????. ????????)
extern double FrontPeriod = 1; // ?????? ??????????? ??????; ?.?. <1
extern double BackPeriod = 55; // ?????? ??????????? ?????????; ?.?. <1
extern int Sens = 0; // ????? ???????????????? ? ??.
double RSIBuffer[]; // ??????????? ????? ??? ??????? ????? ??????????? RSI
double RSI[]; // ??????????? ????? ??? ??????? ????? RSI
double Up_Buffer[]; // ????? ??? ??????? ??????? ????? ??
double Dn_Buffer[]; // ????? ??? ??????? ?????? ????? ??
double Main[]; // ????? ??? ??????? ????? ??????????? ??
bool first = 1; // ???? ??????? ???????
double per0,per1; // ?????-?? EMA
int FBA=0; // 1 - ??????????? ??????, -1 - ??????????? ?????????, 0 - ??????? MA
double sens; // ????? ???????????????? ? ?????
int init()
{
// код доступен только после оплаты
}
string short_name="RSI_Smoothed_BB("+RSIPeriod+","+BandsPeriod+","+
DoubleToStr(K_Dev, 2)+")";
IndicatorShortName(short_name); // ????????? ????????? ?????
SetIndexStyle(0, DRAW_NONE); // ????? ????? - ???, ????? ???????? ?? ????????????
SetIndexBuffer(0, RSIBuffer); // ????? ?????? ?????? ? ????. ???????
SetIndexBuffer(1, RSI); // ????? ?????? ?????? ? ????. ???????
SetIndexStyle(1, DRAW_NONE); // ????? ????? - ???, ????? ???????? ?? ????????????
SetIndexStyle(2, DRAW_LINE); // ????? ?????
SetIndexBuffer(2, Up_Buffer); // ????? ?????? ?????? ? ????. ???????
SetIndexDrawBegin(2, BandsPeriod); // ?????? ????????? ??????? ????? BB
SetIndexStyle(3, DRAW_LINE); // ????? ?????
SetIndexBuffer(3, Dn_Buffer); // ????? ?????? ?????? ? ????. ???????
SetIndexDrawBegin(3, BandsPeriod); // ?????? ????????? ?????? ????? BB
SetIndexBuffer(4, Main); // ????? ?????? ?????? ? ????. ???????
SetIndexStyle(4, DRAW_LINE); // ????? ?????
first = 1;
sens = Sens*Point; // ????? ???????????????? ? ?????
if(FrontPeriod>1) FrontPeriod=2.0/(1+FrontPeriod); // ?????. ??????????????? EMA
if(BackPeriod>1) BackPeriod=2.0/(1+BackPeriod); // ?????. ?????????? EMA
while(true)
{
if (FrontPeriod==BackPeriod)
{
per0=FrontPeriod;
per1=1;
break;
}
if (FrontPeriod>BackPeriod)
{
FBA = -1;
per0 = FrontPeПоказано первые 50% кода (символов: 4885)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.