RealTimeEmulationTrader

RealTimeEmulationTrader
Atom
2/4/2014
FireSpirit


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

Итак, создаю трейдера 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



Thanks:


esper

Avatar
Date: 2/4/2014
Reply


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

FireSpirit

Avatar
Date: 2/4/2014
Reply


Спасибо за совет, но не работает и данная реализация. Код добавил следующий:
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));

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

FireSpirit

Avatar
Date: 2/5/2014
Reply


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

Rebelion

Avatar
Date: 2/6/2014
Reply


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


Code
                            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));



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

FireSpirit

Avatar
Date: 2/7/2014
Reply


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


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

loading
clippy