← Atrás

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

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

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

¿Le resultó útil este tema?

Compartir tema

Comentarios (7)

Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario

denis
denis

по первому пункту: сделал в симплСМА 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
Dmitri Kaptsov Autor

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

denis
denis

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

Dmitri Kaptsov
Dmitri Kaptsov Autor

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

Dmitri Kaptsov
Dmitri Kaptsov Autor

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

Mikhail Sukhov
Mikhail Sukhov

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

true
true

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