Выставление отложенных ордеров - страница 4

 

Какие действия то? я просто выставляю отложенные ордера, я их не трогаю вообще. выставил и забыл про них.

просто ставлю 2 отложенных ордера, один на покупку другой на продажу, выставляю им срок сутки чтоб они сами исчезали, на следующий день новые ордера.

Ордер сработал, открылась позиция я сижу курю ничего не делаю, закрылась опять ставлю ордер.

Проще некуда по идее. Я ордера не модифицирую не наращиваю, не передвигаю, я только слежу чтоб по цене открытия не выставлялось туча ордеров, но слежение за ордерами и работа с ними это же не одно и тоже. 

 

Поменял я как вы и сказали на:

 if(!PositionSelect(my_symbol))

ну код сократился, а толку работает он так же как и работал.

Дело не в этом. 

а по поводу ордера я бы согласился если бы он был один, но их два. Так что обычным   

if ( OrderSelect( ticket ) )

не обойдешься, ну или я просто не понимаю куда его прилепить
 
suharik:

Какие действия то? я просто выставляю отложенные ордера, я их не трогаю вообще. выставил и забыл про них.

просто ставлю 2 отложенных ордера, один на покупку другой на продажу, выставляю им срок сутки чтоб они сами исчезали, на следующий день новые ордера.

Ордер сработал, открылась позиция я сижу курю ничего не делаю, закрылась опять ставлю ордер.

Проще некуда по идее. Я ордера не модифицирую не наращиваю, не передвигаю, я только слежу чтоб по цене открытия не выставлялось туча ордеров, но слежение за ордерами и работа с ними это же не одно и тоже. 

В стандартной библиотеке:

bool              BuyStop(const double volume,const double price,const string symbol=NULL,const double sl=0.0,const double tp=0.0,
                             const ENUM_ORDER_TYPE_TIME type_time=ORDER_TIME_GTC,const datetime expiration=0,const string comment="");

  

const ENUM_ORDER_TYPE_TIME type_time=ORDER_TIME_GTC

 Из справки:

ORDER_TIME_GTC

Ордер будет находится в очереди до тех пор, пока не будет снят

 

Стоп-ордера - НЕ ЛИМИТНЫЕ ОРДЕРА! 

 
У меня показывает только 2 значения даты, вы 3 показали, чет не сходится
Файлы:
 

я так понимаю просто неправильно указал параметр закрытия ордера?

Хотя я брал из хелпера данные:

Срок действия ордера можно задать в поле type_time специальной структуры MqlTradeRequest при отправке торгового запроса функцией OrderSend(). Допустимы значения из перечисления ENUM_ORDER_TYPE_TIME. Для получения значения этого свойства используйте функцию OrderGetInteger() или HistoryOrderGetInteger() с модификатором ORDER_TYPE_TIME.

ENUM_ORDER_TYPE_TIME

Идентификатор

Описание

ORDER_TIME_GTC

Ордер будет находится в очереди до тех пор, пока не будет снят

ORDER_TIME_DAY

Ордер будет действовать только в течение текущего торгового дня

ORDER_TIME_SPECIFIED

Ордер будет действовать до даты истечения

ORDER_TIME_SPECIFIED_DAY

Ордер будет действовать до 00:00 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время.

 я и поставил в 1 поле даты идентификатор ORDER_TIME_DAY

 
suharik:

я так понимаю просто неправильно указал параметр закрытия ордера?

Хотя я брал из хелпера данные:

Срок действия ордера можно задать в поле type_time специальной структуры MqlTradeRequest при отправке торгового запроса функцией OrderSend(). Допустимы значения из перечисления ENUM_ORDER_TYPE_TIME. Для получения значения этого свойства используйте функцию OrderGetInteger() или HistoryOrderGetInteger() с модификатором ORDER_TYPE_TIME.

ENUM_ORDER_TYPE_TIME

Идентификатор

Описание

ORDER_TIME_GTC

Ордер будет находится в очереди до тех пор, пока не будет снят

ORDER_TIME_DAY

Ордер будет действовать только в течение текущего торгового дня

ORDER_TIME_SPECIFIED

Ордер будет действовать до даты истечения

ORDER_TIME_SPECIFIED_DAY

Ордер будет действовать до 00:00 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время.

 я и поставил в 1 поле даты идентификатор ORDER_TIME_DAY

ORDER_TIME_DAY - это САМО время, а ORDER_TIME_GTC - это тип

 

В 6 параметре должен быть ТИП, а в 7 время, а у Вас в 6 ТИП, а в 7 - "0" 

 

так как я могу указать больше параметров чем мне указывает подсказка в программаторе? как на скрине.

не  ORDER_TIME_DAY не ORDER_TIME_GTC, не работают. Ордер все равно исчезает мгновенно после попытки его выставить, а в логе пишет:

2015.04.24 03:29:23.813 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 80 ms

2015.04.24 03:29:23.733 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603

2015.04.24 03:29:21.984 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 80 ms

2015.04.24 03:29:21.903 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603

2015.04.24 03:29:15.290 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 111 ms

2015.04.24 03:29:15.179 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603

2015.04.24 03:29:14.271 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 91 ms

2015.04.24 03:29:14.179 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603

2015.04.24 03:29:01.780 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 81 ms

2015.04.24 03:29:01.699 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603

2015.04.24 03:28:54.038 Trades '987721': sell stop 1.00 SBRF-6.15 at 7483 sl: 7513 tp: 7394 placed for execution in 80 ms

2015.04.24 03:28:53.958 Trades '987721': sell stop 1.00 SBRF-6.15 at 7483 sl: 7513 tp: 7394

2015.04.24 03:28:53.940 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 86 ms

2015.04.24 03:28:53.854 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603


 СелОрдер стоит и никуда не девается а бай ордер исчезает, ошибок нету, сообщений об отмене или об удалении ордера тоже нету.

 
suharik:

так как я могу указать больше параметров чем мне указывает подсказка в программаторе? как на скрине.

не  ORDER_TIME_DAY не ORDER_TIME_GTC, не работают. Ордер все равно исчезает мгновенно после попытки его выставить, а в логе пишет:

2015.04.24 03:29:23.813 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 80 ms

2015.04.24 03:29:23.733 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603

2015.04.24 03:29:21.984 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 80 ms

2015.04.24 03:29:21.903 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603

2015.04.24 03:29:15.290 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 111 ms

2015.04.24 03:29:15.179 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603

2015.04.24 03:29:14.271 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 91 ms

2015.04.24 03:29:14.179 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603

2015.04.24 03:29:01.780 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 81 ms

2015.04.24 03:29:01.699 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603

2015.04.24 03:28:54.038 Trades '987721': sell stop 1.00 SBRF-6.15 at 7483 sl: 7513 tp: 7394 placed for execution in 80 ms

2015.04.24 03:28:53.958 Trades '987721': sell stop 1.00 SBRF-6.15 at 7483 sl: 7513 tp: 7394

2015.04.24 03:28:53.940 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603 placed for execution in 86 ms

2015.04.24 03:28:53.854 Trades '987721': buy limit 1.00 SBRF-6.15 at 7513 sl: 7483 tp: 7603


 СелОрдер стоит и никуда не девается а бай ордер исчезает, ошибок нету, сообщений об отмене или об удалении ордера тоже нету.

Вы не внимательно смотрите подсказку:

7 параметр - не должен быть "0" 

 

не хочет ругается если так сделать

 m_Trade.BuyStop(Lots,linebuy,my_symbol,linesell,tpbuy,ORDER_TIME_GTC,23:30,"BuyStop"); 

 
suharik:

Время задаётся не так :)

datetime end_time = datetime( SymbolInfoInteger( _Symbol, SYMBOL_EXPIRATION_TIME ) );

 

 m_Trade.BuyStop(Lots,linebuy,my_symbol,linesell,tpbuy,ORDER_TIME_GTC,end_time,"BuyStop"); 
Причина обращения: