SampleHistoryTesting
Atom
3/29/2011
roman


SampleHistoryTesting - непонятно как работает:(
Скачал RIU9@RTS.zip (Файл с историческими сделками для примера SampleHistoryTesting.) http://www.box.net/stock...#/stocksharp/1/74701094
Запустил SampleHistoryTesting - выбрал папку с распакованным архивом
В итоге алгоритм на строчку _nextTime += base.TimeFrame; так не разу и не попал:(
И непонятно как получить файлы и директории такого формата для другого инструмента.



Thanks:


<< < 10 11 12 13  >
Alexander

Avatar
Date: 3/12/2012
Reply


JackSparrow
Alexander Mukhanchikov
Там кстати архив с RIU обновляли в dev. Вы его взяли?

нет я этот архив не брал.
Прогоню еще на нем, но ведь формат данных не менялся вроде?


Вы прогоните на нём, сами всё увидите.
Формат менялся.
Thanks:

JackSparrow

Avatar
Date: 3/13/2012
Reply


Alexander Mukhanchikov
JackSparrow
Alexander Mukhanchikov
Там кстати архив с RIU обновляли в dev. Вы его взяли?

нет я этот архив не брал.
Прогоню еще на нем, но ведь формат данных не менялся вроде?


Вы прогоните на нём, сами всё увидите.
Формат менялся.

А как обнулить дату последней сделки в Гидре чтоб начать заново данные обрабатывать, она от последней сделки идет, на то что директория data пустая внимания не обращает.
Thanks:

Mikhail Sukhov

Avatar
Date: 3/13/2012
Reply


JackSparrow
Alexander Mukhanchikov
JackSparrow
Alexander Mukhanchikov
Там кстати архив с RIU обновляли в dev. Вы его взяли?

нет я этот архив не брал.
Прогоню еще на нем, но ведь формат данных не менялся вроде?


Вы прогоните на нём, сами всё увидите.
Формат менялся.

А как обнулить дату последней сделки в Гидре чтоб начать заново данные обрабатывать, она от последней сделки идет, на то что директория data пустая внимания не обращает.


Если нужно перегнать в новый формат, вот скрипт:

Code
[TestMethod]
		public void ConvertData()
		{
			foreach (var secDir in Directory.EnumerateDirectories(@"d:\SS\D\HydraRiRs"))
			{
				if (Directory.EnumerateFiles(secDir).Any())
					continue;
				
				var dateDirs = Directory.GetDirectories(secDir);

				var prefixes = new[] { "trades", "quotes" };
				foreach (var prefix in prefixes)
				{
				
					var metaInfo = new Dictionary<DateTime, IDictionary<string, object>>();



					foreach (var dir in dateDirs)
					{
						var date = Path.GetFileName(dir).ToDateTime("yyyy_MM_dd");

						var files = Directory.GetFiles(dir);


						var meta = files.FirstOrDefault(f => Path.GetFileName(f) == prefix+".xml");
						var data = files.FirstOrDefault(f => Path.GetFileName(f) == prefix+".bin");
						if (null != meta)
						{
							CultureInfo.InvariantCulture.DoInCulture(() => metaInfo.Add(date, new XmlSerializer<IDictionary<string, object>>().Deserialize(meta)));

							File.Move(data, Path.Combine(secDir, prefix + "_" + Path.GetFileName(dir) + ".bin"));
						}
					}
					CultureInfo.InvariantCulture.DoInCulture(() => new XmlSerializer<IDictionary<DateTime, IDictionary<string, object>>>().Serialize(metaInfo, Path.Combine(secDir, prefix+".xml")));
				}

				foreach (var dir in dateDirs)
				{
					Directory.Delete(dir, true);
				}

				Console.WriteLine(Path.GetFileName(secDir));
			}
		}


Бинарный формат не менялся. Поменялась только организация данных. Перед прогонкой лучше сделать бэкап.
Thanks:

gazrvs_nur

Avatar
Date: 5/8/2012
Reply


При пробном тестировании SampleHistoryTesting и SampleHistoryTestingParallel на stocksharp-16722 / dev выходит исключение "У инструмента отсутствует информация планках. Имя параметра: security" и далее стратегия никаких сделок не совершает. /проблема решилась когда в ручную установил Security.MaxPrice и Security.MinPrice /
Но следом вышла другая ошибка в ChildStrategies.Add(strategy). Может в версии 4.1 что то поменялось в ChildStrategies?
Планки.jpg 189 KB (630) security.jpg 185 KB (250)
Thanks:

Alexander

Avatar
Date: 5/8/2012
Reply


По первому - у фьючей нет маркет цены, можно только использовать цены планок. Информации по ним не было - от этого и проблема.

По второму - пишите StackTrace, а не картинки.
Thanks:

gazrvs_nur

Avatar
Date: 5/8/2012
Reply


Александр,
тоже самое проделал по истории GAZP@EQNE и ROSN@EQNL результат тот же.
Добавил планки и снова ошибка в ChildStrategies.Add(strategy).
Планки-2.jpg 472 KB (627) security-2.jpg 484 KB (240)
Thanks:

Alexander

Avatar
Date: 5/10/2012
Reply


Исправлено.

GetMarketPrice не доступно для инструментов без лимитов, используйте GetCurrentPrice (в примерах исправлено).

И просьба в следующий раз помимо скриншотов прикладывать всё же StackTrace, без него крайне сложно разобраться.
Thanks:

gazrvs_nur

Avatar
Date: 5/10/2012
Reply


Спасибо, теперь все заработало!
StackTrace это имеется ввиду данные IntelliTrace в VS 2010 или loq.txt?
Thanks:

timur.shaykhiev

Avatar
Date: 11/4/2012
Reply


Я тестирую на EmulationTrader на 4.1.5 и тоже получаю исключение "У инструмента отсутствует информация о планках. Имя параметра: security". Security.MaxPrice и Security.MinPrice по умолчанию равны 0. Я проверил на 4.1.1, там они тоже были нулевые, но исключения не было.

Я выставил ненулевые значения для Security.MaxPrice и Security.MinPrice, исключение пропало, но теперь у меня TakeProfitStopLossStrategy продает по 1 акции. Т.е. была произведена покупка 100 акций и выставлена защита, защита срабатывает и делает 100 продаж по 1 акции.

Я подозреваю, что я делаю что-то не так, но не могу понять что. Код тот же самый, что работал с 4.1.1. Какой смысл у значений Security.MaxPrice и Security.MinPrice, что значит "верхний/нижний лимит цены"? Какими они должны быть выставлены для эмулятора, например для GAZP@EQNE?
Thanks:

pyhta4og

Avatar
Date: 11/7/2012
Reply


timur.shaykhiev
Я тестирую на EmulationTrader на 4.1.5 и тоже получаю исключение "У инструмента отсутствует информация о планках. Имя параметра: security". Security.MaxPrice и Security.MinPrice по умолчанию равны 0. Я проверил на 4.1.1, там они тоже были нулевые, но исключения не было.

Я выставил ненулевые значения для Security.MaxPrice и Security.MinPrice, исключение пропало, но теперь у меня TakeProfitStopLossStrategy продает по 1 акции. Т.е. была произведена покупка 100 акций и выставлена защита, защита срабатывает и делает 100 продаж по 1 акции.

Я подозреваю, что я делаю что-то не так, но не могу понять что. Код тот же самый, что работал с 4.1.1. Какой смысл у значений Security.MaxPrice и Security.MinPrice, что значит "верхний/нижний лимит цены"? Какими они должны быть выставлены для эмулятора, например для GAZP@EQNE?



На фортс нет маркет-заявок. Когда вы делаете покупку "по маркету" это имитируется лимитной покупкой по очень большой цене - верхней планке - MaxPrice.

Эта заявка сводится со стаканом. Если объем заявки большой, он будет полностью скуплен по все более высоким ценам. При этом продать вы можете по все тому-же низкому биду. И будет получаться убыток. На что вполне может сработать TakeProfitStopLossStrategy. И все продать по этому биду. Хотя непонятно почему по 1му ордеру.

Так что поставьте лимит убытков побольше, раз покупаете 100 контрактов.

а MaxPrice ставьте в 1000000, а MinPrice ставьте в 1
Thanks: timur.shaykhiev
<< < 10 11 12 13  >

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

loading
clippy