rsi_nrp__ma_crosses.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi_nrp__ma_crosses.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4, рассчитывающий RSI выбранной цены, сглаживая его скользящей средней. Далее строится сигнальная линия — скользящая средняя от сглаженного RSI. Индикатор определяет пересечения RSI с сигнальной линией и отображает стрелки на графике в точках смены направления. Поддерживаются уведомления через всплывающие сообщения, электронную почту и звуковой сигнал при возникновении пересечений.
Настройки программы
| Настройка | Описание |
|---|---|
| RsiPeriod | Период RSI — Количество баров для расчёта RSI. |
| RsiPrice | Цена RSI — Тип цены, используемый для расчёта RSI. |
| SmoothingPeriod | Период сглаживания — Период скользящей средней для сглаживания значения RSI. |
| SmoothingMethod | Метод сглаживания — Метод сглаживания для средней линии RSI. |
| MaPeriod | Период сигнальной линии — Период скользящей средней, используемой как сигнальная линия. |
| MaMethod | Метод сигнальной линии — Метод расчёта сигнальной линии. |
| alertsOn | Включить уведомления — Включает или отключает отправку уведомлений о пересечениях. |
| alertsOnCurrent | Уведомления на текущем баре — Если включено, проверяет пересечение на текущем неразвившемся баре; иначе — на последнем завершённом. |
| alertsMessage | Сообщение — Включает отправку всплывающего уведомления при пересечении. |
| alertsSound | Звук — Включает воспроизведение звукового сигнала при пересечении. |
| alertsEmail | Электронная почта — Включает отправку email-уведомления при пересечении. |
| arrowsVisible | Отображение стрелок — Включает отрисовку стрелок на графике в точках пересечений. |
| arrowsOnSlope | Стрелки по наклону — Определяет отображение стрелок при изменении направления RSI. |
| arrowsIdentifier | Идентификатор стрелок — Префикс имён графических объектов-стрелок для их последующего удаления. |
| arrowsDisplacement | Смещение стрелок — Множитель смещения стрелок от цены бара в зависимости от волатильности. |
| arrowsUpColor | Цвет стрелок вверх — Цвет стрелки, указывающей на рост. |
| arrowsDnColor | Цвет стрелок вниз — Цвет стрелки, указывающей на падение. |
| arrowsUpCode | Код стрелки вверх — Код символа стрелки вверх из библиотеки стандартных графических объектов. |
| arrowsDnCode | Код стрелки вниз — Код символа стрелки вниз из библиотеки стандартных графических объектов. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 LimeGreen
#property indicator_color2 Red
#property indicator_color3 Red
#property indicator_color4 PaleVioletRed
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_style4 STYLE_DOT
extern int RsiPeriod = 14;
extern int RsiPrice = PRICE_CLOSE;
extern int SmoothingPeriod = 3;
extern int SmoothingMethod = MODE_SMA;
extern int MaPeriod = 9;
extern int MaMethod = MODE_SMA;
extern bool alertsOn = false;
extern bool alertsOnCurrent = false;
extern bool alertsMessage = true;
extern bool alertsSound = true;
extern bool alertsEmail = false;
extern bool arrowsVisible = false;
extern bool arrowsOnSlope = true;
extern string arrowsIdentifier = "rsi ma cross arrows";
extern double arrowsDisplacement = 1.0;
extern color arrowsUpColor = LimeGreen;
extern color arrowsDnColor = Red;
extern int arrowsUpCode = 241;
extern int arrowsDnCode = 242;
double raw[];
double rsi[];
double rsiDa[];
double rsiDb[];
double sig[];
double trend[];
double slope[];
int init()
{
// код доступен только после оплаты
}
int deinit()
{
string lookFor = arrowsIdentifier+":";
int lookForLength = StringLen(lookFor);
for (int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
int i,counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit=MathMin(Bars-counted_bars,Bars-1);
if (slope[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
for(i=limit; i>=0; i--) raw[i] = iRSI(NULL,0,RsiPeriod,RsiPrice,i);
for(i=limit; i>=0; i--) rsi[i] = iMAOnArray(raw,0,SmoothingPeriod,0,SmoothingMethod,i);
for(i=limit; i>=0; i--)
{
sig[i] = iMAOnArray(rsi,0,MaPeriod,0,MaMethod,i);
rsiDa[i] = EMPTY_VALUE;
rsiDb[i] = EMPTY_VALUE;
trend[i] = trend[i+1];
slope[i] = slope[i+1];
if (rsi[i] > sig[i]) trend[i] = 1;
if (rsi[i] < sig[i]) trend[i] = -1;
if (rsi[i] > rsi[i+1]) slope[i] = 1;
if (rsi[i] < rsi[i+1]) slope[i] = -1;
if (slope[i] == -1) PlotPoint(i,rsiDa,rsiDb,rsi);Показано первые 50% кода (символов: 4000)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.