Выставление заявок в Quik
Atom Ответить
29.05.2013


Робот не выставляет заявки через Quik на спотовом рынке.
На учебном счете все работает хорошо. Не эмуляция, а обычный game счет.
Я убрал в квике все возможные запросы на выставление заявок (всплывающие окна подтверждения), но увы.
Код клиента тоже указан правильно, и в квике он береться всегда по умолчанию.
Денег тоже достаточно.
Игровой счет работает, транзакции проходят, а реальный - нет.
Что это может быть?

Теги:


Спасибо:




33 Ответов
1 2  >
Kefir

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


Счет один в квике?
Спасибо:

yar1k0v

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


нет, их несколько... спот, фьюч и демо
Автор топика
Спасибо:

Kefir

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


yar1k0v Перейти
нет, их несколько... спот, фьюч и демо


В логе что пишет? Попробуй вложенный файл, если не выставляет смотри что в логе?
Спасибо:

yar1k0v

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


Спасибо, завтра проверю.
Автор топика
Спасибо:

yar1k0v

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


Код

2013/05/30 11:32:20.214|       |RS_CEEN@UX_100820|Стратегия запущена. [0,-1]. Позиция при старте 0.
2013/05/30 11:32:39.860|       |MQS_CEEN@UX_100820|Стратегия запущена. [0,1]. Позиция при старте 0.
2013/05/30 11:32:39.861|       |MQS_CEEN@UX_100820|Котирование на Sell объема 1.
2013/05/30 11:32:39.861|       |MQS_CEEN@UX_100820|Приостановка правил. _rulesSuspendCount 1.
2013/05/30 11:32:39.874|       |MQS_CEEN@UX_100820|Возобновление правил. _rulesSuspendCount 0.
2013/05/30 11:32:39.888|       |MQS_CEEN@UX_100820|Цена текущей NULL и лучшей 4,557.
2013/05/30 11:32:39.888|       |MQS_CEEN@UX_100820|Лучший бид 4,51 и лучший аск 4,558.
2013/05/30 11:32:39.896|       |MQS_CEEN@UX_100820|Регистрация новой Limit (0x1D8B182) заявки на Sell с ценой 4,557 и объемом 1. 
2013/05/30 11:32:39.925|Warning|MQS_CEEN@UX_100820|Заявка 41529553 в процессе регистрации.
2013/05/30 11:32:39.929|Error  |MQS_CEEN@UX_100820|Заявка 41529553 (0x1D8B182) не была принята по причине StockSharp.Quik.ApiException: Код ошибки Failed Сообщение  Указанный класс не найден: "UX".
2013/05/30 11:32:39.934|Error  |MQS_CEEN@UX_100820|Заявка 41529553 не принята биржей по причине 'Код ошибки Failed Сообщение  Указанный класс не найден: "UX"'.
2013/05/30 11:32:39.935|       |MQS_CEEN@UX_100820|Текущее кол-во ошибок 1. Максимальное 100.


Кто то знает, как это можно исправить?
Спасибо.
Автор топика
Спасибо:

Kefir

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


yar1k0v Перейти
Код

2013/05/30 11:32:20.214|       |RS_CEEN@UX_100820|Стратегия запущена. [0,-1]. Позиция при старте 0.
2013/05/30 11:32:39.860|       |MQS_CEEN@UX_100820|Стратегия запущена. [0,1]. Позиция при старте 0.
2013/05/30 11:32:39.861|       |MQS_CEEN@UX_100820|Котирование на Sell объема 1.
2013/05/30 11:32:39.861|       |MQS_CEEN@UX_100820|Приостановка правил. _rulesSuspendCount 1.
2013/05/30 11:32:39.874|       |MQS_CEEN@UX_100820|Возобновление правил. _rulesSuspendCount 0.
2013/05/30 11:32:39.888|       |MQS_CEEN@UX_100820|Цена текущей NULL и лучшей 4,557.
2013/05/30 11:32:39.888|       |MQS_CEEN@UX_100820|Лучший бид 4,51 и лучший аск 4,558.
2013/05/30 11:32:39.896|       |MQS_CEEN@UX_100820|Регистрация новой Limit (0x1D8B182) заявки на Sell с ценой 4,557 и объемом 1. 
2013/05/30 11:32:39.925|Warning|MQS_CEEN@UX_100820|Заявка 41529553 в процессе регистрации.
2013/05/30 11:32:39.929|Error  |MQS_CEEN@UX_100820|Заявка 41529553 (0x1D8B182) не была принята по причине StockSharp.Quik.ApiException: Код ошибки Failed Сообщение  Указанный класс не найден: "UX".
2013/05/30 11:32:39.934|Error  |MQS_CEEN@UX_100820|Заявка 41529553 не принята биржей по причине 'Код ошибки Failed Сообщение  Указанный класс не найден: "UX"'.
2013/05/30 11:32:39.935|       |MQS_CEEN@UX_100820|Текущее кол-во ошибок 1. Максимальное 100.


Кто то знает, как это можно исправить?
Спасибо.

Таблица "Инструменты" правильно настроена?

Спасибо:

yar1k0v

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


По умолчанию. Бумага, Код бумаги, Код класса, Статус, Лот, Шаг цены
Еще почему то не работает Strategy.CancelActiveOrders, ну работает, только медленно...
Не успевает все заявки снять.
Автор топика
Спасибо:

yar1k0v

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


я не могу понять, почему код класса UX, если он должен быть GTS
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 30.05.2013
Ответить


yar1k0v Перейти
я не могу понять, почему код класса UX, если он должен быть GTS


На днях выйдет фикс этой ошибки.
Спасибо: yar1k0v

yar1k0v

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


спасибо большое =) жду с нетерпением!
Автор топика
Спасибо:

yar1k0v

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


Цитата:

Выложили 4.1.13.2 (фикс версии 4.1.13.1)

Баги:

•SciChart. Падает при рисовании на пустом графике.

•Plaza. Не принимается ExpiryDate.

Ошибка выставления заявок в Quik

•FinamHistorySource. Поддержка Т+ инструментов.



Ошибка с кодом класса так и не была исправлена, по крайней мере на УБ.
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 06.06.2013
Ответить


yar1k0v Перейти
Ошибка с кодом класса так и не была исправлена, по крайней мере на УБ.

Какие параметры у инструмента Type, ExchangeBoard?
Спасибо:

yar1k0v

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


А, извеняюсь... все правильно.
Пример CEEN GTS UX Stock.
Но вот заявки почему то не проходят.
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 06.06.2013
Ответить


yar1k0v Перейти
А, извеняюсь... все правильно.
Пример CEEN GTS UX Stock.
Но вот заявки почему то не проходят.

Что в Debug логах? Через события ошибки приходят?
Спасибо:

yar1k0v

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


Код

2013/06/06 12:54:56.345|       |MQS_CEEN@UX_100820|Регистрация новой Limit (0xBF2074) заявки на Buy с ценой 4,394 и объемом 1. 
2013/06/06 12:54:56.346|       |MQS_CEEN@UX_100820|Заявка 46442904 больше не активна.
2013/06/06 12:54:56.352|Error  |MQS_CEEN@UX_100820|Заявка 46442905 (0xBF2074) не была принята по причине StockSharp.Quik.ApiException: Код ошибки Failed Сообщение Не указан код клиента.
2013/06/06 12:54:56.353|Error  |MQS_CEEN@UX_100820|Заявка 46442905 не принята биржей по причине 'Код ошибки Failed Сообщение Не указан код клиента'.


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

Проверил настройки шаблона в квике, Verifier написал что все работает правильно, но ошибка выскакивает все та же.
Автор топика
Спасибо:

yar1k0v

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


Код

trader.FormatTransaction += transaction => transaction.SetClientCode("100820");
trader.FormatTransaction += transaction => transaction.SetVolume(100);


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

Выдает вот что:

Код

2013/06/06 13:59:20.237|       |SSS_CEEN@UX_100820|Стратегия запущена. [0,-1]. Позиция при старте 0.
2013/06/06 13:59:20.282|       |MQS_CEEN@UX_100820|Стратегия запущена. [0,1]. Позиция при старте 0.
2013/06/06 13:59:20.283|       |MQS_CEEN@UX_100820|Котирование на Sell объема 1.
2013/06/06 13:59:20.284|       |MQS_CEEN@UX_100820|Приостановка правил. _rulesSuspendCount 1.
2013/06/06 13:59:20.302|       |MQS_CEEN@UX_100820|Возобновление правил. _rulesSuspendCount 0.
2013/06/06 13:59:20.317|       |MQS_CEEN@UX_100820|Цена текущей NULL и лучшей 4,403.
2013/06/06 13:59:20.317|       |MQS_CEEN@UX_100820|Лучший бид NULL и лучший аск NULL.
2013/06/06 13:59:20.324|       |MQS_CEEN@UX_100820|Регистрация новой Limit (0x374A867) заявки на Sell с ценой 4,403 и объемом 1. 
2013/06/06 13:59:20.461|Error  |MQS_CEEN@UX_100820|Заявка 50352676 (0x374A867) не была принята по причине System.Threading.LockRecursionException: В этом режиме не разрешены рекурсивные приобретения блокировки записи.
   в StockSharp.Quik.QuikTrader.RegisterTransaction(Transaction transaction)
   в StockSharp.Quik.QuikTrader.OnRegisterOrder(Order order)
   в StockSharp.Algo.BaseTrader.RegisterOrder(Order order).
2013/06/06 13:59:20.466|Error  |MQS_CEEN@UX_100820|Заявка 50352676 не принята биржей по причине 'В этом режиме не разрешены рекурсивные приобретения блокировки записи.'.
2013/06/06 13:59:20.467|       |MQS_CEEN@UX_100820|Текущее кол-во ошибок 1. Максимальное 100.
2013/06/06 13:59:20.467|       |MQS_CEEN@UX_100820|Цена текущей NULL и лучшей 4,403.
2013/06/06 13:59:20.467|       |MQS_CEEN@UX_100820|Лучший бид 4,38 и лучший аск 4,404.
2013/06/06 13:59:20.467|       |MQS_CEEN@UX_100820|Регистрация новой Limit (0x341345D) заявки на Sell с ценой 4,403 и объемом 1. 
2013/06/06 13:59:20.721|       |SSS_CEEN@UX_100820|Новая позиция: 100820-CEEN@UX=99.
2013/06/06 13:59:20.726|       |MQS_CEEN@UX_100820|Новая позиция: 100820-CEEN@UX=99.
2013/06/06 13:59:20.914|       |MQS_CEEN@UX_100820|Позиция изменилась на 99. Оставшийся объем -98.
2013/06/06 13:59:20.914|       |MQS_CEEN@UX_100820|Заканчиваем котирование.
2013/06/06 13:59:20.916|       |MQS_CEEN@UX_100820|Стратегия останавливается. [0,1]. Позиция при старте 99.
2013/06/06 13:59:20.920|       |MQS_CEEN@UX_100820|Правило 'Изменение стакана инструмента CEEN@UX (0x21AF1A5)'. Приостановлено.
2013/06/06 13:59:20.925|       |MQS_CEEN@UX_100820|Ожидание снятия всех активных заявок.
2013/06/06 13:59:20.931|       |MQS_CEEN@UX_100820|Отмена заявки 50352676.
2013/06/06 13:59:20.989|Error  |MQS_CEEN@UX_100820|System.InvalidOperationException: Транзакция 'CLASSCODE=GTS; SECCODE=CEEN; ORDER_KEY=0; ACTION=KILL_ORDER; TRANS_ID=50352678; CLIENT_CODE=100820; QUANTITY=100;' не была зарегистрирована. Причина 'Вы не можете снять данную заявку'.
   в StockSharp.Quik.QuikTrader.RegisterTransaction(Transaction transaction)
   в StockSharp.Quik.QuikTrader.OnCancelOrder(Order order)
   в StockSharp.Algo.BaseTrader.CancelOrder(Order order)
   в StockSharp.Algo.Strategies.Strategy.#=qxzPu2iHWuvn_zxvI9KER6E7zV7ZeSx0lx5gmJPCzrF8=(Order #=qmCVH59OmTnP6dM_iH$xuyQ==)
   в StockSharp.Algo.Strategies.Strategy.#=qfEdBj0Rc7NnXhD7vCfecDE$T$IQub7LkWbO$_STdqytwqbW4CaJq0mIRYZosAt7T(Order #=qSy7qlVSDDWQnWqFCXlcV0A==)
   в Ecng.Collections.CollectionHelper.ForEach[T](IEnumerable`1 source, Action`1 action)
   в StockSharp.Algo.Strategies.Strategy.#=q_SvJvUxJcrg5geypnfdBT$0TD_AmaMmMkIlPreredgI=()
   в StockSharp.Algo.Strategies.Strategy.#=q4Vjqp5booV7IQdXIgyGlo85pWPA8SEOTHD7k7HoqLVw=(ProcessStates #=qXPUjcWlGh9Cr6gtJEwp6Mg==)
   в StockSharp.Algo.Strategies.Strategy.Stop()
   в StockSharp.Algo.Strategies.QuotingStrategy.#=quJJ66$B0UoPkEWPFMUbYFUYA4yv4Mnws4aVcYx3xyKw=()
   в StockSharp.Algo.MarketRule`2.#=q7L98I26Wj9gUHVZVvYhjfNmvDWVbzzwXggGYrb6OKyQ=.#=qlYQnxf18dU6h8iYG0VgkAQ==(#=qvr5BgeY6d49b0wPGzxamhw== #=ql6p6agGBfPKLz1XmB5CubA==)
   в StockSharp.Algo.MarketRule`2.#=q$EDkGbMRa981JHTAbo$_bZPD5A4kZHGnLjsL$YqXasw=()
   в StockSharp.Algo.MarketRuleHelper.#=qH2Y4Je3rhWV957$s7ps2yw==(IMarketRuleContainer #=qJpv0YbmmXNN9ri$CoYbEXw==, IMarketRule #=qWka7BzS$FJQ4leJX6BPhPg==, Func`1 #=qdJohKodKMjdrTUKlaOZXCg==)
   в StockSharp.Algo.Strategies.Strategy.#=qhBqOxQ5SIAbyY2y6N4BACOwIZpzjdVxd3qFW06_7OgM0tQM6wJbNghxpuK7RYc7MClbCYLtb7iXjJB0B0nSiAA==(IMarketRule #=qNNh7Xd9rPYJBZBVS_X7gig==, Func`1 #=qhxFvJ7$pKfzObQ00FWkAIw==)
2013/06/06 13:59:20.992|       |MQS_CEEN@UX_100820|Заявка 50352676 больше не активна.
2013/06/06 13:59:20.992|       |MQS_CEEN@UX_100820|Заявка 50352676 больше не активна.
2013/06/06 13:59:20.993|Error  |MQS_CEEN@UX_100820|Заявка 50352677 (0x341345D) не была принята по причине System.Threading.LockRecursionException: В этом режиме не разрешены рекурсивные приобретения блокировки записи.
   в StockSharp.Quik.QuikTrader.RegisterTransaction(Transaction transaction)
   в StockSharp.Quik.QuikTrader.OnRegisterOrder(Order order)
   в StockSharp.Algo.BaseTrader.RegisterOrder(Order order).



но это при trader.IsAsyncMode = false.


если асинхронний режим включить, то все работает отлично, но только нужно указать в транзакциях код клиента и обьем.
А это не удобно Sad
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 06.06.2013
Ответить


По коду клиента действительно баг. Если объем не указывать, то какая ошибка?
Спасибо:

yar1k0v

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


Вот такая ошибка если в транзакции не указывать обьем.
Кратность лота акции CEEN 100, но пишет, что 1. Определял через MinLotSize.

Код

2013/06/06 15:02:09.818|Warning|MQS_CEEN@UX_100820|Заявка 54121160 в процессе регистрации.
2013/06/06 15:02:09.896|Error  |MQS_CEEN@UX_100820|Заявка 54121160 (0x335A642) не была принята по причине StockSharp.Quik.ApiException: Код ошибки Failed Сообщение Неверно указано количество.
2013/06/06 15:02:09.903|Error  |MQS_CEEN@UX_100820|Заявка 54121160 не принята биржей по причине 'Код ошибки Failed Сообщение Неверно указано количество'.


Скажите пожалуйста, исправление выйдет или нет?
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 10.06.2013
Ответить


yar1k0v Перейти
Скажите пожалуйста, исправление выйдет или нет?

По коду клиента будет фикс, по объему проблема пока не понятна, у заявки объем указан правильно? Посмотрите какие поля будут в транзакции по событию FormatTransaction.
Спасибо:

yar1k0v

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


Смотрите, когда я определяю кратность лота по акции CEEN (Security.MinLotSize), то мне отображает 1, хотя должно быть 100.
Цитата:
Посмотрите какие поля будут в транзакции по событию FormatTransaction.

А какие именно вам нужны? Их там много =)
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 10.06.2013
Ответить


Покажите ToString() для транзакции. Как вы объем задаете для заявки? Если неверной приходит MinLotSize, то какие данные в квике в этой колонке? таблицы правильно настроены?
Спасибо:

yar1k0v

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


По моему я нашел где ошибка. Иногда это бывает так очевидно =) В квике, в таблице лот, все значения равны 1. Верифаер ошибок не нашел. Но вместо колонки лот, должна быть колонка кратность лота.
Автор топика
Спасибо:

yar1k0v

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


Я заменил колонку и кратность лота теперь отображается правильно, но в транзакциях обьем все равно равен 1 (а не 100, как кратность лота).

Код ошибки:
Код

013/06/10 12:46:30.463|       |MQS_CEEN@UX_100820|Регистрация новой Limit (0x41C1A0) заявки на Sell с ценой 4,479 и объемом 1. 
2013/06/10 12:46:30.467|Warning|MQS_CEEN@UX_100820|Заявка 45982966 в процессе регистрации.
2013/06/10 12:46:30.467|Warning|MQS_CEEN@UX_100820|Заявка 45982967 в процессе регистрации.
2013/06/10 12:46:30.482|Error  |MQS_CEEN@UX_100820|Заявка 45982966 (0x1C50583) не была принята по причине StockSharp.Quik.ApiException: Код ошибки Failed Сообщение Неверно указано количество.
2013/06/10 12:46:30.486|Error  |MQS_CEEN@UX_100820|Заявка 45982966 не принята биржей по причине 'Код ошибки Failed Сообщение Неверно указано количество'.
2013/06/10


Не знаю, что с этим делать.
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 10.06.2013
Ответить


Умножить вручную объем на кратность лота.
Спасибо:

yar1k0v

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


Я именно так и делаю при создании стратегии, но это игнорируется API. Приходиться указывать только таким способом:
Код
trader.FormatTransaction += transaction => transaction.SetVolume(100);

И в SetVolume() прийдеться каждый раз передавать новое значение при смене инструмента, а это не очень удобно!
Так же я не понимаю, почему при создании QuikTrader и отключении асинхронности виставления заявок, программа (робот) просто крэшиться?
Код
var trader = new QuikTrader(quikPath) { IsAsyncMode = false };
Автор топика
Спасибо:
1 2  >

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

loading
clippy