Время заявок и сделок отстает от исторического при тестировании


Время заявок и сделок отстает от исторического при тестировании
Atom
4/15/2013


Время заявок и сделок отстает от исторического при тестировании.
Использую EmulationTrader, данные загружаю из истории, закаченой через Гидру.
В чем причина, как сделать правильно?
Далее куски кода.







Thanks:


Roma

Avatar
Date: 4/15/2013
Reply


Я вышел из ситуации приавлением целого числа 6 к времени при отрисовки метки заявки и сделки, код:
Code

strategy.WhenNewMyTrades()
                        .Do(mytrades => this.GuiAsync(
                            () =>
                                {
                                    Debug.WriteLine("NewMyTrades: " + mytrades.Count());
                                    mytrades.ForEach(
                                        t => Chart.ProcessValues(t.Trade.Time+TimeSpan.FromHours(6), new Dictionary<IChartElement, object>()
                                            {
                                                {_tradeElement, t}
                                            }));
                                }))
                            .Apply();

strategy.WhenOrderRegistered()
                       .Do(order =>
                           {
                               Debug.WriteLine("OrderRegistered: " + order.Volume.ToString());
                               this.GuiAsync(
                                   () => Chart.ProcessValues(order.Time+TimeSpan.FromHours(6), new Dictionary<IChartElement, object>()
                                       {
                                           {_orderElement, order}
                                       }));

                           })
                       .Apply();
Thanks:

Иван З.

Avatar
Date: 4/15/2013
Reply


Здравствуйте! Посмотрите вот здесь, может поможет.
http://www.stocksharp.co...um/3324/Raznoie-vriemia/
Thanks:

Moadip

Avatar
Date: 4/15/2013
Reply


Траблы возникают, если временнАя зона компа отлична от московской.
Чтобы в логах и у сделок время было правильное надо сделать следующее:

У инструментов надо выставлять:
Code
ExchangeBoard = ExchangeBoard.Forts


Сделать наследника от EmulationTrader и в нем переопределить GetMarketTime
Code

	public class EmulationTraderEx : EmulationTrader
	{
		public override DateTime GetMarketTime(Exchange exchange)
		{
			return MarketEmulator.CurrentTime;
		}
	}


Временная зона эмулятора - Москва. TimeSpan.FromHours(4) потому что лето.
Code

EmulationTraderEx trader;

...

((MarketEmulator)trader.MarketEmulator).EmulatorTimeZone = TimeZoneInfo.CreateCustomTimeZone("Custom", TimeSpan.FromHours(4), "Custom", "Custom");




Thanks:


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

loading
clippy