S#

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


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


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







Спасибо:




3 Ответов
Roma

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


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

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();
Автор топика
Спасибо:

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 15.04.2013
Ответить


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

Moadip

Фотография
Автор статей Программист
Дата: 15.04.2013
Ответить


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

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


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

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


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

EmulationTraderEx trader;

...

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




Спасибо:


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

loading
clippy