multi_pair_rsi_floating_levels_nmc.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «multi_pair_rsi_floating_levels_nmc.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Пользовательский индикатор для MetaTrader 4, отображающий RSI-based плавающие уровни для нескольких валютных пар в отдельном окне. Индикатор рассчитывает значения RSI для каждой указанной пары и строит динамические верхнюю, среднюю и нижнюю границы на основе диапазона значений за заданный период. Визуально разделяет графики разных пар цветными разделителями и маркерами сигналов пересечения пороговых уровней. Поддерживает уведомления через всплывающие сообщения, звуковые сигналы и электронную почту при изменении направления тренда RSI.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Таймфрейм для расчёта индикаторных данных |
| RsiPeriod | Период RSI — Период расчёта индикатора RSI |
| RsiPrice | Цена RSI — Тип цены для расчёта RSI |
| MinMaxPeriod | Период минимума и максимума — Период определения диапазона значений для плавающих уровней |
| LevelUp | Уровень вверх — Процентное значение верхней границы плавающего уровня |
| LevelDown | Уровень вниз — Процентное значение нижней границы плавающего уровня |
| alertsOn | Уведомления включены — Включает или отключает систему уведомлений |
| alertsOnCurrent | Уведомления на текущем баре — Ограничивает отправку уведомлений текущим баром |
| alertsMessage | Сообщение — Включает всплывающие сообщения при срабатывании условий |
| alertsSound | Звук — Включает воспроизведение звукового сигнала при срабатывании условий |
| alertsEmail | Электронная почта — Включает отправку уведомлений на электронную почту |
| BarsPerSymbol | Баров на символ — Количество баров отображаемых для каждой валютной пары |
| UniqueID | Идентификатор — Идентификатор индикатора для имени окна и объектов |
| _ | Разделитель — Метка разделителя для настроек цветов |
| textColor | Цвет текста — Цвет текста меток валютных пар |
| backColor | Цвет фона — Цвет фона разделителей между парами |
| signalCrossUpColor | Цвет сигнала вверх — Цвет индикатора пересечения верхнего порога |
| signalCrossDownColor | Цвет сигнала вниз — Цвет индикатора пересечения нижнего порога |
| separatorWidth | Ширина разделителя — Ширина цветного разделителя между графиками пар |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 LimeGreen
#property indicator_color2 DarkGray
#property indicator_color3 PaleVioletRed
#property indicator_color4 DarkGray
#property indicator_style1 STYLE_DOT
#property indicator_style2 STYLE_DOT
#property indicator_style3 STYLE_DOT
#property indicator_width4 2
#property indicator_style4 STYLE_DOT
#property indicator_level1 0
#property indicator_level2 20
#property indicator_level3 -20
#property indicator_levelcolor DarkGray
extern string TimeFrame = "Current time frame";
extern int RsiPeriod = 55;
extern int RsiPrice = PRICE_CLOSE;
extern int MinMaxPeriod = 100;
extern double LevelUp = 80.0;
extern double LevelDown = 20.0;
extern bool alertsOn = false;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern int BarsPerSymbol = 100;
extern string Symbols = "EURUSD;GBPUSD;USDCHF";
extern string UniqueID = "Multi pair floating RSI";
extern string _ = "separator colors";
extern color textColor = Black;
extern color backColor = DarkGray;
extern color signalCrossUpColor = LimeGreen;
extern color signalCrossDownColor = HotPink;
extern int separatorWidth = 6;
double rsi[];
double rsiUp[];
double rsiMi[];
double rsiDn[];
double trend[];
double cross[];
int window;
string aPairs[];
string shortName;
double minValue;
double maxValue;
double maxValues[];
int timeFrame;
bool calculateValue;
string indicatorFileName;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
for (int i = 0; i < ArraySize(aPairs); i++)
{
ObjectDelete(shortName+i);
ObjectDelete(shortName+i+i);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
void plotGraph(string symbol,int limit, int& shift,int element, double min, double max)
{
createLabel(symbol,element,shift+limit+separatorWidth-2,min,max,isSignalCrossing(shift));
shift += (limit+separatorWidth-1);
}
int isSignalCrossing(int shift)
{
return(cross[shift]);
}
void calculateIndicator()
{
int i,counted_bars=IndicatorCounted();
if(counted_bars<0) return;
if(counted_bars>0) counted_bars--;
int limit=MathMax(Bars-counted_bars,Bars-1);
for(i=limit; i>=0; i--)
{
rsi[i] = iRSI(NULL,0,RsiPeriod,PRICE_CLOSE,i);
double rsiMin = rsi[ArrayMinimum(rsi,MinMaxPeriod,i)];
double rsiMax = rsi[ArrayMaximum(rsi,MinMaxPeriod,i)];
double range = rsiMax-rsiMin;
rsiDn[i] = rsiMin+range*LevelDown/100.0;
rsiMi[i] = rsiMin+range*0.5;
rsiUp[i] = rsiMin+range*LevelUp/100.0;
trend[i] = 0;
cross[i] = 0;
if (rsi[i]>rsiUp[i]) trend[i] = 1;
if (rsi[i]<rsiDn[i]) trend[i] = -1;
if (trend[i]!=trend[i+1]) cross[i] = trend[i];
}
manageAlerts();
}
double workEma[][Показано первые 50% кода (символов: 7721)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.