RealTimeEmulationTrader

RealTimeEmulationTrader
Atom
2/4/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




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

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

Thanks:

FireSpirit

Avatar
Date: 2/5/2014
Reply


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

Thanks:

Rebelion

Avatar
Date: 2/6/2014
Reply


[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]

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

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