← Zurück

изменение стакана в EmulationTrader

А можно ли подписаться и получать изменения стакана из EmulationTrader без изпользования стратегий. Связка


Trader.MarketDepthsChanged += OnQuotesChanged;
Trader.RegisterQuotes(Sec1);

хорошо работающая на боевых трейдерах не хочет работать на тестовом.

War dieses Thema hilfreich?

Thema teilen

Kommentare (2)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

alexeev.evg
alexeev.evg

Присоединяюсь. В 4.1.1 событие работало.

Сейчас событие MarketDepthsChanged объекта EmulationTrader не отрабатывает. Трейдер запускается, маркет тайм бежит, а событие не срабатывает:


var security = new Security
{
	Id = "RIU2@RTS", 
	Code = "RIU2",
	Name = "RTS-9.12",
	MinStepSize = 5,
	MinStepPrice = 2,
	Exchange = Exchange.Test,
};
var portfolio = new Portfolio { Name = "test account", BeginValue = 1000000m };
var storageRegistry = new StorageRegistry();
((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = HistoryPath.Text;

var timeFrame = TimeSpan.FromMinutes(5);
var startTime = new DateTime(2012, 6, 18);
var stopTime = new DateTime(2012, 6, 22);

_trader = new EmulationTrader(
	new[] { security },
	new[] { portfolio })
{
	MarketTimeChangedInterval = timeFrame,
	StorageRegistry = storageRegistry,
	WorkingTime = Exchange.Rts.WorkingTime,
	UseMarketDepth = true,
};
_trader.MarketDepthsChanged += (depths) =>
	{
		//не работает!
	};
_trader.RegisterMarketDepth(security);
_trader.Connect();
_trader.StartExport();
_trader.Start(startTime, stopTime);

Начинает срабатывать только если стартануть CandleManager.

pyhta4og
pyhta4og

alexeev.evg: Присоединяюсь. В 4.1.1 событие работало.

Сейчас событие MarketDepthsChanged объекта EmulationTrader не отрабатывает. Трейдер запускается, маркет тайм бежит, а событие не срабатывает:

var security = new Security { Id = "RIU2@RTS", Code = "RIU2", Name = "RTS-9.12", MinStepSize = 5, MinStepPrice = 2, Exchange = Exchange.Test, }; var portfolio = new Portfolio { Name = "test account", BeginValue = 1000000m }; var storageRegistry = new StorageRegistry(); ((LocalMarketDataDrive)storageRegistry.DefaultDrive).Path = HistoryPath.Text;

var timeFrame = TimeSpan.FromMinutes(5); var startTime = new DateTime(2012, 6, 18); var stopTime = new DateTime(2012, 6, 22);

_trader = new EmulationTrader( new[] , new[] ) ; _trader.MarketDepthsChanged += (depths) => { //не работает! }; _trader.RegisterMarketDepth(security); _trader.Connect(); _trader.StartExport(); _trader.Start(startTime, stopTime);

> 
> Начинает  срабатывать только если стартануть CandleManager.

есть баг RegisterMarketDepth не работает без RegisterTrades. Добавьте RegisterTrades все  заработает.

Поправим в след версиях.