Вопросы новичка в S# (Закрыта)
Atom
01.12.2010
ttt


Добрый день.
Очень понравилась идея использования Вашей библиотеки для реализации роботов.
Подскажите, пожалуйста:
1) Как идентифицировать заявку?
//например, выставляю заявку buy RIZ0 4 контракта по цене 160500. Каким образом далее смогу ее отслеживать?
Вариант с использованием таблицы сделок не подходит - необходимо реализовать контроль исполнения заявок пользуясь исключительно информацией из таблицы заявок.
С языком C# только начал разбираться, возможно поэтому не нашел в представленных в дистрибутиве S# проектах примеров контроля состояния заявки по ее уникальному признаку.
2) Верно ли я понимаю суть работы с Квиком: для реализации автономного робота необходимо организовать два потока на C#:
- первый: выполняет функции получения данных из Квика через DDE сервер (используя библиотеку S#);
- второй: непосредственно реализует алгоритм выставления и снятия заявок.
Можно ли обойтись одним потоком?

Теги:


Спасибо: Николай_Флёров


<< < 3 4 5 6 7  > >>
Alexander

Фотография
Дата: 14.01.2011


Valdis
нет, это данные из таблицы позиции по деривативам ( DerivativePositionsTable )
т.е. колличество денег на счёте ММВБ и состояние портфеля мне понятно как отследить, а вот по бирже РТС -ФОРТС я не нашел таких же данных
активная покупка/продажа это колличество лотов по инструменту выставленных мной на биржу.
я так понимаю библиотека S# впервую очередь заточена для торговли акциями, а не фьючерсами.
т.е. напрямую, указанными вами способами не получить данных по счетам ФОРТС , их видимо надо как то считывать самому из экспортируемой таблицы DerivativePositionsTable , если я ошибаюсь , поправьте меня и подскажите тогда как вытащить данные из этой таблицы ?


1) Я торгую только на фортсе с помощью Stock# уже год. Он отлично заточен для торговли деривативами.
Trader.GetPosition(Portfolio, Security) возвращает ту позицию, которая соответствует данному портфелю для заданного инструмента.
А у вас он не возвращает для того же фьюча РТС позицию данным методом?

2) Суммируете оставшийся невыполненный объём в активных своих заявках.
Если заявка бай - то +n оставшихся контрактов, если селл - то -n.
Спасибо:

Valdis

Фотография
Дата: 14.01.2011


Alexander
просто я подумал , раз есть уже экспортируемая изначально таблица
DerivativePositionsTable то можно как то из неё получать данные по текущим чистым позициям и активная покупка/ продажа.....но раз так нельзя будем пробовать ваш способ.
Благодарю за помощь
Спасибо:

MCTuTeJ|19951995

Фотография
Дата: 14.01.2011


Насколько я понял, с помощью s# можно "выудить" любые данные из Квика. Попробуйте использовать CustomTables.
Спасибо:

Alexander

Фотография
Дата: 14.01.2011


Valdis
Alexander
просто я подумал , раз есть уже экспортируемая изначально таблица
DerivativePositionsTable то можно как то из неё получать данные по текущим чистым позициям и активная покупка/ продажа.....но раз так нельзя будем пробовать ваш способ.
Благодарю за помощь


Не то чтобы нельзя - как раз любую таблицу можно получить, как уже ответили.
Просто так проще как я написал, без лишних заморочек. :)
Спасибо:

Valdis

Фотография
Дата: 19.01.2011


снимал группу заявок по фильтру таким образом :
_Trader.CancelOrders(false, _portfolio, null, null, _security);
всё работало, но сегодня прямо в процессе работы вырубилось,
причем обычные ордера регистрируются , а снять группу заявок на фортс не получается.
ошибки не возвращает, причем в квике число полученных внешних транзакций при попытке снять ордера не меняется
из чего я делаю вывод что до квика вобще ни чего не доходит.
подскажите , в каком направлении копать ?

сам допетрил :)
я изначально _portfolio.Name = "11005";
задавал таким неверным способом . непонятно только почему это вначале работало а потом отключилось.
примеры из мануала рулят.
Михаилу респект за библиотеку !
Спасибо:

a.dobryn

Фотография
Дата: 20.01.2011


а как лучше отслеживать заявки?
например, отсылается у меня заявка на продажу n лотов с ценой A. Через некоторое время произошла продажа n-2 лотов и мне нужно снять эту заявку и поставить новую, 2 лота по цене B. Искать их по таблице заявок с параметрами n и A? Или есть риск нарваться на другую, такую же?

upd: точнее, даже не так. Заявок может быть несколько, самых разных, но по их исполнению (даже частичному) надо их заменять. Как это организовать?
Спасибо:

Alexander

Фотография
Дата: 20.01.2011


D_Alex
а как лучше отслеживать заявки?
например, отсылается у меня заявка на продажу n лотов с ценой A. Через некоторое время произошла продажа n-2 лотов и мне нужно снять эту заявку и поставить новую, 2 лота по цене B. Искать их по таблице заявок с параметрами n и A? Или есть риск нарваться на другую, такую же?

upd: точнее, даже не так. Заявок может быть несколько, самых разных, но по их исполнению (даже частичному) надо их заменять. Как это организовать?



событие NewMyTrades в данном случае как раз то что надо
Спасибо: a.dobryn

a.dobryn

Фотография
Дата: 21.01.2011


Alexander
D_Alex
а как лучше отслеживать заявки?
например, отсылается у меня заявка на продажу n лотов с ценой A. Через некоторое время произошла продажа n-2 лотов и мне нужно снять эту заявку и поставить новую, 2 лота по цене B. Искать их по таблице заявок с параметрами n и A? Или есть риск нарваться на другую, такую же?

upd: точнее, даже не так. Заявок может быть несколько, самых разных, но по их исполнению (даже частичному) надо их заменять. Как это организовать?



событие NewMyTrades в данном случае как раз то что надо


спасибо!
а статус заявки меняется тогда, когда она исполнена целиком (например, куплено 5 лотов), или частично (куплен хотя бы 1 лот)?
Спасибо:

Alexander

Фотография
Дата: 23.01.2011


D_Alex
Alexander
D_Alex
а как лучше отслеживать заявки?
например, отсылается у меня заявка на продажу n лотов с ценой A. Через некоторое время произошла продажа n-2 лотов и мне нужно снять эту заявку и поставить новую, 2 лота по цене B. Искать их по таблице заявок с параметрами n и A? Или есть риск нарваться на другую, такую же?

upd: точнее, даже не так. Заявок может быть несколько, самых разных, но по их исполнению (даже частичному) надо их заменять. Как это организовать?



событие NewMyTrades в данном случае как раз то что надо


спасибо!
а статус заявки меняется тогда, когда она исполнена целиком (например, куплено 5 лотов), или частично (куплен хотя бы 1 лот)?



Смотрите документацию, раздел Состояния заявок:
Цитата:
Если заявка исполняется частично, то вызываются события ITrader..::.NewMyTrades о новых сделках по выставленной заявке, а так же событие ITrader..::.OrdersChanged, где передается уведомление об изменении баланса по заявке Order..::.Balance

Спасибо:

Valdis

Фотография
Дата: 24.01.2011


я что то не пойму , почему событие Trader.PositionsChanged
вызывается и при выставлении заявок и при исполнении их и даже просто, когда ни чего с позициями/заявками не происходит ?
причем в последнем случае это событие приходит с периодичностью примерно раз в минуту .
подскажите в чем может быть проблема ?
читал мануал но так и нашел точного определения - КОГДА НАДО ПОДПИСЫВАТЬСЯ на события
Trader.NewPositions
Trader.PositionsChanged
Trader.OrdersChanged
Trader.NewMyTrades
Trader.NewOrders

до коннекта с квиком Trader.Connect(); или после ?
или вобще без разницы ?
Спасибо:
<< < 3 4 5 6 7  > >>

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

loading
clippy