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

 

:-)

1. Наличие ошибки в МТ5

Присутствует в БКС???

 
Roman Shiredchenko:

:-)

1. Наличие ошибки в МТ5

Присутствует в БКС???

Добрый день!

Вот советник, попробуйте, но выберире Fight, что бы не превысить лимит транзакций на реале (2000). 

Файлы:
MT5_Test.mq5  10 kb
 

Каждый день новые сюрпризы:

2015.09.07 10:00:10.446 Forts_trader (MIX-9.15,M1)      StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:10.696 Forts_trader (MXI-12.15,M1)     StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:10.696 Forts_trader (MXI-12.15,M1)     StopTrading: Билет = 0 OnTradeTransaction: Sell ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:10.805 Forts_trader (MGNT-9.15,H1)     StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:10.883 Forts_trader (SNGR-9.15,H1)     StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:10.883 Forts_trader (SNGR-9.15,H1)     StopTrading: Билет = 0 OnTradeTransaction: Sell ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:10.992 Forts_trader (CHMF-9.15,H1)     StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:11.882 Forts_trader (LKOH-9.15,H1)     StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:12.615 Forts_trader (GOLD-9.15,M1)     StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:12.615 Forts_trader (GOLD-9.15,M1)     StopTrading: Билет = 0 OnTradeTransaction: Sell ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:17.888 Forts_trader (UJPY-9.15,H1)     StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:18.340 Forts_trader (Eu-9.15,M1)       StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:18.512 Forts_trader (Si-3.16,M1)       StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:21.210 Forts_trader (SILV-9.15,H1)     StopTrading: Билет = 0 OnTradeTransaction: Sell ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:28.246 Forts_trader (MTSI-9.15,H1)     StopTrading: Билет = 0 OnTradeTransaction: Sell ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:33.737 Forts_trader (RTS-9.15,M1)      StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
2015.09.07 10:00:41.116 Forts_trader (TRNF-9.15,H1)     StopTrading: Билет = 0 OnTradeTransaction: Buy ордер не установлен! Причина: Рынок закрыт
 
Михаил:

Каждый день новые сюрпризы:

И виноваты в этом, безусловно, разработчики :) Хотя в самом ПО в Открытии ничего не менялось с середины июля, когда они на 1150 обновились.

 

P.S.

После моего ответа в Открытие на указание возможных проблем, они в пятницу обещали новый Access Server развернуть. По непонятным мне причинам это у них может быть сделано не раньше вторника этой недели. Ждем...

 
Aytugan Khafizov:

 Хотя в самом ПО в Открытии ничего не менялось с середины июля, когда они на 1150 обновились.

Так это уже давно. И тут на форуме всплывало, а безусловным виноватым был объявлен топикстартер.
 

Конечно я во всём виноват!

Сижу в носу ковыряюсь и думаю:

"Что бы ещё поганенького выдумать?" 

 

P/S В спецификации Plaza II есть поток FORTS_FUTTRADE_REPL

в котором есть таблица heartbeat ( Служебная таблица cерверных часов )

Данная таблица наполняется ядром торговой системы с определенной периодичностью и может быть

использована для задач синхронизации (например, для проверки прихода всех сделок за определенный

момент времени). Таблица используется в режиме добавления записей; очистка таблицы происходит в

ночное время.

Таблица 5. Поля таблицы heartbeat

Поле Тип Описание

replID i8 Служебное поле подсистемы репликации

replRev i8 Служебное поле подсистемы репликации

replAct i8 Служебное поле подсистемы репликации

server_time t Дата и время сервера

МТ5 Использует Plaza II

Так почему нельзя было вставлять время сервера в структуры типа MqlTick,

возвращать это время сервера в TimeTradeServer() ?

О какой алготорговле вообще можно говорить, если в 10:00:41 - РЫНОК ЗАКРЫТ????? 

 

Вставлять ещё одно числовое поле в самый интенсивный поток (стакана) избыточно.

Но как советует Ренат, так проверки получаются избыточные. В голове разработчиков так и остался один лишь форекс...

Похоже, просьбы в концепции и тестировании "пятёрки" опираться на низколиквидные инструменты услышана не будет никогда. Впрочем, делать это сейчас во многом уже поздно...

Ошибка заявки на FORTS (Market closed)

Renat Fatkhullin, 2015.03.11 12:31

Посмотрите котировки по инструменту - какое там точно время стоит. Если котировки не обновились с прошлой сессии, значит рынок еще не открылся.

Я бы просто прикололся посмотреть на код, который будет автоматически и полностью корректно учитывать приведённое условие.

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

 
Aleksey:

Вставлять ещё одно числовое поле в самый интенсивный поток (стакана) избыточно.


Смешно даже....

Биржа транслирует это время (ничего мудрить даже не надо) 

Таблица 25. Поля таблицы info

Поле Тип Описание

replID i8 Служебное поле подсистемы репликации

replRev i8 Служебное поле подсистемы репликации

replAct i8 Служебное поле подсистемы репликации

infoID i8 Уникальный ключ

logRev i8 Ревизия по фьючерсам на момент формирования

снэпшота

lifeNum i4 Номер жизни входящего потока

moment t Время формирования снэпшота 

 
Михаил:

Смешно даже....

Биржа транслирует это время (ничего мудрить даже не надо) 

Не удивлюсь если оно передаётся, просто к стаканам не привязано.

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

Но не принципиально.

 
Aleksey:

Не удивлюсь если оно передаётся, просто к стаканам не привязано.

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

Но не принципиально.

Дело в том, что время - является СИНХРОНИЗАТОРОМ торговли,

потому что стаканы "шевелятся" и в клиринг и перед торговлей.

Если бы указывалось точное время сервера, то мы бы знали находимся ли мы во временной зоне торговли или нет! 

Сейчас, мне приходится (по таймеру) вызывть функцию TimeTradeServer(), которая Возвращает расчетное текущее время торгового сервера!!!, что бы определить в каких

временных воротах я нахожусь. Если бы со стаканом (MqlBookInfo() ) приходило время сервера (которое биржа транслирует), то "танцев с бубнами" НЕ БЫЛО! 

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

 Что мешалл разработчикам вставить в структуру время снэпшота?

struct MqlBookInfo
  {
   datetime         moment;     //Время создания снэпшота  
   ENUM_BOOK_TYPE   type;       // тип заявки из перечисления ENUM_BOOK_TYPE
   double           price;      // цена
   long             volume;     // объем
  };
Причина обращения: