ФОРТС. Вопросы по исполнению - страница 108

 

Пробдему синхронизации с биржевым временем можно решить очень просто

struct MqlBookInfo 
  { 
   ENUM_BOOK_TYPE   type;       // тип заявки из перечисления ENUM_BOOK_TYPE 
   double           price;      // цена 
   long             volume;     // объем 
  };

Из спецификации Плаза 2

Т.е просто в структуру MqlBookInfo добавить время :)

struct MqlBookInfo 
  { 
   ENUM_BOOK_TYPE   type;       // тип заявки из перечисления ENUM_BOOK_TYPE 
   double           price;      // цена 
   long             volume;     // объем 
   ulong            moment;     // время (добавить)    
  };
 
fxsaber:

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

Не тот скрипт был :)

2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508923,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508924,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508925,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508926,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508927,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508928,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_DONE_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_SETUP_MSC)) = 2018.04.25 16:49:23.000
 
Dennis Kirichenko:

Улыбнуло!

 
prostotrader:

Пробдему синхронизации с биржевым временем можно решить очень просто

Из спецификации Плаза 2

Т.е просто в структуру MqlBookInfo добавить время :)

Но как это позволит решить проблему, связанную с чтением логов, т.е. когда у меня время одно пишется, а у биржи/сервера другое?

В любом случае, нам сие не доступно.

 
Aleksey Vyazmikin:
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508923,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508924,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508925,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508926,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508927,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508928,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_DONE_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_SETUP_MSC)) = 2018.04.25 16:49:23.000

Тогда получается еще бОльшая ерунда, т.к. время не совпадает с логами сервера

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

ФОРТС. Вопросы по исполнению

Aleksey Vyazmikin, 2018.04.26 12:56

Похоже на сетевые задержки на стороне клиента, вот как проходило исполнение на стороне торгового сервера:

0       6       2018.04.25 16:49:24.024 85.***.***.***    '***': exchange buy 10.00 Si-6.18 at market (62785 / 62788 / 62787)
0       6       2018.04.25 16:49:24.024 85.***.***.***    '***': request transfered to dealers, rule 'FORTS Gateway #real' (exchange buy 10.00 Si-6.18 at market)
0       6       2018.04.25 16:49:24.028 127.0.0.1       '2': request from '***' (exchange buy 10.00 Si-6.18 at market)
0       6       2018.04.25 16:49:24.029 127.0.0.1       '2': placed for execution for '***' (exchange buy 10.00 Si-6.18 at market)(62785 / 62788 / 62787) 
0       6       2018.04.25 16:49:24.029 85.***.***.***    '***': order placed for execution [#87849076 buy 10.00 Si-6.18 at market], time 5.98 ms
0       6       2018.04.25 16:49:24.030 FORTS Gateway #real     '***': order #87849076 buy 10.00 Si-6.18 at market request new due execution [request new order #87849076], time: 0.05 ms
0       6       2018.04.25 16:49:24.036 FORTS Gateway #real     '***': order #87849076 buy 10.00 Si-6.18 at market placed due execution [added order #87849076, buy limit 10.00 Si-6.18 at 65426 [based on order '30444116819']], time: 0.18 ms
0       6       2018.04.25 16:49:24.041 FORTS Gateway #real     '***': deal performed [#48508923 buy 1.00 Si-6.18 at 62788]
0       6       2018.04.25 16:49:24.041 '***': order performed partially buy 1.00 at 62788 [#87849076 buy 10.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.041 FORTS Gateway #real     '***': order #87849076 buy 10.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62788 [based on deal '2026006054']], time: 2.06 ms
0       6       2018.04.25 16:49:24.043 FORTS Gateway #real     '***': deal performed [#48508924 buy 1.00 Si-6.18 at 62788]
0       6       2018.04.25 16:49:24.043 '***': order performed partially buy 1.00 at 62788 [#87849076 buy 10.00 / 1.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.043 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 1.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62788 [based on deal '2026006055']], time: 3.02 ms
0       6       2018.04.25 16:49:24.048 FORTS Gateway #real     '***': deal performed [#48508925 buy 5.00 Si-6.18 at 62788]
0       6       2018.04.25 16:49:24.048 '***': order performed partially buy 5.00 at 62788 [#87849076 buy 10.00 / 2.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.048 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 2.00 Si-6.18 at market filled due execution [filled order #87849076, buy 5.00 Si-6.18 at 62788 [based on deal '2026006056']], time: 1.73 ms
0       6       2018.04.25 16:49:24.050 FORTS Gateway #real     '***': deal performed [#48508926 buy 1.00 Si-6.18 at 62789]
0       6       2018.04.25 16:49:24.050 '***': order performed partially buy 1.00 at 62789 [#87849076 buy 10.00 / 7.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.050 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 7.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62789 [based on deal '2026006057']], time: 3.40 ms
0       6       2018.04.25 16:49:24.053 FORTS Gateway #real     '***': deal performed [#48508927 buy 1.00 Si-6.18 at 62789]
0       6       2018.04.25 16:49:24.053 '***': order performed partially buy 1.00 at 62789 [#87849076 buy 10.00 / 8.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.053 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 8.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62789 [based on deal '2026006058']], time: 1.49 ms
0       6       2018.04.25 16:49:24.054 FORTS Gateway #real     '***': deal performed [#48508928 buy 1.00 Si-6.18 at 62789]
0       6       2018.04.25 16:49:24.055 '***': order performed buy 1.00 at 62789 [#87849076 buy 10.00 / 9.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.055 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 9.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62789 [based on deal '2026006059']], time: 4.03 ms

Более того, история торгов MT5 врет, показывая, что все исполнилось идеально.

 

Особенно это показательно

Время установки и исполнения ордера ОДИНАКОВОЕ :)

2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_DONE_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_SETUP_MSC)) = 2018.04.25 16:49:23.000
 
prostotrader:

Время установки и исполнения ордера ОДИНАКОВОЕ :)

Странное совпадение, что время кратно секунде (нет миллисекунд после точки).

 
fxsaber:

Тогда получается еще бОльшая ерунда, т.к. время не совпадает с логами сервера

Более того, история торгов MT5 врет, показывая, что все исполнилось идеально.


 
fxsaber:

Странное совпадение, что время кратно секунде (нет миллисекунд после точки).

Да, меня это так же раздражает, но думаю, что это настройка сервера.

 
prostotrader:

Особенно это показательно

Время установки и исполнения ордера ОДИНАКОВОЕ :)

Интересно, кто не из Открытие, там так же без миллисекунд все в истории или как?

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