Тестирование 4.2.2.16. Вывод свечей на график.

Тестирование 4.2.2.16. Вывод свечей на график.
Atom
3/10/2014
romany4


Добрый вечер! Разъясните, пожалуйста, следующую ситуацию. Есть HistoryEmulationConnector. Есть свечи из бд (источник финам). Допустим такой набор

OPEN | HIGH | LOW | CLOSE | VOLUME | DATETIME_CANDLE 97.8000 | 98.2000 | 97.7500 | 98.0100 | 1505670 | 2013-10-01 10:00:00 98.0600 | 98.1100 | 97.8800 | 98.0000 | 1208190 | 2013-10-01 10:05:00 98.0000 | 98.1600 | 97.9500 | 98.0000 | 3890740 | 2013-10-01 10:10:00 98.0000 | 98.0500 | 98.0000 | 98.0400 | 99520 | 2013-10-01 10:15:00 ...

Свечи формируются следующим образом


var time = DateTime.ParseExact(candle.DatetimeCandle, "dd.MM.yyyy HH:mm:ss", null);
return new TimeFrameCandle()
{
    OpenPrice = candle.Open,
    HighPrice = candle.High,
    LowPrice = candle.Low,
    ClosePrice = candle.Close,
    TimeFrame = timeFrameCandle,
    OpenTime = time,
    CloseTime = time + timeFrameCandle,
    TotalVolume = candle.Volume,
    Security = security,
    State = CandleStates.Finished
};

Если смотреть через дебаггер - то значения соответствуют тем, что выше.

  1. Но вот при отрисовке свечей их OPEN и CLOSE значения изменяются. Изменяются они не намного, но все же мне пока не понятно по какому принципу это происходит.
  2. И еще - все первые свечи (10:00:00) каждого дня при отрисовке имеют OPEN = HIGH = LOW = CLOSE, что, например, не соответствует данным, указанным выше. (Для первого набора, например, эти значения равны 97,8)

Буду благодарен, если кто-то объяснит почему так происходит.




Thanks:


< 1 2 
romany4

Avatar
Date: 3/15/2014
Reply


У финама дырявые данные Тут суть то в том, что через гидру я тоже качаю финамовские данные (источник Финам). И получается, что данные полученные от финама напрямую, отличаются от данных финама, скачанные гидрой. Собственно со всего этого и началось. Я хочу понять почему так происходит.

Сбросьте ВСЕ файлы, включая ваш пример и исторические данные в одном архиве Сегодня-завтра скину

Thanks:

Bond

Avatar
Date: 3/24/2014
Reply


Добрый день! Раньше, к сожалению, не было возможности посмотреть ваши файлы. Поэтому отвечаю только сейчас. Значит, что я обнаружил. Ошибку вашу подтверждаю. Свечки строятся не правильно. В высланном вами примере творится хаос. На мой взгляд все слишком мудрено написано. Странная схема построения свечек и работа с series. Это все таки тестирование, а не реальная торговля, зачем с этим заморачиваться не понятно. Предлагаю такую схему работы со свечами:


//Загружаем из хранилища свечи, + добавляем один день(косяк - не выводит последний день)
var candles = storageRegistry.GetCandleStorage(typeof(TimeFrameCandle), security, timeFrame).Load(startTime, stopTime.AddDays(1));

//Перебираем полученные свечи
foreach (var candle in candles)
{
   DrawCandle(candle, ChartCandleElement);
}

//Выводим их на график или обрабатываем как нравится
private void DrawCandle(Candle candle, ChartCandleElement chartCandleElement)
{
   this.GuiAsync(() => _candleWindow.Chart.ProcessCandle(chartCandleElement, candle));
}

Отправил вам на почту рабочий пример работы со свечами.

Thanks: romany4

romany4

Avatar
Date: 3/26/2014
Reply


Спасибо за помощь)

Ошибку вашу подтверждаю. Свечки строятся не правильно. ... Это все таки тестирование, а не реальная торговля, зачем с этим заморачиваться не понятно. Просто если вести статистику - то можно запутаться, получается что на деле значения свечи одни а в эмуляторе уже другие. И тем более при переходе на реальную торговлю это не вызовет неожиданных результатов? Было бы классно, если ребята из S# прокомметировали эту ситуацию...

Thanks:
< 1 2 

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

loading
clippy