rsi_amp_centered_tma.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi_amp_centered_tma.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор рассчитывает модифицированный индикатор относительной силы (RSI) с дополнительным сглаживанием треугольным скользящим средним (TMA). Он отображает основной RSI-сигнал и его сглаженную версию в отдельном окне графика, что позволяет трейдеру анализировать скорость и направление изменения ценовых импульсов.
Индикатор использует четыре буфера данных: основной RSI, его сглаженную версию и два вспомогательных буфера для визуального отображения линии. Дополнительно отслеживается направление изменения сглаженного сигнала — рост или падение.
Настройки позволяют задать период RSI, тип цены для расчёта и половину периода треугольного сглаживания. Уровни 20 и 80 используются для обозначения зон перепроданности и перекупленности.
Настройки программы
| Настройка | Описание |
|---|---|
| RsiPeriod | Устанавливает период расчёта индикатора относительной силы. |
| Price | Определяет тип цены (открытие, закрытие, высокая, низкая и др.), используемый при расчёте индикатора. |
| TmaHalfPeriod | Задаёт половину периода треугольного скользящего среднего для сглаживания RSI-сигнала. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 DarkGray
#property indicator_color2 LimeGreen
#property indicator_color3 PaleVioletRed
#property indicator_color4 PaleVioletRed
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 2
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_level1 20
#property indicator_level2 80
#property indicator_levelcolor DarkGray
extern int RsiPeriod = 14;
extern int Price = PRICE_CLOSE;
extern int TmaHalfPeriod = 12;
double rsi[];
double rsia[];
double rsiada[];
double rsiadb[];
double slope[];
string shortName;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
int i,j,k,counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit=MathMin(MathMax(Bars-counted_bars,TmaHalfPeriod),Bars-1);
if (slope[limit]==-1) CleanPoint(limit,rsiada,rsiadb);
for(i=limit; i>=0; i--) rsi[i] = iRsi(iMA(NULL,0,1,0,MODE_SMA,Price,i),RsiPeriod,i);
for(i=limit; i>=0; i--)
{
double sum = (TmaHalfPeriod+1)*rsi[i];
double sumw = (TmaHalfPeriod+1);
for(j=1, k=TmaHalfPeriod; j<=TmaHalfPeriod; j++, k--)
{
sum += k*rsi[i+j];
sumw += k;
if (j<=i)
{
sum += k*rsi[i-j];
sumw += k;
}
}
rsia[i] = sum/sumw;
rsiada[i] = EMPTY_VALUE;
rsiadb[i] = EMPTY_VALUE;
slope[i] = slope[i+1];
if (rsia[i]>rsia[i+1]) slope[i] = 1;
if (rsia[i]<rsia[i+1]) slope[i] = -1;
if (slope[i]==-1) PlotPoint(i,rsiada,rsiadb,rsia);
} Показано первые 50% кода (символов: 2898)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.