Здравствуйте, Михаил Подскажите пожалуйста:
- Как определить текущую позицию по инструменту, то есть сколько контрактов и в какую сторону открыто. Думал свойство Strategy.Position за него отвечает, но оно у меня всегда 0
- Как получить доступ сегодняшним сделкам внутри стратегии, думал base.Trades, но к сожалению в base.Trades ничего нет.
- Не нашел свойство MarketOffsetTime для задания часового пояса
Kommentare (7)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
по первому пункту: сделал в симплСМА 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 а через "редактирование таблицы" ставлю название "папир"
Спасибо за помощь. Но вопрос в том, что как часто ProcessUnknownDdeData будет вызываться с параметрами papir? Быть может все-таки есть какое-то свойство. Ну а если нет, то я буду просто хранить все сделки в БД и по ним отслеживать позицию.
как только в порфеле квика изменится один из параметров(переменных) этой таблицы, то по ДДЕ будет отправлено это изменение... на все про все где-то от 10 до 200 миллисекунд, если проц не перегружен осталось только сконверить дабл в инт и передать в стратеги, после чего можно радоваться :)
Ну это нормально:) Тогда наверное так и сделаю. Еще раз спасибо.
Порывшись в документации нашел, что SecurityPnLManager соджержит свойство position. Создав этот менеджер внутри класса стратегии пытаюсь получить к ней достур _securityPnLManager.Position. Но свойство также равен 0. Похоже на баг. Остальные два вопрос до сих пор остаются открытыми.
Я глянул в доку и заметил, что не описал следующее поведение (но показал в примере SampleSMA). Когда регистрируются заявки, их нужно после регистрации добавлять через Strategy.AddOrder. Это запускает механизм подсчета позиции проскальзывания ПнЛ для данной заявки (а при совокупности заявок - для всей стратегии в целом). Без этого метода Strategy никогда не узнает о том, какие заявки (а следовательно и сделки) прошли через него. Вы так сделали?
подскажи, пожалуйста,совсем не шарю в программировании(((( каким образом можно передать параметры и как к ним обратится если у меня будет несколько счетов клиента и несколько бумаг по каждому из них??? как обратиться к таблице из стратегии????