4 time frame asctrend
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «4 time frame asctrend.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 5, отображающий в отдельном окне состояние сигналов Asctrend на четырёх таймфреймах. Каждый таймфрейм представлен двумя буферами (восходящий и нисходящий сигнал), значения выводятся стрелками на уровнях 1–4. В окне индикатора также создаются текстовые метки с обозначениями выбранных таймфреймов.
Пользователь может задать четыре таймфрейма (текущий, следующий и т.д.), параметр Risk, уникальный идентификатор для меток и настройки оповещений. Оповещения срабатывают, когда на заданном числе таймфреймов сигналы совпадают по направлению; поддерживаются всплывающее сообщение, звук, e-mail и push-уведомление.
Индикатор использует встроенный пользовательский индикатор Asctrend для расчёта значений на каждом из выбранных таймфреймов и агрегирует результаты. Внешний вид стрелок и меток настраивается (цвет, толщина линий, смещение подписей).
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame1 | Таймфрейм 1 — Первый анализируемый таймфрейм; может быть задан строкой, например текущий таймфрейм или конкретный период. |
| TimeFrame2 | Таймфрейм 2 — Второй анализируемый таймфрейм; задаётся строкой. |
| TimeFrame3 | Таймфрейм 3 — Третий анализируемый таймфрейм; задаётся строкой. |
| TimeFrame4 | Таймфрейм 4 — Четвёртый анализируемый таймфрейм; задаётся строкой. |
| Risk | Риск — Числовой параметр, влияющий на расчёт значений индикатора Asctrend. |
| UniqueID | Уникальный идентификатор — Уникальный идентификатор индикатора, используемый для именования объектов и отображения краткого имени. |
| alertsOn | Оповещения включены — Включает или отключает оповещения индикатора. |
| alertsLevel | Уровень оповещений — Минимальное число таймфреймов, при котором формируется оповещение. |
| alertsMessage | Всплывающее сообщение — Выводить всплывающее сообщение при срабатывании оповещения. |
| alertsSound | Звуковое оповещение — Проигрывать звуковой сигнал при срабатывании оповещения. |
| alertsEmail | Оповещение по e-mail — Отправлять оповещение по электронной почте при срабатывании условия. |
| alertsNotify | Push-уведомление — Отправлять push-уведомление при срабатывании оповещения. |
| LinesWidth | Толщина линий — Толщина линий для отображения стрелок индикатора. |
| LabelsColor | Цвет меток — Цвет текстовых меток таймфреймов в окне индикатора. |
| LabelsHorizontalShift | Горизонтальное смещение меток — Горизонтальное смещение меток таймфреймов относительно текущего бара. |
| LabelsVerticalShift | Вертикальное смещение меток — Вертикальное смещение меток таймфреймов в окне индикатора. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Blue
#property indicator_color4 Red
#property indicator_color5 Blue
#property indicator_color6 Red
#property indicator_color7 Blue
#property indicator_color8 Red
#property indicator_minimum 0
#property indicator_maximum 5
extern string TimeFrame1 = "Current time frame";
extern string TimeFrame2 = "next1";
extern string TimeFrame3 = "next2";
extern string TimeFrame4 = "next3";
extern int Risk = 6;
extern string UniqueID = "4 Time frame Asctrend";
extern bool alertsOn = false;
extern int alertsLevel = 3;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern bool alertsNotify = false;
extern int LinesWidth = 0;
extern color LabelsColor = DarkGray;
extern int LabelsHorizontalShift = 5;
extern double LabelsVerticalShift = 1.5;
double ST1u[];
double ST1d[];
double ST2u[];
double ST2d[];
double ST3u[];
double ST3d[];
double ST4u[];
double ST4d[];
int timeFrames[4];
bool returnBars;
bool calculateValue;
string indicatorFileName;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
for (int t=0; t<4; t++) ObjectDelete(UniqueID+t);
return(0);
}
double trend[][2];
#define _up 0
#define _dn 1
int start()
{
// код доступен только после оплаты
}
int i,r,counted_bars=IndicatorCounted();
if(counted_bars < 0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { ST1u[0] = limit+1; return(0); }
if (calculateValue) { calculateByST(limit); return(0); }
if (timeFrames[0] != Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[0],indicatorFileName,"returnBars",0,0)*timeFrames[0]/Period()));
if (timeFrames[1] != Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[1],indicatorFileName,"returnBars",0,0)*timeFrames[1]/Period()));
if (timeFrames[2] != Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[2],indicatorFileName,"returnBars",0,0)*timeFrames[2]/Period()));
if (timeFrames[3] != Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[3],indicatorFileName,"returnBars",0,0)*timeFrames[3]/Period()));
if (ArrayRange(trend,0)!=Bars) ArrayResize(trend,Bars);
bool initialized = false;
if (!initialized)
{
initialized = true;
int window = WindowFind(UniqueID);
for (int t=0; t<4; t++)
{
string label = timeFrameToString(timeFrames[t]);
ObjectCreate(UniqueID+t,OBJ_TEXT,window,0,0);
ObjectSet(UniqueID+t,OBJPROP_COLOR,LabelsColor);
ObjectSet(UniqueID+t,OBJPROP_PRICE1,t+LabelsVerticalShift);
ObjectSetText(UniqueID+t,label,8,"Arial");
}
}
for (t=0; t<4; t++) ObjectSet(UniqueID+t,OBJPROP_TIME1,Time[0]+Period()*LabelsHorizontalShift*60);
for(i = limit, r=Bars-i-1; i >= 0; i--,r++)
{
trend[r][_up] = 0;
trend[r][_dn] = 0;
for (int k=0; k<4; k++)
{
int y = iBarShift(NULL,timeFrames[k],Time[i]);
double xst = iCustПоказано первые 50% кода (символов: 6390)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.