multi_pair_laguerre_rsi_mtf_nmc.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «multi_pair_laguerre_rsi_mtf_nmc.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает мультипарный Лагерр RSI на основе ценовых данных нескольких валютных пар и отображает результаты в отдельном окне. Используются два коэффициента сглаживания (Gama1 и Gama2), формирующие два буфера для сравнения и определения пересечений сигналов. Поддерживается работа на различных таймфреймах с возможностью задания количества баров на пару.
Визуализация включает основной график Лагерр RSI, линии верхнего и нижнего уровней, а также разделители и подписи для каждой пары. Индикатор создаёт графические объекты (текстовые метки и прямоугольники) для наглядного представления разделов между парами.
Внутренняя функция расчёта Лагерр RSI выполняется в отдельном режиме, вызываемом через специальный параметр-ключ. Основной режим отрисовки использует вызов пользовательского индикатора через iCustom для получения рассчитанных значений по каждой паре. Уровни и пересечения определяются на основе соотношения двух буферов с разными коэффициентами сглаживания.
Настройки программы
| Настройка | Описание |
|---|---|
| _ | Параметр-ключ для переключения режима расчёта Лагерр |
| AppliedPrice | Применяемая цена для расчёта индикатора (например, PRICE_CLOSE) |
| Gama1 | Первый коэффициент сглаживания Лагерра, используемый для расчёта основного буфера |
| Gama2 | Второй коэффициент сглаживания Лагерра, используемый для расчёта сравнительного буфера |
| barsPerPair | Количество баров, используемых для расчёта по каждой паре |
| TimeFrame | Таймфрейм для расчёта индикатора (например, Current time frame) |
| levelUp | Значение верхнего уровня для отображения на графике |
| levelDown | Значение нижнего уровня для отображения на графике |
| text | Параметр текстового отображения |
| textColor | Цвет текста подписей на графике |
| backColor | Цвет фона разделителей между парами |
| separatorWidth | Ширина разделителя между парами на графике (минимум 4) |
| UniqueID | Уникальный идентификатор индикатора, используемый для именования графических объектов и буферов |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 DarkOrange
#property indicator_color2 Lime
#property indicator_color3 DimGray
#property indicator_color4 DimGray
#property indicator_minimum -0.1
#property indicator_maximum 1.1
#property indicator_style3 STYLE_DOT
#property indicator_style4 STYLE_DOT
extern string _ = "parameters";
extern int AppliedPrice = PRICE_CLOSE;
extern double Gama1 = 0.6;
extern double Gama2 = 0.8;
extern int barsPerPair = 100;
extern string TimeFrame = "Current time frame";
extern string pairs = "EURUSD;GBPUSD;USDCHF";
extern double levelUp = 0.85;
extern double levelDown = 0.15;
extern string text = "color";
extern color textColor = Silver;
extern color backColor = C'48,48,48';
extern int separatorWidth = 6;
extern string UniqueID = "Multi Laguerre RSI ";
double ind_buffer1[];
double ind_buffer2[];
double ind_buffer3[];
double ind_buffer4[];
double L0[];
double L1[];
double L2[];
double L3[];
string aPairs[];
string shortName;
int window;
bool calculating=false;
string IndicatorFileName;
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
for (int i = 0; i < ArraySize(aPairs); i++) {
ObjectDelete(shortName+i);
ObjectDelete(shortName+i+i);
ObjectDelete(shortName+i+i+i);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
void calculateLaguerreRSI(string symbol,int limit,int& shift,int element)
{
int i;
for(i=0; i<limit; i++) {
int y=iBarShift(NULL,timeFrame,Time[i]);
if (Gama1!=0) ind_buffer1[shift+i]=iCustom(symbol,timeFrame,IndicatorFileName,"calculateLaguerre",AppliedPrice,Gama1,0,y);
if (Gama2!=0) ind_buffer2[shift+i]=iCustom(symbol,timeFrame,IndicatorFileName,"calculateLaguerre",AppliedPrice,Gama2,0,y);
ind_buffer3[shift+i]=levelUp;
ind_buffer4[shift+i]=levelDown;
}
for (i=0;i<separatorWidth;i++) {
ind_buffer1[shift+liПоказано первые 50% кода (символов: 6465)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.