Свечи с таймфреймом менее секунды

Свечи с таймфреймом менее секунды
Atom
11/28/2011
vk37


Использую версию 3.2.11 Пробую сохранить сформированные свечи в тхт формат из Гидры. Таймфрейм для свечей менее секунды. Все, кроме отсутствия в дате долей секунд, формируется, похоже, правильно. В тхт экспортируются с точностью до секунды. Поменял txt_export_candles.st на:

$candles:{\(it.Time; format="dd.MM.yyyy"\), \(it.Time; format="HH:mm:ss.FFFFFFF"\), \(it.OpenPrice\), \(it.HighPrice\), \(it.LowPrice\), \(it.ClosePrice\), \(it.TotalVolume\) }$

Все равно точность только до секунд. Похоже, что метод candleManager.GetCandles(token) в CandlesWindow формирует свечи со свойством Time с точностью до секунд. Можно повысить точность свойства Time?


Tags:


Thanks:


Alexander

Avatar
Date: 11/29/2011
Reply


а можно провести распечатку получившихся свечей по GetCandle? с указанием как раз Time.

Есть подозрение что как раз тут всё нормально.

Thanks:

vk37

Avatar
Date: 11/29/2011
Reply


Доверяй, но проверяй :)

Распечатка во вложении. Построены свечи по RIZ1@RTS от 24.10.2011 с 10:00 до 10:02, таймфрейм - 0.01 сек.

private void Build_Click(object sender, RoutedEventArgs e)
{
	var candleManager = new CandleManager(Trades) { IsSyncRegister = true };

	CandleToken token = null;

	switch (CandleType.SelectedIndex)
	{
		case 0:
			token = candleManager.RegisterTimeFrameCandles(Security, ((DateTime)TimeFrame.DateTime).TimeOfDay);
			break;
		case 1:
			token = candleManager.RegisterTickCandles(Security, TickCount.Text.To<int>());
			break;
		case 2:
			token = candleManager.RegisterVolumeCandles(Security, Volume.Text.To<int>());
			break;
		case 3:
			token = candleManager.RegisterRangeCandles(Security, Range.Text.ToUnit(Security));
			break;
	}

	if (token == null)
		return;

    var candles = candleManager.GetCandles(token);

    foreach (var c in candles)
    {
        System.Diagnostics.Debug.WriteLine(c.Time.ToString("dd.MM.yyyy HH:mm:ss.FFFFFFF"));
    }

    BuildedCandles.ItemsSource = candles;
	ExportBtn.IsEnabled = ShowChart.IsEnabled = true;
}
candles.txt 85 KB (479)
Thanks:

Alexander

Avatar
Date: 11/29/2011
Reply


Ок, посмотрим.

Thanks:

vk37

Avatar
Date: 11/29/2011
Reply


Из MSDN:

"FFFFFFF" Если ненулевое значение, то десятимиллионные доли секунды в значении даты и времени. Настраиваемый описатель формата "FFFFFFF" представляет семь наиболее значимых цифр секунд, то есть десятимиллионные доли секунды в значении даты и времени. При этом нули в конце или семь нулей не отображаются. 6/15/2009 13:45:30.6175425 -> 6175425 6/15/2009 13:45:30.0001150 -> 000115

Если бы доли секунды были, они бы отобразились :)

Thanks:

Mikhail Sukhov

Avatar
Date: 11/29/2011
Reply


Пофиксили. Появиться на КодеПлекс в ближайшее время.

Thanks:

vk37

Avatar
Date: 11/29/2011
Reply


Спасибо.

Thanks:

vk37

Avatar
Date: 11/30/2011
Reply


Сделал робота на основе SampleSmartConsole. Столкнулся с тем, что отсутствуют доли секунд - теперь в сделках и в тиковых свечах:

CandleManager.NewCandles += (token, candles) =>
{
    StringBuilder b = new StringBuilder();

    foreach (var candle in candles)
        if (candle.Security.Id == Security.Id && candle is TickCandle)
            b.Append("{0:dd.MM.yyyy}, {0:HH:mm:ss.FFFFFFF}, {1}, {2}, {3}, {4}, {5}{6}"
                .Put(candle.Time,
                candle.OpenPrice,
                candle.HighPrice,
                candle.LowPrice,
                candle.ClosePrice,
                candle.TotalVolume,
                Environment.NewLine));

    using (StreamWriter file = new StreamWriter(@"Tick", true))
        file.Write(b.ToString());

};

Trader.NewTrades += trades =>
{
    StringBuilder b = new StringBuilder();

    foreach (var trade in trades)
        b.Append("{0:dd.MM.yyyy}, {0:HH:mm:ss.FFFFFFF}, {1}, {1}, {1}, {1}, {2}{3}"
            .Put(trade.Time, trade.Price, trade.Volume, Environment.NewLine));

    using (StreamWriter file = new StreamWriter(@"Tick", true))
        file.Write(b.ToString());
};

Я правильно понимаю, что ваш фикс пофиксит эту ситуацию тоже? Или мне просто нужно попробовать более новую версию? Или доли секунд Смарт не предоставляет? :)

Thanks:

Mikhail Sukhov

Avatar
Date: 11/30/2011
Reply


vk37: Или доли секунд Смарт не предоставляет? :)

Конечно, нет.

Thanks:

vk37

Avatar
Date: 11/30/2011
Reply


Mikhail Sukhov:

vk37: Или доли секунд Смарт не предоставляет? :)

Конечно, нет.

Что-то они пожадничали :) На Плазе то же самое?

Thanks:


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

loading
clippy