RealTimeEmulationTrader
Atom
04.02.2014
FireSpirit


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

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

_trader = new RealTimeEmulationTrader(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




Спасибо:


esper

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


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

Спасибо:

FireSpirit

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


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

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

Спасибо:

FireSpirit

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


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

Спасибо:

Rebelion

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


[quote=FireSpirit;29449]Млин, не работает до сих пор... Чего ж делать то)[/quote]

[code=csharp] 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));[/code]

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

Спасибо: FireSpirit

FireSpirit

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


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

Спасибо:


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

loading
clippy