Real_Time_MultiIndicator_v1
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «multiindicator.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Real_Time_MultiIndicator_v1 — это пользовательский индикатор для MetaTrader 4, работающий в отдельном окне. Он отображает таблицу текущих сигналов пяти технических индикаторов (Parabolic SAR, MACD, SMA Cross, ADX, CCI) на четырёх таймфреймах (M15, M30, H1, H4).
Для каждого индикатора и таймфрейма определяется направление сигнала путём сравнения значений на текущем и предыдущих барах. Результаты выводятся в виде текстовых объектов, оформленных прямоугольниками с настраиваемыми цветами.
Индикатор предоставляет настраиваемые параметры для каждого из пяти технических индикаторов, включая шаги, периоды и периоды скользящих средних, а также позволяет настроить цвета отображения таблицы и текста.
Настройки программы
| Настройка | Описание |
|---|---|
| TColor | Цвет таблицы — Цвет прямоугольников таблицы. |
| TxtColor | Цвет текста — Цвет текста в таблице. |
| p1 | Заголовок Parabolic SAR — Заголовок группы параметров Parabolic SAR. |
| SAR_Step | Шаг Parabolic SAR — Шаг Parabolic SAR. |
| SAR_Max | Максимум Parabolic SAR — Максимальное значение шага Parabolic SAR. |
| p2 | Заголовок MACD — Заголовок группы параметров MACD. |
| Fast_EMA | Быстрая EMA для MACD — Быстрая экспоненциальная скользящая средняя для MACD. |
| Slow_EMA | Медленная EMA для MACD — Медленная экспоненциальная скользящая средняя для MACD. |
| MACD_SMA | Период SMA сигнальной линии MACD — Период SMA для сигнальной линии MACD. |
| p3 | Заголовок Moving Average — Заголовок группы параметров Moving Average. |
| Fast_MA | Период быстрой MA — Период быстрой простой скользящей средней для пересечения MA. |
| Slow_MA | Период медленной MA — Период медленной простой скользящей средней для пересечения MA. |
| p4 | Заголовок ADX — Заголовок группы параметров ADX. |
| ADX_Period | Период ADX — Период расчёта индикатора ADX. |
| p5 | Заголовок CCI — Заголовок группы параметров CCI. |
| Period_CCI | Период CCI — Период расчёта индикатора CCI. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_maximum 10.0
#property indicator_minimum 0.0
extern color TColor = SteelBlue;
extern color TxtColor = Red;
extern string p1 = "Parabolic SAR Parameter";
extern double SAR_Step = 0.02;
extern double SAR_Max = 0.2;
extern string p2 = "MACD Parameter";
extern int Fast_EMA = 12;
extern int Slow_EMA = 26;
extern int MACD_SMA = 9;
extern string p3 = "Moving Average Parameter";
extern int Fast_MA = 5;
extern int Slow_MA = 10;
extern string p4 = "ADX Parameter";
extern int ADX_Period = 14;
extern string p5 = "CCI Parameter";
extern int Period_CCI = 14;
int t1, t2, t11, t12, t13, t14, t15, a, b;
int textT[6], textC[8], tt[10];
int per[] = {15, 30, 60, 240}; // {1=M1, 5=M5, 15=M15, 30=M30, 60=H1, 240=H4, 1440=D1, 10080=W1, 43200=MN1}
string nameS[] = {"INDICATOR", "M15", "M30", "H1", "H4"};
string name[] = {"Parabolic SAR", "MACD", "SMA Cross", "ADX", "CCI",
"", ""};
int init()
{
// код доступен только после оплаты
}
int Error(int p, int a)
{
double s = iClose(NULL, p, a);
if(s == 0)
return(1);
}
string SAR(int p)
{
int ii = 1;
if(iSAR(NULL, p, SAR_Step, SAR_Max, 0) > iClose(NULL, p, ii))
{
while(iSAR(NULL, p, SAR_Step, SAR_Max, ii) > iClose(NULL, p, ii))
ii++;
if(Error(p, ii + 1) == 1)
return("Waiting data");
return("Sell(" + DoubleToStr(ii, 0) + ")");
}
else
{
while(iSAR(NULL, p, SAR_Step, SAR_Max, ii) < iClose(NULL, p, ii))
ii++;
if(Error(p, ii + 1) == 1)
return("Waiting data");
return("Buy(" + DoubleToStr(ii, 0) + ")");
}
}
string MACD(int p)
{
int ii = 1;
if(iMACD(NULL, p, Fast_EMA, Slow_EMA, MACD_SMA, PRICE_MEDIAN, 0, 0) <
iMACD(NULL, p, Fast_EMA, Slow_EMA, MACD_SMA, PRICE_MEDIAN, 1, 0))
{
while(iMACD(NULL, p, Fast_EMA, Slow_EMA, MACD_SMA,
PRICE_MEDIAN, 0, ii) <
iMACD(NULL, p, Fast_EMA, Slow_EMA, MACD_SMA,
PRICE_MEDIAN, 1, ii))
ii++;
if(Error(p, ii + 1) == 1)
return("Waiting data");
return("Sell(" + DoubleToStr(ii, 0) + ")");
}
else
{
while(iMACD(NULL, p, Fast_EMA, Slow_EMA, MACD_SMA,
PRICE_MEDIAN, 0, ii) >
iMACD(NULL, p, Fast_EMA, Slow_EMA, MACD_SMA,
PRICE_MEDIAN, 1, ii))
ii++;
if(Error(p, ii + 1) == 1)
return("Waiting data");
return("Buy(" + DoubleToStr(ii, 0) + ")");
}
}
string CMA(int p)
{
int ii = 1;
if(iMA(NULL, p, Fast_MA, 0, MODE_SMA, PRICE_MEDIAN, 0) <
iMA(NULL, p, Slow_MA, 0, MODE_SMA, PRICE_MEDIAN, 0))
{
while(iMA(NULL, p, Fast_MA, 0, MODE_SMA, PRICE_MEDIAN, ii) <
iMA(NULL, p, Slow_MA, 0, MODE_SMA, PRICE_MEDIAN, ii))
ii++;
if(Error(p, ii + 1) == 1)
return("Waiting data");
return("Sell(" + DoubleToStr(ii, 0) + ")");
}
else
{
while(iMA(NULL, p, Fast_MA, 0, MODE_SMA, PRICE_MEDIAN, ii) >
iMA(NULL, p, Slow_MA, 0, MODE_SMA, PRICE_MEDIAN, ii))
ii++;
if(Error(p, ii + 1) == 1)
return("Waiting data");
return("Buy(" + DoubleToStr(ii, 0) + ")");
}
}
string ADX(int p)
{
int ii = 1;
if(iADX(NULL, p, ADX_Period, PRICE_MEDIAN, 1, 0) <
iADX(NULL, p, ADX_Period, PRICE_MEDIAN, 2, 0))
{
while(iADX(NULL, p, ADX_Period, PRICE_MEDIAN, 1, ii) <
iADX(NULL, p, ADX_Period, PRICE_MEDIAN, 2, ii))
ii++;
if(Error(p, ii + 1) == 1)
return("Waiting data");
return("Sell(" + DoubleToStr(ii, 0) + ")");
}
else
{
while(iADX(NULL, p, ADX_Period, PRICE_MEDIAN, 1, ii) >
iADX(NULL, p, ADX_Period, PRICE_MEDIAN, 2, ii))
ii++;
if(Error(p, ii + 1) == 1)
return("Waiting data");
return("Buy(" + DoubleToStr(ii, 0) + ")");
}
}
string CCI(int p)
{
int ii = 1;
if(iCCI(NULL, p, Period_CCI, PRICE_MEDIAN, 0) < 0)
{
while(iCCI(NULL, p, Period_CCI, PRICE_MEDIAN, ii) < 0)
ii++;
if(Error(p, ii + 1) == 1)
return("Waiting data");
return("Sell(" + DoubleToStr(ii, 0) + ")");
}
else
{
while(iCCI(NULL, p, Period_CCI, PRICE_MEDIAN, ii) > 0)
ii++;
if(Error(p, ii + 1) == 1)
return("Waiting data");
return("Buy(" + DoubleToStr(ii, 0) + ")");
}
}
/*//+------------------------------------------------------------------+
string ???????(int p)
{
int ii = 1;
if(??????? ??? ?????????? - true - sell, false - buy)
{
while(??????? ??? sell)
ii++;
if(Error(p, ii + 1) == 1)
return("Waiting data");
return("Sell(" + DoubleToStr(ii, 0) + ")");
}
else
{
while(??????? ??? buy)
ii++;
if(Error(p, ii + 1) == 1)
Показано первые 50% кода (символов: 7421)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.