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


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

Теги:


Спасибо:




7 Ответов
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")
{
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
а через "редактирование таблицы" ставлю название "папир"

Спасибо: Геннадий Ванин (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

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


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

Спасибо:


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

loading
clippy