Подгрузка данных в индикатор

Подгрузка данных в индикатор
Atom
1/22/2014
kesot


При тестировании столкнулся с проблемой: когда начинаю обрабатывать свечи и добавляю их в какой либо индикатор, пусть будет SMA, через метод process - в нем нет прошлых свечей.
Откуд их взять чтобы добавить туда еще до старта. Свечи прошлых дней, или сессий, если я вдруг перезагрузил прогу?
Кстати в примере тестирования SMA на исторических данных этот косяк тоже присутствует и первые 10 свечей обе средние идут вровень. И не смотря на это в конструкторе есть тщетная попытка выяснить кто из них ниже _isShortLessThenLong = ShortSma.GetCurrentValue() < LongSma.GetCurrentValue();

Собоственно как бы туда залить данные из прошлого? Откуда?
Неужели необходимо вести базу ручками и загружать оттуда все до текущего момента?
Может существует более простая реализация?

Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 1/23/2014
Reply


Гуглите Прогрев стратегии
Thanks:

kesot

Avatar
Date: 1/24/2014
Reply


интересная терминология, что то ничего не нарыл.
хоть общую идею подскажите, чем заполнять индикаторы перед стартом стратегии?
Thanks:

kesot

Avatar
Date: 1/24/2014
Reply


зачем тему то в курилку кинули? чтобы ее вообще никто никогда не увидел?
хоть бы в общий раздел кинули.
Thanks:

Иван З.

Avatar
Date: 1/25/2014
Reply


Посмотрите вот этот код в SampleSMA
Code
				IEnumerable<Candle> candles = CultureInfo.InvariantCulture.DoInCulture(() => File.ReadAllLines("LKOH_history.txt").Select(line =>
				{
					var parts = line.Split(',');
					var time = (parts[0] + parts[1]).ToDateTime("yyyyMMddHHmmss");
					return (Candle)new TimeFrameCandle
					{
						OpenPrice = parts[2].To<decimal>(),
						HighPrice = parts[3].To<decimal>(),
						LowPrice = parts[4].To<decimal>(),
						ClosePrice = parts[5].To<decimal>(),
						TimeFrame = _timeFrame,
						OpenTime = time,
						CloseTime = time + _timeFrame,
						TotalVolume = parts[6].To<decimal>(),
						Security = _lkoh,
						State = CandleStates.Finished,
					};
				}).ToArray());

				var lastCandleTime = default(DateTime);

				// начинаем вычислять скользящие средние
				foreach (var candle in candles)
				{
					ProcessCandle(candle);
					lastCandleTime = candle.OpenTime;
				}

вот как раз здесь идет наполнение свечами, только свечи берутся из LKOH_history.txt.
А если смотреть документацию http://www.stocksharp.com/doc/ так там есть "Инициализация самой стратегии и заполнение его историческими данными: "
На форуме если искать то тоже найдете ответ.
Thanks:

vsnoopy83

Avatar
Date: 2/18/2014
Reply


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

kesot

Avatar
Date: 2/20/2014
Reply


Ну то есть в итоге все равно получается, что нужно сохранять каждый раз все свечи и сделки, и загружать перед стартом.
Просто думал может быть есть какой то метод чтобы загрузить от брокера хистори, как это происходит в терминалах, ведь когда открываешь какой-нибудь график в том же Transaq - он рисует любой промежуток, а не с того момента как ты подключился.
Точно нет ничего подобного?
Thanks:


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

loading
clippy