SampleHistoryTesting
Atom Ответить
29.03.2011


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



Спасибо:




123 Ответов
<< < 3 4 5 
JackSparrow

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


Mikhail Sukhov Перейти
JackSparrow Перейти
Но хочу отметить что быстродействие замедлилось очень радикально. Если в 4.0.16 я прогоняю тест за 5 минут, то пример из dev я выключаю через час прогона.


Это время именно на чистом примере, без всяких MonitorWindow?


Я тоже первым делом на монитор начал грешить, потом отключил все навешаные контролы, прогнал чистый скомпилированный пример вне студии.
Итог 1 час 25 минут. Обращения к диску несущественны, памяти ест 5 Г, скомпилирован под х64.

Щас включу повторный прогон самого сэмпла.

ЗЫ текущий сэмпл из dev на прилагаемых данных по индексу считался 1 час 50 минут
Спасибо:

Mikhail Sukhov

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


JackSparrow Перейти
Итог 1 час 25 минут. Обращения к диску несущественны, памяти ест 5 Г, скомпилирован под х64.


Внес кое-какие оптимизации. Посмотрите, насколько изменилась скорость. Кривая утратила свою плавность, так как событие об ее изменении генерируется реже (это и был самый тормозящий участок).
Спасибо:

JackSparrow

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


Mikhail Sukhov Перейти
JackSparrow Перейти
Итог 1 час 25 минут. Обращения к диску несущественны, памяти ест 5 Г, скомпилирован под х64.


Внес кое-какие оптимизации. Посмотрите, насколько изменилась скорость. Кривая утратила свою плавность, так как событие об ее изменении генерируется реже (это и был самый тормозящий участок).


Да, позитивное изменение очевидно.

по картинкам.
1я - до оптимизации
2я - после оптимизации
3я - после оптимизации с открытым монитором ( форма кривой другая из-за контроля позиции )
Спасибо:

JackSparrow

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


Обновился из dev ветки, моя програмка начала ругаться на монитор, монитор отключил.
Далее она сразу же начала ругаться на Microsoft.practice.Unity рис 1 и 2, говорит что версия ей не та но у меня вроде как даже более высокая версия должна совмещаться, тем более что все взято из рефов.
Попробовал прогнать SampleHistoryTesting, итог такойже см рис 3

Хотелось бы помощь знатоков чего ей надо?
part1.PNG 45,9KB (0) part2.PNG 57,1KB (0) part3.PNG 44,5KB (0)
Спасибо:

Alexander

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


Это я вчера обновил все рефы.
Сегодня поправлю, в ближайшие 2-3 часа.

Фикс уже готов.
Спасибо: JackSparrow

JackSparrow

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


Alexander Mukhanchikov Перейти
Это я вчера обновил все рефы.
Сегодня поправлю, в ближайшие 2-3 часа.

Фикс уже готов.

Спасибо.
Описанная проблема ушла, но теперь пример (как есть) прогоняется без сделок за несколько секунд, и все
Сижу ищу в чем дело, но наверное Вам эта проблема понятнее.
Спасибо:

Alexander

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


JackSparrow Перейти
Alexander Mukhanchikov Перейти
Это я вчера обновил все рефы.
Сегодня поправлю, в ближайшие 2-3 часа.

Фикс уже готов.

Спасибо.
Описанная проблема ушла, но теперь пример (как есть) прогоняется без сделок за несколько секунд, и все
Сижу ищу в чем дело, но наверное Вам эта проблема понятнее.



Нет, мне непонятнее, т.к. неизвестно с чего у вас перестало работать.
Может директория не та, может ещё что.
Пробуйте с примерами из архива.
Спасибо:

Alexander

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


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

JackSparrow

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


Alexander Mukhanchikov Перейти
JackSparrow Перейти
Alexander Mukhanchikov Перейти
Это я вчера обновил все рефы.
Сегодня поправлю, в ближайшие 2-3 часа.

Фикс уже готов.

Спасибо.
Описанная проблема ушла, но теперь пример (как есть) прогоняется без сделок за несколько секунд, и все
Сижу ищу в чем дело, но наверное Вам эта проблема понятнее.



Нет, мне непонятнее, т.к. неизвестно с чего у вас перестало работать.
Может директория не та, может ещё что.
Пробуйте с примерами из архива.


Я про SampleHistoryTesting пишу.
Сделал EnableRuleLog = true и стратегию с трейдером источникам для логов.
Прикладываю картинку и лог, ни одной записи по правилам
SHT1.PNG 22,7KB (0) log.txt 249B (0)
Спасибо:

JackSparrow

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


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

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

Апдейт.
На этих данных пошло. Вопрос снят.
Тогда не пойму, если пути как всегда, то что данные изменены?

Апдейт2
Ваш ответ ниже прочитал. Спасибо. Обновляю и запускаю гидру
Спасибо:

Alexander

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


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

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


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

JackSparrow

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


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

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


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

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

Mikhail Sukhov

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


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

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


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

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


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

Код
[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));
			}
		}


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

gazrvs_nur

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


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

Alexander

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


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

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

gazrvs_nur

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


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

Alexander

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


Исправлено.

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

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

gazrvs_nur

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


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

timur.shaykhiev

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


Я тестирую на 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?
Спасибо:

pyhta4og

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


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
Спасибо: timur.shaykhiev

timur.shaykhiev

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


Спасибо, pyhta4og. Так стало понятнее.

Выставил MinPrice и MaxPrice как ты сказал, поведение не изменилось. По какой-то причине защитная стратегия выставляет заявку именно объемом 1.

2011.01.11 13:17:29.000| |CSS_GAZP@EQNE_test account|Новая Buy сделка 1 по цене 192,67000 на 100 заявки 78302031.
...
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Защита активирована.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Цена текущей NULL и лучшей 194,597.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Лучший бид 193,98000 и лучший аск 194,29000.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Регистрация новой заявки на Sell с ценой 194,597 и объемом 1.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Заявка 78302032 на Sell отправлена с ценой 194,597 объемом 1.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Заявка 78302032 принята биржей.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Сброс счетчика ошибок регистрации с 0 до нуля.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Цена текущей 194,597 и лучшей 1.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Лучший бид 193,98000 и лучший аск 195,00000.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Котирование заявки 78302032 на Sell с ценой 194,597 объемом 1.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Отмена заявки 78302032.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Отмена заявки 78302032.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Заявка 78302032 больше не активна.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Заявка 78302032 была снята. Время снятия 12.01.2011 10:29:59.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Цена текущей NULL и лучшей 1.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Лучший бид 193,98000 и лучший аск 195,00000.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Регистрация новой заявки на Sell с ценой 1 и объемом 1.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Заявка 78302033 на Sell отправлена с ценой 1 объемом 1.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Заявка 78302033 принята биржей.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Сброс счетчика ошибок регистрации с 0 до нуля.
2011.01.12 10:29:59.000| |CSS_GAZP@EQNE_test account|Новая Sell сделка 3 по цене 193,98000 на 1 заявки 78302033.
2011.01.12 10:29:59.000| |TPSLS_GAZP@EQNE_test account|Новая Sell сделка 3 по цене 193,98000 на 1 заявки 78302033.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Новая Sell сделка 3 по цене 193,98000 на 1 заявки 78302033.
2011.01.12 10:29:59.000| |CSS_GAZP@EQNE_test account|Новая позиция: test account-GAZP@EQNE=517.
2011.01.12 10:29:59.000| |TPSLS_GAZP@EQNE_test account|Новая позиция: test account-GAZP@EQNE=-1.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Новая позиция: test account-GAZP@EQNE=-1.
2011.01.12 10:29:59.000| |SLS_GAZP@EQNE_test account|Изменение объема для котирования. Старый объем 100, новый объем 99.
2011.01.12 10:29:59.000| |TPS_GAZP@EQNE_test account|Позиция изменилась на -1. Оставшийся объем 99.

Может в защитных стратегиях есть некое свойство, которое влияет на это поведение?
Спасибо:

Marco

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


Попробуйте руками выставить свойства Volume и QuotingVolume у защитной стратегии.
Спасибо: timur.shaykhiev

timur.shaykhiev

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


Выставление Volume решило проблему. Спасибо.
Спасибо:
<< < 3 4 5 

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

loading
clippy