S# 4.0 MQS не перестает работать при превышении лимита счета

S# 4.0 MQS не перестает работать при превышении лимита счета
Atom
29.09.2011
dart


Если стратегия задает MQS котировать ордер с количеством контрактов, превышающим лимит счета, начинают очень быстро сыпаться месседжи, что размера счета не хватает и в конечном итоге робот просто вылетает.
В ранних версиях помню просто выскакивало всего одно сообщение и котирование просто останавливалось (это в окне мониторинга было видно), и робот не вылетал.
Можно сделать как раньше было?

Теги:


Спасибо:


1 2  >
Mikhail Sukhov

Фотография
Дата: 29.09.2011
Ответить


dart
Если стратегия задает MQS котировать ордер с количеством контрактов, превышающим лимит счета, начинают очень быстро сыпаться месседжи, что размера счета не хватает и в конечном итоге робот просто вылетает.
В ранних версиях помню просто выскакивало всего одно сообщение и котирование просто останавливалось (это в окне мониторинга было видно), и робот не вылетал.
Можно сделать как раньше было?


Как стабильного робота в данном случае зависит от MQS?
Спасибо:

dart

Фотография
Дата: 29.09.2011
Ответить


Mikhail Sukhov

Как стабильного робота в данном случае зависит от MQS?

Как стабильность робота зависит?
Он просто вылетает весь, со всеми стратегиями, когда кол-во сообщений становится очень большим (подсчитать не представляется возможным). То есть заново приходится его запускать.
Кроме того процессор грузится на 100 %
Спасибо:

Mikhail Sukhov

Фотография
Дата: 29.09.2011
Ответить


А чему равно Strategy.MaxErrorCount?
Спасибо:

dart

Фотография
Дата: 29.09.2011
Ответить


Mikhail Sukhov
А чему равно Strategy.MaxErrorCount?

Сорри, не знаю. Надо заново промоделировать ситуацию. В данный момент пока S#4.0 не могу запустить (почему то инструменты не находит). Сейчас опять S#3.1.8 запустил.
Спасибо:

Mikhail Sukhov

Фотография
Дата: 29.09.2011
Ответить


dart
В данный момент пока S#4.0 не могу запустить (почему то инструменты не находит).


ITrader.ProcessDataError
Спасибо:

dart

Фотография
Дата: 04.10.2011
Ответить


dart

В данный момент пока S#4.0 не могу запустить (почему то инструменты не находит). Сейчас опять S#3.1.8 запустил.

Опять не могу подключить S# 4.0. Та же самая ситуация. Робот вылетел, второй раз подключиться не могу.
_trader.ProcessDataError += ex => this.GuiAsync(() => MessageBox.Show(this, ex.ToString())) ничего не выдает.
В MainWindow выполняется TryCreateStrategy. Внутри неё перед проверкой
if (_lkoh != null && _frts != null && _fgazp != null && _micex != null)
вывожу в файл:
outStream.WriteLine("Time = {0} test TryCrStr, _lkoh = {1}, _frts = {2}, _fgazp = {3}, _micex = {4}", _trader.MarketTime, _lkoh.ToString(), _frts.ToString(), _fgazp.ToString(), _micex.ToString());
Все бумаги и портфель выводит правильно, но вылетает ошибка, что на этой строке в экземпляре объекта не задана ссылка на объект.
Как так может быть, если правильно выводит, то все должно быть задано по идее.
3.1.8 подключается без проблем, да и 4.0 в первый раз подключается без проблем.
Спасибо:

Alexander

Фотография
Дата: 04.10.2011
Ответить


dart
dart

В данный момент пока S#4.0 не могу запустить (почему то инструменты не находит). Сейчас опять S#3.1.8 запустил.

Опять не могу подключить S# 4.0. Та же самая ситуация. Робот вылетел, второй раз подключиться не могу.
_trader.ProcessDataError += ex => this.GuiAsync(() => MessageBox.Show(this, ex.ToString())) ничего не выдает.
В MainWindow выполняется TryCreateStrategy. Внутри неё перед проверкой
if (_lkoh != null && _frts != null && _fgazp != null && _micex != null)
вывожу в файл:
outStream.WriteLine("Time = {0} test TryCrStr, _lkoh = {1}, _frts = {2}, _fgazp = {3}, _micex = {4}", _trader.MarketTime, _lkoh.ToString(), _frts.ToString(), _fgazp.ToString(), _micex.ToString());
Все бумаги и портфель выводит правильно, но вылетает ошибка, что на этой строке в экземпляре объекта не задана ссылка на объект.
Как так может быть, если правильно выводит, то все должно быть задано по идее.
3.1.8 подключается без проблем, да и 4.0 в первый раз подключается без проблем.


посмотрите на LastTrade у инструмента, BestBid, BestAsk у стакана.
в новостях писал, что они теперь null по умолчанию.
Спасибо:

dart

Фотография
Дата: 04.10.2011
Ответить


Alexander Mukhanchikov

посмотрите на LastTrade у инструмента, BestBid, BestAsk у стакана.
в новостях писал, что они теперь null по умолчанию.

Вывожу так:
outStream199.WriteLine("Time = {0} test tryCrstr inside _lkoh = {1}, _frts = {2}, _fgazp = {3}, _micex = {4}", _trader.MarketTime, _lkoh.LastTrade.Price, _frts.LastTrade.Price, _fgazp.LastTrade.Price, 0);
Все цены выводятся. Старые цены, правда, сейчас другие, но это наверно из-за того что все сделки ещё не прокачались. Стакан не выводил - я его позже начинаю экспортировать.
Ну а как это может повлиять, если инструменты правильно выводятся, значит они есть, нашлись. Значит всё должно работать
Спасибо:

Alexander

Фотография
Дата: 04.10.2011
Ответить


dart
Alexander Mukhanchikov

посмотрите на LastTrade у инструмента, BestBid, BestAsk у стакана.
в новостях писал, что они теперь null по умолчанию.

Вывожу так:
outStream199.WriteLine("Time = {0} test tryCrstr inside _lkoh = {1}, _frts = {2}, _fgazp = {3}, _micex = {4}", _trader.MarketTime, _lkoh.LastTrade.Price, _frts.LastTrade.Price, _fgazp.LastTrade.Price, 0);
Все цены выводятся. Старые цены, правда, сейчас другие, но это наверно из-за того что все сделки ещё не прокачались. Стакан не выводил - я его позже начинаю экспортировать.
Ну а как это может повлиять, если инструменты правильно выводятся, значит они есть, нашлись. Значит всё должно работать


У вас "вылетел робот". стэк трэйса нет. у вас возник nre - нулевая ссылка на объект.
раз раньше работало - я высказал предположения с какими изменениями в S# это могло быть связано. других изменений больших не было.

без стэк трэйса никак.
Спасибо:

dart

Фотография
Дата: 04.10.2011
Ответить


а как сделать стэк трэйс? Это он?
Mistake4_0.jpg 139 KB (229)
Спасибо:
1 2  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy