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

 
Taras Slobodyanik:

 

Спасибо!

Не сочтите за наглость, а можно попросить сделать функцию результата в виде суммы пунктов по всем открытым позициям? Использую библиотеку для работы с ордерами и не умею без неё осуществлять операции с ордерами :(

 

Приветствую.

ПОдсткажите, пожалста:

В OrderSend есть 

datetime expiration=0       // срок истечения ордера


Как прописать чтоб ордер удалялся после открытия, к примеру, через 3 часа или 3 свечи текущего графика? 

 
Andrey Sokolov:

Приветствую.

ПОдсткажите, пожалста:

В OrderSend есть 

datetime expiration=0       // срок истечения ордера


Как прописать чтоб ордер удалялся после открытия, к примеру, через 3 часа или 3 свечи текущего графика? 


Period()*3*60

Period()- количество минут в периуде

3-   кол.   нужных вам свечей

60- кол. секунд в минуте

И все что получилось прибавляем к Time[0] 

Как то так.

 
Cпасиб
 
Alekseu Fedotov:


Period()*3*60

Period()- количество минут в периуде

3-   кол.   нужных вам свечей

60- кол. секунд в минуте

И все что получилось прибавляем к Time[0] 

Как то так.

Уже давно можно писать PeriodSeconds() с нужным таймфреймом вместо Period()*60

Итого, получается так:

time_expiratonn=Время_установки_ордера+PeriodSeconds(PERIOD_CURRENT)*количество_свечей;

Либо вместо текущего периода использовать нужное количество свечей заданного таймфрейма: PeriodSeconds(PERIOD_M15)*3 - это время жизни ордера три пятнадцатиминутных свечи.

 
Andrey Sokolov:

Приветствую.

ПОдсткажите, пожалста:

В OrderSend есть 

datetime expiration=0       // срок истечения ордера


Как прописать чтоб ордер удалялся после открытия, к примеру, через 3 часа или 3 свечи текущего графика? 

в общих чертах - никак. Потому как ограничения неизвестны. Есть минимимальное время, есть максимальное, есть ограничения на типы ордеров. До клиента они не доводятся, поэтому использовать это нельзя.

очевидно что действие зависит от текущего настроения конкретного DC. Так что контроллируйте свои ордера сами :-)

 
Artyom Trishkin:

Уже давно можно писать PeriodSeconds() с нужным таймфреймом вместо Period()*60

Итого, получается так:

time_expiratonn=Время_установки_ордера+PeriodSeconds(PERIOD_CURRENT)*количество_свечей;

Либо вместо текущего периода использовать нужное количество свечей заданного таймфрейма: PeriodSeconds(PERIOD_M15)*3 - это время жизни ордера три пятнадцатиминутных свечи.


Спасибо!
 

Тема очень много раз обсуждалась но спрошу чтоб объяснили


Решил я написать себе индикатор, сделал, запустил на м5, он даже работает и что - то показывает. 

Проблемы начались когда я на м5 решил параллельно поставить риснок из другого ТФ

как сделать чтоб он показывал данные сразу с нескольких ТФ одновременно в одном окне?

 

Здравствуйте ...


Функция OrderSelect() копирует данные об ордере в программное окружение ... при последовательном выборе ордеров с помощью параметра SELECT_BY_POS информация отдаётся в том порядке, в котором она поступила с торгового сервера ... =  слышал, что ордера можно перебирать и в обратном порядке, кто подскажет "чайнику" как отобразить это в коде   MQL4 ... 

 
Yaroslav Nykula:

Здравствуйте ...


Функция OrderSelect() копирует данные об ордере в программное окружение ... при последовательном выборе ордеров с помощью параметра SELECT_BY_POS информация отдаётся в том порядке, в котором она поступила с торгового сервера ... =  слышал, что ордера можно перебирать и в обратном порядке, кто подскажет "чайнику" как отобразить это в коде   MQL4 ... 

Прямой перебор по открытым

  for(int i=0; i<OrdersTotal(); i++) {
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

Обратный перебор по закрытым

 for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
Причина обращения: