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


Определение позиции по инструменту.
Atom Reply
3/4/2010


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

Tags:


Thanks:




7 Answers
denis

Avatar
Date: 3/4/2010
Reply


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

Thanks: Геннадий Ванин (Gennady Vanin)

Dmitri Kaptsov

Avatar
Date: 3/4/2010
Reply


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

Topic starter
Thanks:

denis

Avatar
Date: 3/4/2010
Reply


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

Thanks:

Dmitri Kaptsov

Avatar
Date: 3/4/2010
Reply


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

Topic starter
Thanks:

Dmitri Kaptsov

Avatar
Date: 3/5/2010
Reply


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

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 3/5/2010
Reply


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

Thanks:

true

Avatar
Date: 4/20/2010
Reply


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

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy