order.State
Atom Ответить
25.05.2010


Почему то всегда возвращает None..хотя состояние меняется..в чём может
быть дело?

Теги:


Спасибо:




41 Ответов
1 2  >
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 26.05.2010
Ответить


Не работает экспорт по таблице Заявки?

Спасибо:

Tauler

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


Тоже вопрос по заявкам

у меня нличествует запоздание обновления заявки в ITrader.Order

заявка в квике уже выполнена, а Order.State показывает что она Active.
процесс проверки сигналов успевает 3-4 раза проверить сигналы, прежде
чем увидит что заявка выполнена, а за это время цены успевают далеко
уйти, и реакция на выполение заявки запаздывает. Можно как то процесс
обновления состояния заявки ускорить? параметром там какием в квике
или еще как?

Спасибо:

Tauler

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


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

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 26.05.2010
Ответить


В самом Квике как быстро изменяется статус заявки? Мгновенно или тоже
с задержкой?

Спасибо:

Tauler

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


Да вот черт его знает. Вроде быстро. но ведь исключение при поытке
снять выполенную заявку квик ytans2quik генерит?

у меня когд такой

if (order.State == OrderStates.Active)
trader.CancelOrder(order)

и тут генерится эксепшн (нет заявки для снятия), хотя у переменной
order.State = Active, но в квике она выполнена. а время выполнения с
точностью до милисикунд я в квике посмореть не могу

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 26.05.2010
Ответить


Я уже писал про это (как и сам Квик). У них какая-то спец защита стоит
от роботов. Типа быстрее не дают... Совсем другое, если и в Квике
быстро меняется. А это надо смотреть. Последите за своей машинкой и
Квиком, если получится.

Спасибо:

Tauler

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


А не дадите ссылочку, где можно почитаь об этом?
А насчет последить - этим сейчас занимаюсь, набиваю логами воркофлоу,
буду оценивать задержки.

Спасибо:

Tauler

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


Где, где, где почитать7 :)))

кстати, опыты показали что на мамбе заявка выполняется за ~100 мс, а
на фортс за ~500-600. вот такие пироги.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 28.05.2010
Ответить


http://stockmarketdotnet.blogspot.com/2010/02/s-17.htmlПункт 4. Там и
ссылка на Квик форум. Можете поднять тему. Был слух, что они это
ограничение хотят снять. Может уже брокеры такое умеют делать в
настройках Квик сервера.

Спасибо:

Tauler

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


а вы статус заявки чеерз ДДЕ обновляете?

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 28.05.2010
Ответить


Конечно... Пройдите по ссылке на Квик форум. Там проблема не в статусе
заявки.

Спасибо:

Tauler

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


Я уже ходил. ничего не понял :) понял тока что это квик тормозит.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 28.05.2010
Ответить


Там проблема в том, что заявка принята биржей, но реально еще не
зарегистрирована в Квик сервере. Поэтому, цена уже изменилась на
рынке, ее снимать надо, а он ней информация на сервере отсутствует.

Спасибо:

Tauler

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


Ну вот именно это я и понял.

Спасибо:

Alexander

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


у меня похожая ситуация возникла - заявка зарегистрировалась, в
таблице сделок её состояние уже исполнена, а stock# пишет, что active.
5 минут прошло - и всё active. Или надо на какие-то события
дополнительно подписываться, чтобы робот узнал, что сделка
исполнилась? Я подписываюсь только на события orderfailed...
Соответственно у меня и в PositionManager свойство Position равно 0...
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 30.06.2010
Ответить


В таблице сделок или заявок? Нужно запустить экспорт на таблицу
заявок.

Спасибо:

Alexander

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


Все экспорты запущены (QuikTrader.StartExport()),
Order newOrder = CreateOrder(OrderDirections.Sell, openPrice,
Volume);
Trader.RegisterOrder(newOrder);
base.AddOrder(newOrder);

Сделки на рынок выходят, но PositionManager.Position для стратегии
(наследуемой от TimeFrameStrategy) не меняется. И при попытке через 5
минут
Trader.CancelOrders(null, Account, null, null, Security);
выскакивает эксепшен с тем, что нельзя снять заявку. Смотрю по
дебагеру - у неё состояние Active, тогда как на бирже - уже исполнена
давно (прошло 5 минут).
(' не была зарегистрирована. Причина 'Вы не можете снять данную
заявку'. Parameter name: transactionTxt)

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 30.06.2010
Ответить


ProcessDataError ничего плохого не пишет? Судя по симптомам, экспорт
по заявкам не идет.

Спасибо:

Alexander

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


Нет, молчит, никаких сообщений не было.
Из событий подписан только на Сonnected, ConnectionError,
OrdersFailed, ProcessDataError, StopOrdersFailed, NewSecurities.

В какую сторону можно копать? Вечером попробую раз в 5 минут роботом
выставлять заявку и следить за статусом. Просто хочется понять в какой
стороне искать проблему.

P.S. Verifier показывает что всё нормально настроено.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 30.06.2010
Ответить


А NewMyTrades по заявке приходят? OrdersChanged передает зависшую
заявку?

Спасибо:

Alexander

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


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

Спасибо:

Alexander

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


Подписался на эти события - всё стало работать нормально.
Только почему-то если шортить 1 контракт и регистрировать эту заявку в
стратегии:

Order newProfitOrder =
CreateOrder(OrderDirections.Sell,

Security.MinPrice, 1);

Trader.RegisterOrder(newProfitOrder);
base.AddOrder(newProfitOrder);

PositionManager.Position становится равным -2. Или так и должно быть?

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 01.07.2010
Ответить


1. Думаю, события тут не причем.
2. Позиция расчитывается по случившимся сделкам, не заявкам.

Спасибо:

Alexander

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


2. Была лишь 1 заявка на 1 лот, т.е. была 1 сделка. Вот распечатка
Order при каждом срабатывании события OrdersChanged:
Balance (0), CancelTime (), ID (1846739022), InitializationTime
(01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done),
Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1),
Direction(Sell)
Balance (0), CancelTime (), ID (1846739022), InitializationTime
(01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done),
Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1),
Direction(Sell)
Balance (0), CancelTime (), ID (1846739022), InitializationTime
(01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done),
Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1),
Direction(Sell)
Balance (0), CancelTime (), ID (1846739022), InitializationTime
(01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done),
Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1),
Direction(Sell)
Balance (0), CancelTime (), ID (1846739022), InitializationTime
(01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done),
Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1),
Direction(Sell)
Balance (0), CancelTime (), ID (1846739022), InitializationTime
(01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done),
Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1),
Direction(Sell)
Balance (0), CancelTime (), ID (1846743309), InitializationTime
(01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done),
Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1),
Direction(Buy)
Balance (0), CancelTime (), ID (1846743309), InitializationTime
(01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done),
Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1),
Direction(Buy)
Balance (0), CancelTime (), ID (1846743309), InitializationTime
(01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done),
Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1),
Direction(Buy)
Balance (0), CancelTime (), ID (1846743309), InitializationTime
(01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done),
Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1),
Direction(Buy)
Balance (0), CancelTime (), ID (1846743309), InitializationTime
(01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done),
Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1),
Direction(Buy)
Balance (0), CancelTime (), ID (1846743309), InitializationTime
(01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done),
Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1),
Direction(Buy)

Вначале открыли, потом, на новой минуте - закрыли. Между открытием и
закрытием позиции печатал PositionManager.Position, он был равен -2.
И ещё, почему событие OrdersChanged вызывается 6 раз для 1 заявки?
Вроде был уже такой вопрос в группе, но не смог найти.

Спасибо:

Alexander

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


Вот сейчас тоже по стратегии был открыт шорт на 20 лотов и выставлен
стоп для шорта на теже 20 лотов. PositionManager.Position равен -40.
Чего-то не понимаю видимо я =)
Как-то можно получить конкретно эти открытые -20 лотов для стратегии?

On 1 июл, 12:53, Mikhail Sukhov <msou...@gmail.com> wrote:

Спасибо:
1 2  >

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

loading
clippy