multi_pair_rapid_rsi_2.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «multi_pair_rapid_rsi_2.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает сглаженный RSI для нескольких валютных пар одновременно и отображает результаты на одном графике. Расчёт основан на разнице двух скользящих средних (iMA), накоплении приростов и приведении к шкале с центром в нуле. Данные каждой пары выводятся в виде гистограмм с разделителями и текстовыми метками.
Индикатор поддерживает настраиваемые уровни верхней и нижней границы, период расчёта, тип цены и метод сглаживания. При пересечении заданных уровней возможны уведомления: всплывающие сообщения, звуковые сигналы и email-оповещения. Визуальное оформление разделителей, цветов гистограмм и фона настраивается отдельно.
Множество пар задаётся через точку с запятой в строке символов. Для каждой пары рассчитывается отдельная серия данных, которая смещается по горизонтали с учётом ширины разделителя. Индикатор работает в отдельном окне и совместим с платформой MetaTrader 5.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Таймфрейм, на котором рассчитываются значения индикатора |
| RsiPeriod | Период RSI — Период расчёта RSI |
| RsiPrice | Тип цены RSI — Тип цены, используемой при расчёте RSI |
| RsiLevelUp | Верхний уровень RSI — Верхний уровень RSI, при пересечении которого формируются гистограммы вверх |
| RsiLevelDown | Нижний уровень RSI — Нижний уровень RSI, при пересечении которого формируются гистограммы вниз |
| MaPeriod | Период скользящей средней — Период скользящей средней, применяемой при расчёте сглаженного RSI |
| MaMethod | Метод скользящей средней — Метод сглаживания скользящей средней, используемой при расчёте индикатора |
| alertsOn | Уведомления включены — Главный переключатель включения всех уведомлений |
| alertsOnCurrent | Уведомления для текущего бара — Переключатель выбора: уведомления для текущего бара или для предыдущего |
| alertsMessage | Всплывающие сообщения — Переключатель всплывающих сообщений при пересечении уровней |
| alertsSound | Звуковые оповещения — Переключатель воспроизведения звукового сигнала при пересечении уровней |
| alertsEmail | Email-оповещения — Переключатель отправки email-оповещений при пересечении уровней |
| BarsPerSymbol | Баров на символ — Количество баров для расчёта значений каждой валютной пары |
| UniqueID | Уникальный идентификатор — Уникальный идентификатор индикатора, используемый для именования объектов на графике |
| _ | Разделитель цветов — Текстовый разделитель для группировки параметров настройки цветов |
| textColor | Цвет текста — Цвет текста меток названий валютных пар |
| backColor | Цвет фона — Цвет фона прямоугольников-разделителей между парами |
| zeroCrossUpColor | Цвет пересечения вверх — Цвет прямоугольника при пересечении уровня вверх |
| zeroCrossDownColor | Цвет пересечения вниз — Цвет прямоугольника при пересечении уровня вниз |
| separatorWidth | Ширина разделителя — Ширина визуального разделителя между данными разных валютных пар |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 LimeGreen
#property indicator_color2 LimeGreen
#property indicator_color3 PaleVioletRed
#property indicator_color4 PaleVioletRed
#property indicator_color5 DarkGray
#property indicator_width1 2
#property indicator_width3 2
#property indicator_width5 2
#property indicator_minimum -55
#property indicator_maximum 55
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT;
extern double RsiPeriod = 14;
extern ENUM_APPLIED_PRICE RsiPrice = PRICE_CLOSE;
extern double RsiLevelUp = 80;
extern double RsiLevelDown = 20;
extern int MaPeriod = 5;
extern ENUM_MA_METHOD MaMethod = 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 rapid rsi";
extern string _ = "separator colors";
extern color textColor = Black;
extern color backColor = DarkGray;
extern color zeroCrossUpColor = LimeGreen;
extern color zeroCrossDownColor = HotPink;
extern int separatorWidth = 6;
double histouu[];
double histoud[];
double histodd[];
double histodu[];
double value[];
double work[];
double slope[];
double trend[];
int window;
string aPairs[];
string shortName;
double minValue;
double maxValue;
double maxValues[];
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 max)
{
for(int i=limit; i>=0; i--)
{
value[i+shift] = work[i+shift];
histouu[i+shift] = EMPTY_VALUE;
histoud[i+shift] = EMPTY_VALUE;
histodd[i+shift] = EMPTY_VALUE;
histodu[i+shift] = EMPTY_VALUE;
if (work[i+shift]>RsiLevelUp-50.0)
if (slope[i+shift]==1)
histouu[i+shift] = work[i+shift];
else histoud[i+shift] = work[i+shift];
if (work[i+shift]<RsiLevelDown-50.0)
if (slope[i+shift]==-1)
histodd[i+shift] = work[i+shift];
else histodu[i+shift] = work[i+shift];
}
createLabel(symbol,element,shift+limit+separatorWidth-2,max,isSignalCrossing(shift));
shift += (limit+separatorWidth-1);
}
int isSignalCrossing(int shift)
{
if (work[shift]>RsiLevelUp -50 && work[shift+1]<=RsiLevelUp -50) return( 1);
if (work[shift]<RsiLevelDown-50 && work[shift+1Показано первые 50% кода (символов: 7658)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.