rsi_-_floating_levels_-_on_chart_nmc.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi_-_floating_levels_-_on_chart_nmc.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, который отображает на графике плавающие уровни, рассчитанные на основе RSI. Индикатор использует 8 буферов для отрисовки нескольких линий уровней и основной RSI-линии.
В основе работы лежит расчёт RSI различными методами (стандартный RSI, Wilders RSI, RSX, Cuttler RSI и T3 RSI), после чего значения сглаживаются пользовательской функцией сглаживания. Динамические уровни определяются на основе минимума и максимума сглаженного RSI за заданный период, масштабированных относительно отклонения цены от скользящей средней.
Индикатор поддерживает работу на различных таймфреймах, включая возможность отображения данных старшего таймфрейма на текущем графике с интерполяцией между барами. Также предусмотрены два дополнительных набора уровней для более детального анализа.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Таймфрейм, на котором рассчитываются уровни. Поддерживается указание старшего таймфрейма для отображения на текущем графике, а также специальные значения для расчёта значений или возврата количества баров. |
| RsiPeriod | Период RSI — Период расчёта RSI, определяющий количество баров, используемых для вычисления показателя. |
| RsiPrice | Цена RSI — Тип цены, используемой для расчёта RSI (например, PRICE_CLOSE). |
| RsiMethod | Метод RSI — Метод расчёта RSI: 0 — стандартный RSI, 1 — Wilders RSI, 2 — RSX, 3 — Cuttler RSI, 4 — T3 RSI. |
| T3Hot | T3 горячий параметр — Параметр горячей линии (hot) для функции T3, влияющий на коэффициенты трёхэкспоненциального сглаживания. |
| T3Original | T3 оригинальная формула — Логический переключатель, определяющий, используется ли оригинальная формула расчёта альфа-параметра T3 или альтернативная. |
| MinMaxPeriod | Период минимума и максимума — Количество баров, используемых для определения минимума и максимума сглаженного RSI при расчёте диапазона уровней. |
| LevelUp | Верхний уровень — Процентное значение верхнего основного уровня RSI относительно диапазона. |
| LevelDown | Нижний уровень — Процентное значение нижнего основного уровня RSI относительно диапазона. |
| LevelUp2 | Второй верхний уровень — Процентное значение второго верхнего уровня RSI относительно диапазона. |
| LevelDown2 | Второй нижний уровень — Процентное значение второго нижнего уровня RSI относительно диапазона. |
| SmoothPeriod | Период сглаживания — Период пользовательской функции сглаживания, применяемой к значениям RSI перед расчётом уровней. |
| SmoothPhase | Фаза сглаживания — Фаза сглаживания, влияющая на скорость реакции сглаженной линии на изменение ценовых данных. |
| ChartAlignmentPeriod | Период выравнивания графика — Период скользящей средней, используемой для расчёта опорной линии выравнивания. |
| ChartAlignmentMaMode | Режим скользящей средней выравнивания — Режим скользящей средней, используемой для расчёта опорной линии выравнивания (например, SMA). |
| ChartAlignmentPrice | Цена выравнивания графика — Тип цены, используемой для расчёта скользящей средней выравнивания (например, PRICE_TYPICAL). |
| ChartAlignmentDeviations | Отклонение выравнивания графика — Множитель отклонения цены от скользящей средней, используемый для масштабирования RSI-уровней на графике. |
| Interpolate | Интерполяция — Логический переключатель, определяющий, применяется ли интерполяция значений между барами при работе на старшем таймфрейме. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 DeepSkyBlue
#property indicator_color2 DeepSkyBlue
#property indicator_color3 DimGray
#property indicator_color4 PaleVioletRed
#property indicator_color5 PaleVioletRed
#property indicator_color6 LimeGreen
#property indicator_color7 PaleVioletRed
#property indicator_color8 PaleVioletRed
#property indicator_width6 2
#property indicator_width7 2
#property indicator_width8 2
#property indicator_style1 STYLE_DOT
#property indicator_style2 STYLE_DOT
#property indicator_style3 STYLE_DOT
#property indicator_style4 STYLE_DOT
#property indicator_style5 STYLE_DOT
extern string TimeFrame = "Current time frame";
extern int RsiPeriod = 14;
extern int RsiPrice = PRICE_CLOSE;
extern int RsiMethod = 0;
extern double T3Hot = 0.7;
extern bool T3Original = false;
extern int MinMaxPeriod = 100;
extern double LevelUp = 80;
extern double LevelDown = 20;
extern double LevelUp2 = 60;
extern double LevelDown2 = 40;
extern double SmoothPeriod = 8;
extern double SmoothPhase = 0;
extern int ChartAlignmentPeriod = 20;
extern int ChartAlignmentMaMode = MODE_SMA;
extern int ChartAlignmentPrice = PRICE_TYPICAL;
extern double ChartAlignmentDeviations = 2;
extern bool Interpolate = true;
double rsiLUp[];
double rsiLUp2[];
double rsiLMi[];
double rsiLDn2[];
double rsiLDn[];
double rsi[];
double rsida[];
double rsidb[];
int timeFrame;
string indicatorFileName;
bool returnBars;
bool calculateValue;
string shortName;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
double slope[];
double pr[];
double rsitm[];
int start()
{
// код доступен только после оплаты
}
double iDeviation(double& array[], double period, double ma, int r)
{
double sum = 0.00;
for(int k=0; k<period; k++) sum += (array[r-k]-ma)*(array[r-k]-ma);
return(MathSqrt(sum/period));
}
void CleanPoint(int i,double& first[],double& second[])
{
if ((second[i] != EMPTY_VALUE) && (second[i+1] != EMPTY_VALUE))
second[i+1] = EMPTY_VALUE;
else
if ((first[i] != EMPTY_VALUE) && (first[i+1] != EMPTY_VALUE) && (first[i+2] == EMPTY_VALUE))
first[i+1] = EMPTY_VALUE;
}
void PlotPoint(int i,double& first[],double& second[],double& from[])
{
if (first[i+1] == EMPTY_VALUE)
{
if (first[i+2] == EMPTY_VALUE) {
first[i] = from[i];
first[i+1] = from[i+1];
second[i] = EMPTY_VALUE;
}
else {
second[i] = from[i];
second[i+1] = from[i+1];
first[i] = EMPTY_VALUE;
}
}
else
{
first[i] = from[i];
second[i] = EMPTY_VALUE;
}
}
string rsiMethodNames[] = {"rsi","Wilders rsi","rsx","Cuttler RSI","T3 rsi"};
string getRsiName(int& method)
{
int max = ArraySize(rsiMethodNames)-1;
method=MathMax(MathMin(method,max),0); return(rsiMethodNames[method]);
}
double workRsi[][13];
#define _price 0
#define _change 1
#define _changa 2
double iRsi(double price, double period, int rsiMode, int i, int instanceNo=0)
{
if (ArrayRange(workRsi,0)!=Bars) ArrayResize(Показано первые 50% кода (символов: 14387)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.