как дождаться снятия заявки
Atom Ответить
08.07.2010


Михаил, а как в асинхронном режиме реализовать такое

1.Снять заявку
2.дождаться результат снятия - успешно снята или знятие не прошло

мне нужно отправить запрос на снятие и в результати от успеха/
неуспеха снятия предпринимать те или иные действия

Теги:


Спасибо:



Поздравляем именинников: Станислав Гайворонский

12 Ответов
Mikhail Sukhov

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


OrdersChanged пока не придет State Done

Спасибо:

Tauler

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


мутить блокировки с помощью ManualSetEvent?

Автор топика
Спасибо:

Mikhail Sukhov

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


Да, видимо придется как в примере SampleConsole раз у вас шаг за
шагом... Надо бы глянуть на этот новый WF. Рекомендуете статью для
начинающего?

Спасибо:

Tauler

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


Да я как то так ,по мсдну разбирался. и по примерам. я пару статей по
3.5 прочитал, начинал с него. но думаю в этом плане 3.5 и 4 - разницы
никакой нет.

Автор топика
Спасибо:

Mikhail Sukhov

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


Вы пишите, что там state режима нет. Так что есть.

Спасибо:

Tauler

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


в смысле state режима? там есть Flowchart

Автор топика
Спасибо:

Mikhail Sukhov

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


Так а зачем тогда Вы while чиклы пишите? Торговые алгоритмы опираются
на события. Думаю не спроста такие системы как ВетЛаб и Квант
предоставляют именно событийную модель работы. Понятно, что внутри иет
логика последовательная ввиде условий и циклов. Но отправная точна
всегда событие: закончился бар, начался новый, цена превысила, заявка
изменилась и т.д. Может все же идти по пути именно событий? Его до нас
уже протоптали.

Спасибо:

Tauler

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


Писал развернутый ответ - и тырнет крякнул.

Суть в том что все эти танцы с бубном лишь для того, чтобы сварганить
инструмент, в ктором трейдер будет робота РИСОВАТЬ, а рисовать он
может только в виде детерминированых блок-схем. трейдеру будет трудно
рассказать, как пользовать события, почему вмсето того, чтобы на
снятие заявки получить ответ - успешно или неспешн опрошло снятие, он
должен слушать событие, да и мне - разработчику намного удобнее было
бы написать

if(trader.CancelOrder(order))
{
действия при успешном снятии

else
{
при неуспешном

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

так же намного удобнее проверять заявку

if( status.Done && PartiallyMatched)
чем слушать событие.

а если заявок много, кторые надо проверять? тут уже в событийно
модели начинаются неудобства :)

Вообще конечно, как мне кажется, много пользы прнес бы смешаный режим,
т.к. выстаявлять заявки удобно в асинхронном - и там уже слушать
событии, а вот снимать например лучше в синхроноом - там сразу ясно -
снял или не снял.А так придется блокировки ставить пояле запроса на
снятии, в событии снимать - ну вы сами понимаетет прелести
ассинхронного программирования. :) Извините что так сумбурно :)

P.S. События жутко удобная вещь для написания всяческого рода
индикаторов, тут они выше всяких похвал.

Автор топика
Спасибо:

Mikhail Sukhov

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


Напрашивается обертка над ITrader (по аналогии с SyncTrader). Может
сами сделаете? У меня сейчас приоритеты другие.

Спасибо:

Tauler

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


так GuaranteeCancelOrder вроде решение проблемы.А насчет обертки -
буду думать. у меня счас приоритет арбитражер. :) Ежели обертку
синхринизирвоаную намучу - дам вам знать - может сгодится в
стокшарпе :)

Автор топика
Спасибо:

Mikhail Sukhov

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


Насколько я понял, у Вас таких мест уже несколько:

1. Connected
2. NewSecurities
3. NewOrders
4. NewTrades

Так что Вам по любому такое надо. Иначе код будете загромождать While
Wait и т.д.

Спасибо:

Tauler

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


Я сейчас отложил воркфлоу немножко,пишу арбитражера по человечески, на
событиях. Но обязательно вернусть к этому вопросу.

Автор топика
Спасибо:


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

loading
clippy