Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1982

 
Valeriy Yastremskiy #:

Это поиск последних рыночных и исторических ордеров с нужными нам символом и магиком. К Вашей задаче это отношение не имеет. 

Про новый бар почитайте.

И если бар пока новый, то можно один раз открыть ордер.

спасибо.

 
Valeriy Yastremskiy #:
gdt_BeginBar_H1 это время открытия текущего бара, а gdt_NewBarH1 время открытия нового нулевого бара. При появлении нового нулевого бара время открытия нулевого бара меняется. И где то присвоение iTime есть. поиском поищите.

gdt_BeginBar_H1 = iTime (gs_Symbol, 60, 0);

 if (gdt_NewBarH1 == gdt_BeginBar_H1) {return;}

    datetime ldt_BeginBarControl = iTime (gs_Symbol, gi_ControlPeriod, 0)

есть только такое выражение. Это и есть присвоение?

gdt_NewBarH1 - это какое то общепринятое название ?
 
законопослушный гражданин #:


gdt_NewBarH1 - это какое то общепринятое название ?
Нет. Это программист назвал так переменную 
 
Sergey Gridnev #:
Нет. Это программист назвал так переменную 

как тогда понимать, что это время нулевого бара?

 
законопослушный гражданин #:

да! спасибо огромное! так повторные ордера не открываются.

но как же так? ведь эта функция уже есть в коде

она используется для контроля "расписания торговли". Так допускается делать?

кстати, трейлинг теперь стал странно работать. Точнее то работает то нет, но вроде не критично, так как некоторые сделки закрываются по ТР а не по трейлингу. но иногда и по SL..

и еще , не могли бы словами объяснить логику работы выражения:

как я понимаю, gdt_BeginBar_H1 возвращает время открытия текущего бара Н1, на котором идет торговля, gdt_BeginBar_H1 - это вообще что? и почему у него нет функции, его вычисляющей? 

всё, я понял. если так сделать то и трейлинг не работает до наступления нового бара Н1.

 
законопослушный гражданин #:

gdt_BeginBar_H1 = iTime (gs_Symbol, 60, 0);

 if (gdt_NewBarH1 == gdt_BeginBar_H1) {return;}

    datetime ldt_BeginBarControl = iTime (gs_Symbol, gi_ControlPeriod, 0)

есть только такое выражение. Это и есть присвоение?

gdt_NewBarH1 - это какое то общепринятое название ?

Кто-то писал о профисиональности кода...я не согласен

Профисиональный код читаешь и понимаешь.

В этом многое сразу не понятно, а особо вникать не хочется.


Что касается трейлинга - удали или закоментирую эту строку

//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|               Custom expert iteration function                                    |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void OnTick()
{
    //---- Для оптимизации убираем "пустые" варианты
    if (fSet_Continue()) return;
//----
    gdt_BeginBar_H1 = iTime (gs_Symbol, 60, 0);
    //---- Условия работы по времени (Bad Hour)
    if (gdt_NewBarH1 == gdt_BeginBar_H1) {return;}
 
законопослушный гражданин #:

как тогда понимать, что это время нулевого бара?

это и не надо понимать, в коде при появлении нулевого бара

переменной gdt_BeginBar_H1 присваевается время открытия нулевого бара

gdt_BeginBar_H1 = iTime (gs_Symbol, 60, 0);
 
Tretyakov Rostyslav #:

Кто-то писал о профисиональности кода...я не согласен

Профисиональный код читаешь и понимаешь.

В этом многое сразу не понятно, а особо вникать не хочется.


Что касается трейлинга - удали или закоментирую эту строку

спасибо.

всё стало функционировать как надо!

код очень путанный для меня, и главное, половина функционала мне не нужно, но удалить его не получается (как я делал с другими совами) все переплетено ...

 
законопослушный гражданин #:

спасибо.

всё стало функционировать как надо!

код очень путанный для меня, и главное, половина функционала мне не нужно, но удалить его не получается (как я делал с другими совами) все переплетено ...

Иногда, если знаешь логику системы, проще написать новый сов.
 
Tretyakov Rostyslav #:

Уже не стыковка

А в чем именно не стыковка?  Или как должно быть?

#property indicator_plots   4    - количество графических серий, в данном случае линий, их 4.

PlotIndexSetInteger(5,PLOT_COLOR_INDEXES,20); - задается количество цветов линии в буфере с индексом 5.

Причина обращения: