← 戻る

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

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


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

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

このトピックは参考になりましたか?

トピックを共有

コメント (2)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

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 все  заработает.

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