OnChart DSS Bressert Rsi
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «onchart_dss_bressert_-_rsi.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для MetaTrader 5 отображает на графике четыре буфера, объединяющих анализ скользящей средней, полос перекупленности/перепроданности на основе ATR и сглаженный стохастический показатель DSS, рассчитанный на базе RSI. Первая линия представляет собой значение скользящей средней заданного периода и метода. Вторая и третья линии формируют верхнюю и нижнюю границы, вычисляемые как отклонения от средней, пропорциональные средней истинной амплитуде (ATR) и заданным уровням перекупленности и перепроданности. Четвёртый буфер отображает значение DSS — двойно сглаженного стохастика на основе RSI. Параметр TimeFrame позволяет выбрать таймфрейм расчёта, а также поддерживается межтаймфреймовой анализ через вызов iCustom.
Индикатор работает в текущем графике (indicator_chart_window) и использует четыре буфера с разными цветами: красный пунктир для скользящей средней, золотистый для полос и глубокий синий для DSS-линии. При выборе таймфрейма, отличного от текущего, расчёт ATR выполняется на одном таймфрейме выше, а данные берутся через вызов iCustom. Дополнительно параметр TimeFrame поддерживает специальные значения «calculateValue» и «returnBars» для вспомогательных режимов работы.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм, на котором выполняется расчёт индикатора. Поддерживается выбор таймфрейма из стандартных значений, а также специальные режимы calculateValue и returnBars. |
| RsiPeriod | Период расчёта индикатора RSI, определяющий количество баров для вычисления показателя. |
| RsiPrice | Тип цены, используемой для расчёта RSI (например, закрытие, открытие, высокая, низкая и т.д.). |
| StochasticLength | Длина расчёта сглаженного стохастического показателя, используемая в DSS-формуле. |
| SmoothEMA | Параметр сглаживания экспоненциальной средней, применяемой при расчёте DSS-стохастика. |
| maPeriod | Период расчёта скользящей средней, отображаемой в качестве основной линии индикатора. |
| maMethod | Метод расчёта скользящей средней (например, простая, экспоненциальная, сглаженная, линейное взвешивание). |
| maPrice | Тип цены, используемой для расчёта скользящей средней. |
| AtrLength | Период расчёта средней истинной амплитуды (ATR), используемой для формирования полос перекупленности/перепроданности и масштабирования DSS-линии. |
| overBought | Верхний уровень перекупленности, определяющий верхнюю полосу индикатора как отклонение от скользящей средней в единицах ATR. |
| overSold | Нижний уровень перепроданности, определяющий нижнюю полосу индикатора как отклонение от скользящей средней в единицах ATR. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Crimson
#property indicator_color2 Goldenrod
#property indicator_color3 Goldenrod
#property indicator_color4 DeepSkyBlue
#property indicator_width4 2
#property indicator_style1 STYLE_DASH
extern string TimeFrame = "Current time frame";
extern int RsiPeriod = 14;
extern int RsiPrice = PRICE_CLOSE;
extern int StochasticLength = 55;
extern int SmoothEMA = 15;
extern int maPeriod = 20;
extern int maMethod = 1;
extern int maPrice = 0;
extern int AtrLength = 120;
extern int overBought = 90;
extern int overSold = 10;
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
string indicatorFileName;
bool returnBars;
bool calculateValue;
int timeFrame;
int atrTimeFrame;
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) { Buffer1[0] = MathMin(limit+1,Bars-1); return(0); }
if (calculateValue || timeFrame == Period())
{
for (int i=limit; i>=0; i--)
{
int r = iBarShift(NULL,atrTimeFrame,Time[i]);
double avgRange = iATR(NULL,atrTimeFrame,AtrLength,r);
double maValue = iMA(NULL,0,maPeriod,0,maMethod,maPrice,i);
double rsi = iRSI(NULL,0,RsiPeriod,RsiPrice,i);
double stochValue = iDss(rsi,rsi,rsi,StochasticLength,SmoothEMA,i);
Buffer1[i] = maValue;
Buffer2[i] = maValue+(avgRange*(overBought-50)/100);
Buffer3[i] = maValue-(avgRange*(50- overSold)/100);
Buffer4[i] = maValue+(stochValue -50)/100*avgRange;
}
return(0);
}
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatoПоказано первые 50% кода (символов: 4772)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.