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

 
Andrey Sokolov #:

В массивах  k_buffer[0] и d_buffer[0] последние значения индикатора. В чем проблема вывести их и самому посмотреть?

Да, действительно, видимо, ошибка моя в другом. Спасибо!

 
Andrey Sokolov #:

Что именно не получается в сокращении кода?

Я уже писал. Что при выполнение определенных условий, закрывают несколько ордеров. По разным валютным парам и в разные стороны. Вот кусок кода.

 if ( NormalizeDouble((MaxOpenSell(2) + MaxOpenBuy(2) + MinOpenSell(2))*Point,Digits) >= Profit1 && FindLastSell() >= Block 
         && FindLastBuy() >= 1 && MaxOpenSell(2) > 0 && MA1 < MA2)
      {
         LockTicket = 0;
         CalProfHis = 0;
         bool close =  OrderClose((int)MaxOpenSell(5),MaxOpenSell(3), Ask, Slippage, clrPink);
              close =  OrderClose((int)MinOpenSell(5),MinOpenSell(3), Ask, Slippage, clrPink);
              close =  OrderClose((int)MaxOpenBuy(5),MaxOpenBuy(3), Bid, Slippage, clrBlue);
      }

В нем я закрываю три ордера.

НО, ДЦ иногда не пропускает, предполагаю из-за много сигналов одновременно. Так вот я могу расписать проверку по каждому ордеру, и повторить, в случае не выполнения.
Вопрос: как это сделать правильно и грамотно, и не писать огромный код. Уверен есть короткий способ, поэтому и спрашиваю, у Вас, старших товарищей по программированию.

 
makssub #:

Так вот я могу расписать проверку по каждому ордеру, и повторить, в случае не выполнения.
Вопрос: как это сделать правильно и грамотно, и не писать огромный код. Уверен есть короткий способ, поэтому и спрашиваю, у Вас, старших товарищей по программированию.

Тот вариант что я предлагал вам не подходит?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

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

Mihail Matkovskij, 2022.01.17 10:35

При возникновении условия выхода/закрытия добавить тикеты в массив. Затем если массив непустой проходить циклом по нему, вызывая OrderClose для каждого тикета. Далее проверять существование каждого тикета и закрытие удалять из списка (массива). Повторять данные действия с интервалом в 1-3 секунды пока список не окажется пустым.


 
Поликостылизм - наше всё
 
Artyom Trishkin #:
Поликостылизм - наше всё

это поначалу :) 

Конечно, когда вижу такие коды, слёзы жалости наворачиваются. 

 
Vitaly Muzichenko #:

это поначалу :) 

Конечно, когда вижу такие коды, слёзы жалости наворачиваются. 

Ну в то же время костыли сами себя не напишут...

 
Vitaly Muzichenko #:

это поначалу :) 

Конечно, когда вижу такие коды, слёзы жалости наворачиваются. 

Господа, большая просьба использовать аргументированную критику.

 
Andrey Sokolov #:

Господа, большая просьба использовать аргументированную критику.

Да это мы так.., просто разговор во время перекура. Не обращайте внимания.

 
Всё можно назвать костылями. Поскольку человек плохо понимает язык машинных кодов ассемблер были придуманы ЯП высокого и сверхвысокого уровней. Чем не костыли?
 
Mihail Matkovskij #:

При возникновении условия выхода/закрытия добавить тикеты в массив. Затем если массив непустой проходить циклом по нему, вызывая OrderClose для каждого тикета. Далее проверять существование каждого тикета и закрытие удалять из списка. Повторять данные действия с интервалом в 1-3 секунды пока список не окажется пустым.

Не покажете ли функцию закрытия целиком?

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