RealTimeEmulationTrader
Atom Ответить
04.02.2014


Добрый день. Прошу помочь со следующим вопросом.

Итак, создаю трейдера RealTimeEmulationTrader

_trader = new RealTimeEmulationTrader<QuikTrader>(new QuikTrader(QuikTerminal.GetDefaultPath()));

Портфель и инструменты забираются из квика, в реальном портфеле 0 рублей (тестируем стратегию в условиях приближенных к боевым).
Как можно добавить в RealTimeEmulationTrader новый портфель, со значением допустим в 1000000?

При создании стратегии,допустим

_strategy = new Strategy
{
Connector = _trader,
Security = (Security)CbSecurities.SelectedItem,
Portfolio = new Portfolio(){Name = "Test_account", BeginValue = 1000000, CurrentValue = 1000000},
Volume = 1
};

свойство нового портфеля не работает, все равно при работе стратегии забирает данные портфеля из трейдера. А так как на счете 0 рублей, при регистрации заявки пишет нехватка денежных средств.
Прошу помочь, добрым людям, два дня бьюсь на решением проблемы.
Спасибо!
P.S. версия библиотеки S# 4.2.2.6



Спасибо:




5 Ответов
esper

Фотография
Программист
Дата: 04.02.2014
Ответить


В примере SampleRealTimeTesting показано как создать портфель для тестирования.
Спасибо:

FireSpirit

Фотография
Курсы
Дата: 04.02.2014
Ответить


Спасибо за совет, но не работает и данная реализация. Код добавил следующий:
var portfolio = new Portfolio
{
Name = "test account",
BeginValue = 1000000,
CurrentValue = 1000000
};
_trader = new RealTimeEmulationTrader<QuikTrader>(new QuikTrader(QuikTerminal.GetDefaultPath()));
_trader.TransactionAdapter.SendInMessage(portfolio.ToMessage());
_trader.TransactionAdapter.SendInMessage(new PortfolioChangeMessage
{
PortfolioName = portfolio.Name
}.Add(PositionChangeTypes.BeginValue, portfolio.BeginValue));
_trader.TransactionAdapter.SendInMessage(new PortfolioChangeMessage
{
PortfolioName = portfolio.Name
}.Add(PositionChangeTypes.CurrentValue, portfolio.CurrentValue));

Также при выборе данного портфеля при создании стратегии, денег в нем по нулям.
Автор топика
Спасибо:

FireSpirit

Фотография
Курсы
Дата: 05.02.2014
Ответить


Млин, не работает до сих пор... Чего ж делать то)
Автор топика
Спасибо:

Rebelion

Фотография
Курсы
Дата: 06.02.2014
Ответить


FireSpirit Перейти
Млин, не работает до сих пор... Чего ж делать то)


Код
                            realTimeTradeEmulation.RegisterPortfolio(instrument.portfolio);

                            realTimeTradeEmulation.TransactionAdapter.SendInMessage(instrument.portfolio.ToMessage());
                            realTimeTradeEmulation.TransactionAdapter.SendInMessage(new PortfolioChangeMessage
                            {
                                PortfolioName = instrument.portfolio.Name
                            }.Add(PositionChangeTypes.BeginValue, instrument.portfolio.BeginValue));



У меня с этим кодом всё замечательно работает на эмуляшке под квик.
Спасибо: FireSpirit

FireSpirit

Фотография
Курсы
Дата: 07.02.2014
Ответить


Спасибо rebelion. действительно метод _trader.RegisterPortfolio(_portfolio) был необходим!!!
Автор топика
Спасибо:


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

loading
clippy