OnTick - страница 4

 
Mikalas:

Продолжение о модификации ордера....

Ваш код:

 Для модификации нужно делать так (думаю, что и при установке ордера, Вы не правильно указываете тип экспирации):

Структуры естественно обнуляю

MqlTradeRequest request = {0};
MqlTradeResult  result  = {0};

Для модификации ордера 

request.symbol    = a_symbol;

указывать ненужно.

ORDER_TIME_DAY  мне не устраивает, мне нравится ORDER_TIME_SPECIFIED_DAY с ним у меня проблем нет.

Дело не в моих ошибках, это у меня тестовый советник, решил проверить скорость сервера в асинхронном режиме.

В итоге можно определить скорость исполнения сервер-биржа.

 
Serj_Che:

Структуры естественно обнуляю

Для модификации ордера 

request.symbol    = a_symbol;

указывать ненужно.

ORDER_TIME_DAY  мне не устраивает, мне нравится ORDER_TIME_SPECIFIED_DAY с ним у меня проблем нет.

Дело не в моих ошибках, это у меня тестовый советник, решил проверить скорость сервера в асинхронном режиме.

В итоге можно определить скорость исполнения сервер-биржа.

Ок, но у меня ВСЕ и всегда ордера модифицируются.

Возможно, с Вашим типом экспирации, нельзя так близко к рынку устанавливать ордер.  

Отсюда и ошибка. 

 
Serj_Che:

Дело не в моих ошибках, это у меня тестовый советник, решил проверить скорость сервера в асинхронном режиме.

Хоть намекните с какой частотой и по какому кол-ву ордеров отправляете запросы.

А вообще, ответ сервера переводится и трактуется вполне однозначно - ордер слишком близко к рынку (текущей цене), поэтому не может быть модифицирован. Типа вот-вот сработает.

Ошибка не появляется в моменты близкие к срабатыванию ордеров? 

 
komposter:

Хоть намекните с какой частотой и по какому кол-ву ордеров отправляете запросы.

А вообще, ответ сервера переводится и трактуется вполне однозначно - ордер слишком близко к рынку (текущей цене), поэтому не может быть модифицирован. Типа вот-вот сработает.

Ошибка не появляется в моменты близкие к срабатыванию ордеров? 

1. Пробовал по разному отправлять запросы, от 2 ms до 30 ms. Ордер только один. 30 ms - почти нету ошибок.

2. Я так понял это ответ сервера МТ. Непонятна эта ошибка, если бы это была форекс кухня тогда да. По моему на бирже не должно такого быть. 

3. Без разницы, и в 1 пункт от рынка и в 1 километр от рынка, ошибка одинакова.

Это полный отчет по эксперименту с задержкой 2 ms. :

2015.04.28 00:45:14.163 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6101, sl: 0 tp: 0

2015.04.28 00:45:14.166 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6113, sl: 0 tp: 0

2015.04.28 00:45:14.168 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6125, sl: 0 tp: 0

2015.04.28 00:45:14.170 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6137, sl: 0 tp: 0

2015.04.28 00:45:14.172 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6149, sl: 0 tp: 0

2015.04.28 00:45:14.174 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6161, sl: 0 tp: 0

2015.04.28 00:45:14.176 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6173, sl: 0 tp: 0

2015.04.28 00:45:14.178 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6185, sl: 0 tp: 0

2015.04.28 00:45:14.180 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6197, sl: 0 tp: 0

2015.04.28 00:45:14.198 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6101, sl: 0 tp: 0 placed for execution in 35 ms

2015.04.28 00:45:14.200 Trades 'хххххх': failed modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6113, sl: 0 tp: 0 [Modification failed due to order or position being close to market]

2015.04.28 00:45:14.204 Trades 'хххххх': failed modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6125, sl: 0 tp: 0 [Modification failed due to order or position being close to market]

2015.04.28 00:45:14.205 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6101 sl: 0 tp: 0 -> 6137, sl: 0 tp: 0 placed for execution in 34 ms

2015.04.28 00:45:14.207 Trades 'хххххх': failed modify order #13228718 sell limit 1.00 VTBR-6.15 at 6101 sl: 0 tp: 0 -> 6149, sl: 0 tp: 0 [Modification failed due to order or position being close to market]

2015.04.28 00:45:14.208 Trades 'хххххх': failed modify order #13228718 sell limit 1.00 VTBR-6.15 at 6101 sl: 0 tp: 0 -> 6161, sl: 0 tp: 0 [Modification failed due to order or position being close to market]

2015.04.28 00:45:14.210 Trades 'хххххх': failed modify order #13228718 sell limit 1.00 VTBR-6.15 at 6101 sl: 0 tp: 0 -> 6173, sl: 0 tp: 0 [Modification failed due to order or position being close to market]

2015.04.28 00:45:14.213 Trades 'хххххх': failed modify order #13228718 sell limit 1.00 VTBR-6.15 at 6101 sl: 0 tp: 0 -> 6185, sl: 0 tp: 0 [Modification failed due to order or position being close to market]

2015.04.28 00:45:14.215 Trades 'хххххх': failed modify order #13228718 sell limit 1.00 VTBR-6.15 at 6101 sl: 0 tp: 0 -> 6197, sl: 0 tp: 0 [Modification failed due to order or position being close to market]

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

 
Sergey Chalyshev:

2015.04.28 00:45:14.163 Trades 'хххххх': modify order #13228718 sell limit 1.00 VTBR-6.15 at 6203 sl: 0 tp: 0 -> 6101, sl: 0 tp: 0

Почему во всех запросах исходный ТП = 0? Ордер ни разу не модифицировался?

Может, стоит, как минимум, проверять результат, а лучше - дожидаться его? 

 

Посмотрите - ордер принят к исполнению в 00:45:14.198. Принят первый приказ, на модификацию тп на уровень 6101, отправленный 00:45:14.163.

А вы, не дожидаясь ответа, отправили еще 8 приказов. Зачем?