inverse fisher transform of rsi.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «inverse fisher transform of rsi.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор рассчитывает значение RSI вручную на основе разниц ценовых баров, без использования встроенной функции iRSI. Полученное значение RSI масштабируется и сглаживается взвешенным скользящим средним (WMA), после чего применяется обратное преобразование Фишера для формирования ограниченного осциллятора.
В отдельном окне отображаются две линии: основная линия с результатом обратного преобразования Фишера и линия-триггер, которая переключается между уровнями HiTrigger и LoTrigger в зависимости от знака значения. Это позволяет визуально отслеживать пересечения триггерных уровней.
Индикатор выполняет проверку входных параметров на допустимые диапазоны и выводит предупреждения при их нарушении. Также предусмотрен механизм пересчёта при загрузке новых баров. Параметр info предназначен для вывода справочной информации в журнал, однако в исходном коде соответствующий блок полностью закомментирован.
Код написан для платформы MetaTrader 5 в языке MQL5 и использует стандартные индикаторные буферы для отрисовки линий в отдельном подокне графика.
Настройки программы
| Настройка | Описание |
|---|---|
| default=5 (RsiBars) | Период RSI — Количество баров, используемых для расчёта значения RSI. Допустимый диапазон: от 0 до 50. |
| default=9 (WmaBars) | Период WMA — Количество баров, используемых для взвешенного скользящего среднего, сглаживающего рассчитанное значение перед преобразованием Фишера. |
| default=0.5 (HiTrigger) | Верхний триггер — Верхний триггерный уровень, при пересечении которого основной линией формируется сигнал. Допустимый диапазон: от 0 до 1. |
| default=-0.5 (LoTrigger) | Нижний триггер — Нижний триггерный уровень, при пересечении которого основной линией формируется сигнал. Допустимый диапазон: от -1 до 0. |
| default=0 (info) | Справка — Логический переключатель для вывода справочной информации о работе индикатора в журнал (в текущей версии блок вывода закомментирован). |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 DimGray
extern int RsiBars=5; // default=5
extern int WmaBars=9; // default=9
extern int HiTrigger=0.5; // default=0.5
extern int LoTrigger=-0.5; // default=-0.5
extern bool info=0; // default=0
double ExtMapBuffer1[];
double ExtMapBuffer2[];
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int shift;
int loopBegin;
bool is_First=True;
double prevbars;
int count;
double Value2;
double IFish;
double SumUp;
double SumDn;
double AvgUp;
double AvgDn;
double Delta;
double RSI;
double WmaNumerator;
double WmaDenominator;
datetime LastTime;
double PrevAvgUp;
double PrevAvgDn;
int cntdown;
double Value1[40];
/*[if (info ) {
Alert(\"See Terminal>Journal Tab for ( usage of \\n\",Name);
Print(\"|___________________\");
Print(\"|* \",Name,\" *\");
Print(\"| \",\"Sell: cross under HiTrigger (or under LoTrigger if (no prior cross under HiTrigger)\");
Print(\"| \",\"Buy: cross over LoTrigger (or over HiTrigger if (no prior cross over LoTrigger)\");
Print(\"|* \",Name,\" *\");
Print(\"|```````````````````\");
}]*/
if (0>HiTrigger || HiTrigger>1 ) {
Alert("Input Error: must be 0< HiTrigger <1, Cannot=",HiTrigger);
return(0);
}
if (-1>LoTrigger || LoTrigger>0 ) {
Alert("Input Error: must be -1< LoTrigger <0, Cannot=",LoTrigger);
return(0);
}
if (0>RsiBars || RsiBars>50 ) {
Alert("Input Error: must be 0< RsiBars <50, Cannot=",RsiBars);
return(0);
}
Показано первые 50% кода (символов: 2907)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.