RSI Unlimited
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi unlimited m15.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4, отображающий пользовательский аналитический осциллятор в отдельном окне. Расчёт основан на двух значениях RSI (с разными периодами) и их комбинации с скользящей средней, результат записывается в буфер и визуализируется линиями.
Индикатор выделяет зоны перекупленности и перепроданности, рисуя отдельные уровни выше и ниже заданных пороговых значений. При включении опции стрелок отмечает моменты пересечения этих порогов.
Поддерживает уведомления о пересечении уровней: всплывающие сообщения, звуковые сигналы и email-рассылка — каждый канал опционально включается отдельной настройкой. Все параметры настраиваются из панели свойств.
Код написан на MQL4 и предназначен для использования в среде MetaTrader 4.
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 MidnightBlue
#property indicator_color2 White
#property indicator_color3 White
#define SignalName "RSI Unlimited "
extern int RSI.Price = PRICE_CLOSE;
extern int RSI.SlowLength = 14;
extern int RSI.FastLength = 3;
extern int Momentum.Length = 9;
extern double mOverbought = 150.0000,
mOversold = 0.0000;
extern bool showArrows = false,
alertsOn = true,
alertsMessage = true,
alertsSound = false,
alertsEmail = false;
double CIIBuffer[], Upper[], Lower[], working[][3];
int maxArrows, SignalGap, prevBar;
string prevSignal;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
string mObj;
for(int i = ObjectsTotal() - 1; i >= 0; i--)
{
mObj = ObjectName(i);
if(StringSubstr(mObj, 0, 12) == "RSI Unlimited")
ObjectDelete(mObj);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int i,r,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = Bars-counted_bars;
if (ArrayRange(working,0) != Bars) ArrayResize(working,Bars);
for(i=limit, r=Bars-i-1; i >= 0; i--,r++)
{
working[r][0] = iRSI(NULL, 0, RSI.SlowLength, RSI.Price, i);
working[r][1] = iRSI(NULL, 0, RSI.FastLength, RSI.Price, i);
double RSIDelta = working[r][0]-working[r-Momentum.Length][0];
double RSIsma = iSma(1,3,r);
working[r][2] = RSIDelta + RSIsma;
CIIBuffer[i] = working[r][2];
}
for(i=limit; i>=0; i--)
{
if(CIIBuffer[i] > mOverbought)
{
Upper[i] = CIIBuffer[i];
Upper[i+1] = CIIBuffer[i+1];
}
else
{
Upper[i] = EMPTY_VALUE;
if (Upper[i+2] == EMPTY_VALUE)
Upper[i+1] = EMPTY_VALUE;
}
if(CIIBuffer[i] < mOversold)
{
Lower[i] = CIIBuffer[i];
Lower[i+1] = CIIBuffer[i+1];
}
else
{
Lower[i] = EMPTY_VALUE;
if(Lower[i+2] == EMPTY_VALUE)
Lower[i+1] = EMPTY_VALUE;
}
}
DeleteArrows();
iПоказано первые 50% кода (символов: 3457)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.