- Счётчик частичных закрытий ордера
- Работа советника внутри эксперта
- Нестандартные графики
bobrush:
способ выполнить часть кода эксперта 1 раз
способ выполнить часть кода эксперта 1 раз
#property strict int OnInit() { // Смотрите тему как ... учиться Alert("Эта часть кода выполняется 1 раз при запуске этого робота или повторном запуске терминала"); }
Не подходит. При наличии вот таких событий в количестве 10-100, которые причем следуют один за другим, т.е. события 2 не будет пока нет события 1. И мне каждый раз перезапускать терминал не хочется.
bobrush:
Не подходит. При наличии вот таких событий в количестве 10-100
Так выполнить часть кода эксперта 1 раз или событий в количестве 10-100 ?? Или это стёб ? И как изменится выполнение, если событий будет 500 ?
Не подходит. При наличии вот таких событий в количестве 10-100
STARIJ:
Так выполнить часть кода эксперта 1 раз или событий в количестве 10-100 ?? Или это стёб ? И как изменится выполнение, если событий будет 500 ?
Так выполнить часть кода эксперта 1 раз или событий в количестве 10-100 ?? Или это стёб ? И как изменится выполнение, если событий будет 500 ?
Событий может быть много, но у каждого события свои условия (код) выполнения, но эти события происходят не одновременно, а друг за другом через неизвестное количество времени. Я так понимаю в OnInit при запуске выполнится тот код, для которого условия однозначно уже существуют. А если условий нет, т.е. события этого не случилось, то и код просто проигнорируется. Мне же надо без маркировки конкретного события(Sob) выполнение кода 1 раз, при условии что это событие произошло.
if (Sob_1==1) // событие 1(1/0) { bool mod1=OrderModify(ticket1_sell, OrderOpenPrice(), SL1_sell, Price1_sell, 0, clrNONE); if (mod1==true) Alert ("первый ордер на продажу успешно модифицирован"); else Alert("ошибка модификации первого ордера на продажу", GetLastError()); Price2_buy=Ask; SL2_buy=Ask-SL*Point; TP2_buy=Ask+TP*Point; ticket2_buy=OrderSend( Symbol(),OP_BUY, lot2, Price2_buy, 20, SL2_buy, TP2_buy, NULL, 3, 0, clrGreen); Sob_1++; Sob_1_1_0=1; } //----------------------------событие 11(1/0)------------------------------ if (Sob_1_1_0==1 && OrderSelect(ticket2_buy, SELECT_BY_TICKET)==true) { if (OrderClosePrice()>=OrderTakeProfit()) { Alert("второй ордер на покупку закрыт, событие 11(1/0)"); Sob_1_1_0++; Sob_11=1; } }
bobrush: ... выполнение кода 1 раз, при условии что событие произошло.
В программировании важно суметь сформулировать свою мысль и только потом писать программу.
И видите, у всех картинки. Вставьте свое фото - это будет здорово!!!
bobrush:
И еще следует сказать, надо избегать выкладки кода, выполняющего нечто отличное от того что требуется. Новичку легче ковыряться в чужом коде, чем написать что-то стоящее. А опытным программистам, к которым Вы обращаетесь, в тысячу раз легче написать что-то заново, чем разбираться в чужих ошибках.
if (Sob_1==1) // событие 1(1/0) ................
Еще пример. При Sob_1==1 выполняется код, затем в конце условия Sob_1=2, чтоб Sob_1=1 никогда не повторилось и создается еще одно событие Sob_1_1_0=1. Далее при Sob_1_1_0=1 и выбранном ордере проверяется его закрытие по профиту и чтоб этот код снова никогда не повторился Sob_1_1_0=2, затем снова создается Sob_11=1, и вызвав это событие в след. условии, что будет означать - прошла последовательность Sob_1, Sob_1_1_0. Так вот как преобразовать код чтоб убрать строчку Sob1++, Sob_1_1_0++, чтоб фрагмент кода выполнился 1 раз?
STARIJ:
И еще следует сказать, надо избегать выкладки кода, выполняющего нечто отличное от того что требуется. Новичку легче ковыряться в чужом коде, чем написать что-то стоящее. А опытным программистам, к которым Вы обращаетесь, в тысячу раз легче написать что-то заново, чем разбираться в чужих ошибках.
Так ошибок в том то и дело что нет никаких, все работает. Просто при большом количестве этих событий я начинаю путаться в коде.
И еще следует сказать, надо избегать выкладки кода, выполняющего нечто отличное от того что требуется. Новичку легче ковыряться в чужом коде, чем написать что-то стоящее. А опытным программистам, к которым Вы обращаетесь, в тысячу раз легче написать что-то заново, чем разбираться в чужих ошибках.
bobrush:
Так ошибок в том то и дело что нет никаких, все работает. Просто при большом количестве этих событий я начинаю путаться в коде.
Так ошибок в том то и дело что нет никаких, все работает. Просто при большом количестве этих событий я начинаю путаться в коде.
Если все работает, так чего вы хотите? И сообщите все-таки
выполнить некий код 1 раз или каждый раз при возникновении сочетания определенных условий

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь