multi pair rsi floating levels.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «multi pair rsi floating levels.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает RSI для нескольких валютных пар и отображает плавающие динамические уровни (верхний, средний, нижний) на основе минимума и максимума значений RSI за настраиваемый период. Данные всех пар отображаются в отдельном окне индикатора с визуальными разделителями и цветовой индикацией пересечений уровней.
При пересечении RSI верхнего или нижнего уровня индикатор способен отправлять уведомления: всплывающие сообщения, звуковые сигналы или электронные письма. Время срабатывания оповещений можно ограничивать текущим баром или учитывать с задержкой.
Для каждой пары рассчитываются шесть буферов: значения RSI, верхний, средний и нижний плавающие уровни, направление тренда и факт пересечения. Внешний вид текстовых меток, разделителей и цветовых обозначений полностью настраивается пользователем.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм, на котором производится анализ и расчёт индикатора. |
| RsiPeriod | Период расчёта индикатора RSI. |
| RsiPrice | Тип цены, используемый для расчёта RSI. |
| MinMaxPeriod | Период расчёта минимального и максимального значений RSI для определения плавающих уровней. |
| LevelUp | Процентный порог верхнего плавающего уровня RSI относительно диапазона минимум-максимум. |
| LevelDown | Процентный порог нижнего плавающего уровня RSI относительно диапазона минимум-максимум. |
| alertsOn | Включает или отключает систему оповещений о пересечении уровней RSI. |
| 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 = 70;
extern string Symbols = "EURUSD;GBPUSD;USDCHF";
extern string UniqueID = "Multi pair floating RSI";
extern string _ = "separator colors";
extern color textColor = Black;
extern color backColor = LightGray;
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(-1);
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 workПоказано первые 50% кода (символов: 7716)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.