rsi_t3_slope_mtf_1.01.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi_t3_slope_mtf_1.01.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор отображает модифицированный RSI с T3-сглаживанием в отдельном окне графика. Значения индикатора нормализованы в диапазоне от -50 до +50 и распределены по четырём гистограммным буферам в зависимости от знака значения и направления изменения.
Поддерживается многотаймфреймный расчёт: при выборе таймфрейма, отличного от текущего, индикатор получает данные через вызов самого себя на другом графике. Доступна интерполяция значений между барами для более плавного отображения.
Внутренний расчёт основан на многократном экспоненциальном сглаживании с настраиваемыми коэффициентами и параметром наклона, определяемом сравнением текущего и предыдущего значений индикатора.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | TimeFrame — Временной горизонт, на котором рассчитывается индикатор |
| RsiPeriod | RsiPeriod — Период расчёта индикатора |
| RsiPrice | RsiPrice — Тип цены, используемый для расчёта индикатора |
| Hot | Hot — Параметр сглаживания T3, влияющий на скорость отклика индикатора |
| OriginalT3 | OriginalT3 — Переключатель между оригинальной и альтернативной формулой расчёта коэффициентов T3 |
| LevelUp | LevelUp — Значение верхнего уровня для отображения на графике |
| LevelDown | LevelDown — Значение нижнего уровня для отображения на графике |
| Interpolate | Interpolate — Включает или отключает интерполяцию значений между барами при работе на разных таймфреймах |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 LimeGreen
#property indicator_color2 LimeGreen
#property indicator_color3 PaleVioletRed
#property indicator_color4 PaleVioletRed
#property indicator_color5 DarkGray
#property indicator_width1 2
#property indicator_width3 2
#property indicator_width5 2
#property indicator_minimum -50
#property indicator_maximum +50
#property indicator_levelcolor DarkGray
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT;
extern double RsiPeriod = 25;
extern ENUM_APPLIED_PRICE RsiPrice = PRICE_CLOSE;
extern double Hot = 0.7;
extern bool OriginalT3 = false;
extern double LevelUp = 30;
extern double LevelDown = -30;
extern bool Interpolate = true;
double rsi[];
double rsihuu[];
double rsihud[];
double rsihdu[];
double rsihdd[];
double slope[];
string indicatorFileName;
bool returnBars;
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
if(counted_bars < 0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { rsihuu[0] = limit+1; return(0); }
if (TimeFrame == Period())
{
for(int i = limit; i >= 0; i--)
{
rsi[i] = iRsi(iMA(NULL,0,1,0,MODE_SMA,RsiPrice,i),RsiPeriod,Hot,OriginalT3,i);
rsihuu[i] = EMPTY_VALUE;
rsihud[i] = EMPTY_VALUE;
rsihdd[i] = EMPTY_VALUE;
rsihdu[i] = EMPTY_VALUE;
slope[i] = slope[i+1];
if (rsi[i] > rsi[i+1]) slope[i] = 1;
if (rsi[i] < rsi[i+1]) slope[i] = -1;
if (rsi[i]>0)
if (slope[i]==1)
rsihuu[i] = rsi[i];
else rsihud[i] = rsi[i];
if (rsi[i]<0)
if (slope[i]==1)
rsihdu[i] = rsi[i];
else rsihdd[i] = rsi[i];
}
return(0);
}
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,TimeFrame,indicatorFileName,-99,0,0)*TimeFrame/Period()));
for(i=limit; i>=0; i--)
{
int y = iBarShift(NULL,TimeFrame,Time[i]);
rsihuu[i] = EMPTY_VALUE;
rsihud[i] = EMPTY_VALUE;
rsihdd[i] = EMPTY_VALUE;
rsihdu[i] = EMPTY_VALUE;
rsi[i] = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,RsiPeriod,RsiPrice,Hot,OriginalT3,4,y);
slope[i] = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,RsiPeriod,RsiPrice,Hot,OriginalT3,5,y);
if (rsi[i]>0)
if (slope[i]==1)
rsihuu[i] = rsi[i];
else rsihud[i] = rsi[i];
if (rsi[i]<0)
if (slope[i]==1)
rsihdu[i] = rsi[i];
else rsihdd[i] = rsi[i];
if (!Interpolate || y==iBarShift(NULL,TimeFrame,Time[i-1])) continue;
datetime time = iTime(NULL,TimeFrame,y);
Показано первые 50% кода (символов: 5578)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.