Определение позиции по инструменту.

Определение позиции по инструменту.
Atom
04.03.2010
Dmitri Kaptsov


Здравствуйте, Михаил Подскажите пожалуйста:

  1. Как определить текущую позицию по инструменту, то есть сколько контрактов и в какую сторону открыто. Думал свойство Strategy.Position за него отвечает, но оно у меня всегда 0
  2. Как получить доступ сегодняшним сделкам внутри стратегии, думал base.Trades, но к сожалению в base.Trades ничего нет.
  3. Не нашел свойство MarketOffsetTime для задания часового пояса

Теги:


Спасибо:


denis

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


по первому пункту: сделал в симплСМА this._trader.ProcessUnknownDdeData += (name, rows) => { // узнаем, что пришедшие данные отвечают за папир if (string.Compare(name, "papir", true) == 0) { foreach (var row in rows) { if ((string)row[0] == "LKOH") } } }; а в квике таблицу лимитов по бумагам со столбцами: 1) "Код бумаги", 2) "Текущий остаток", 3) "Доступно" экспорт запускаю так private void StartDde() { _isDdeStarted = true; _trader.StartDde(); _trader.StartDde("папир"); } а в настройках квика вкладка ДДЕ написано: ДДЕ сервер wrapper, рабочая книга papir а через "редактирование таблицы" ставлю название "папир"

Спасибо: Геннадий Ванин (Gennady Vanin)

Dmitri Kaptsov

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


Спасибо за помощь. Но вопрос в том, что как часто ProcessUnknownDdeData будет вызываться с параметрами papir? Быть может все-таки есть какое-то свойство. Ну а если нет, то я буду просто хранить все сделки в БД и по ним отслеживать позицию.

Спасибо:

denis

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


как только в порфеле квика изменится один из параметров(переменных) этой таблицы, то по ДДЕ будет отправлено это изменение... на все про все где-то от 10 до 200 миллисекунд, если проц не перегружен осталось только сконверить дабл в инт и передать в стратеги, после чего можно радоваться :)

Спасибо:

Dmitri Kaptsov

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


Ну это нормально:) Тогда наверное так и сделаю. Еще раз спасибо.

Спасибо:

Dmitri Kaptsov

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


Порывшись в документации нашел, что SecurityPnLManager соджержит свойство position. Создав этот менеджер внутри класса стратегии пытаюсь получить к ней достур _securityPnLManager.Position. Но свойство также равен 0. Похоже на баг. Остальные два вопрос до сих пор остаются открытыми.

Спасибо:

Mikhail Sukhov

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


Я глянул в доку и заметил, что не описал следующее поведение (но показал в примере SampleSMA). Когда регистрируются заявки, их нужно после регистрации добавлять через Strategy.AddOrder. Это запускает механизм подсчета позиции проскальзывания ПнЛ для данной заявки (а при совокупности заявок - для всей стратегии в целом). Без этого метода Strategy никогда не узнает о том, какие заявки (а следовательно и сделки) прошли через него. Вы так сделали?

Спасибо:

true

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


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

Спасибо:


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

loading
clippy