Урок 8. Тестирование
Atom Ответить
23.07.2013


Видео-уроки:
Тестирование стратегий



Темы занятия:
  • Общие понятия о тестировании.
  • Тестирование на исторических данных.
  • Тестирование на рыночных данных.


Полезные ссылки:
О тестировании
Тетирование на историческиз данных
Тестирование на рыночных данных
Тестирование на случайных данных
Настройки тестирования
Тестирование торговой системы

Домашнее задание:
[Основное] Провести полное тестирование на случайных данных.
[Дополнительное] В проекте, приложенному к данному уроку, реализовать возможность выбора режима тестирования на случайных данных.

Вложения:
Скачать проекты

Изменения в проектах:

Теги:


Спасибо:




18 Ответов
albion8

Фотография
Курсы
Дата: 23.07.2013
Ответить


Добрый день.

нет доступа к вложенному файлу (проект) для моего логина. Проверьте, пожалуйста.
Спасибо:

Самунджян Артем

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


albion8 Перейти
Добрый день.

нет доступа к вложенному файлу (проект) для моего логина. Проверьте, пожалуйста.


Все права доступа у Вас есть. Очень странно.
Автор топика
Спасибо:

albion8

Фотография
Курсы
Дата: 24.07.2013
Ответить


Господа,
похоже были какие-то проблемы у меня в браузере или куках. Проблема пропала когда я разлогинился и залогинился снова. Прошу прощения за ложную тревогу ))
Спасибо:

Prival

Фотография
Курсы
Дата: 25.08.2013
Ответить


Подключился к проекту

И что там делать ?
Куда идти и что нажимать, что бы получить указанные вами картинки и их исходные коды https://stocksharp.ru/products/shell/
к сожалению повторить весь код что был приведен на уроке не смог, к тому же он отличается от того что приведен по ссылке (картинки точно другие)

Где и как прочитать что выводиться там на картинках? (очень часто встречал что многие параметры разработчики считают по разному)
Как при тестировании найти оптимальные параметры стратегии ?
Как протестировать стратегию, не на свечках, а к примеру на графике ренко и найти оптимальные параметры стратегии ?
Как при тестировании и поиске оптимальный параметров указать, свою целевую функцию и искать её максимум (минимум), к примеру max(MAE)
и т. д.
Спасибо:

Валентин Мирошниченко

Фотография
Автор статей
Дата: 26.08.2013
Ответить


Куда идти и что нажимать, что бы получить указанные вами картинки и их исходные коды https://stocksharp.ru/products/shell/
к сожалению повторить весь код что был приведен на уроке не смог, к тому же он отличается от того что приведен по ссылке (картинки точно другие)


Для этого достаточно подключиться к tfs через Visual studio и скачать проект shell.

Где и как прочитать что выводиться там на картинках? (очень часто встречал что многие параметры разработчики считают по разному)
Информация о статистике доступна на этой странице https://stocksharp.ru/do...harp_Algo_Statistics.htm
Также вы можете самостоятельно закодировать необходимую вам метрику и сравнить её с нашей что бы убедиться, что всё рассчитывается правильно, если же значения будут сильно расходиться то вы можете использовать свою реализацию.

Как при тестировании найти оптимальные параметры стратегии ?

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

Как протестировать стратегию, не на свечках, а к примеру на графике ренко и найти оптимальные параметры стратегии ?

Для этого достаточно сделать стратегию основанную не на TimeFrameCandle , а на RenkoCandle

Как при тестировании и поиске оптимальный параметров указать, свою целевую функцию и искать её максимум (минимум), к примеру max(MAE)
и т. д.


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

Спасибо:

Prival

Фотография
Курсы
Дата: 27.08.2013
Ответить


Для этого достаточно подключиться к tfs через Visual studio и скачать проект shell.

Скачал, сам не понял как но вроде получилось. Есть ли видео урок посвященный использованию Robot 4.0 ?


Информация о статистике доступна на этой странице https://stocksharp.ru/do...harp_Algo_Statistics.htm
Также вы можете самостоятельно закодировать необходимую вам метрику и сравнить её с нашей что бы убедиться, что всё рассчитывается правильно, если же значения будут сильно расходиться то вы можете использовать свою реализацию.


не смог там найти MFE, MAE и примеров их использования. Вообще примеров очень мало. Было бы великолепно увидеть несколько уроков посвященных построению роботов и поиску оптимальных значений.

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

Очень рад что Ваша вера в меня, столь огромна. Но я только изучаю С# (хотя и программирую роботов очень давно). Писать на С# генетическую оптимизацию даже не мечтаю. Но возможно эта ссылка поможет тем кто может это сделать
http://www.mql5.com/ru/articles/55

Для этого достаточно сделать стратегию основанную не на TimeFrameCandle , а на RenkoCandle

А как увидеть эти графики ? Очень интересует RenkoCandle, как он реализован ? последний бар перерисовывается или нет ? как происходит его построение во время ГЭПа ? Есть ли кирпичи с нулевым объемом ? Кирпичи перекрываются, накладываются друг на друга или идут с гэпом ? и т.д.

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

Жизни не хватит, мне и так уже 48 лет и первую свою программу я написал в 1985 году (28 лет назад :-(().

З.Ы. Я четко знаю что я хочу запрограммировать. могу показать как это реализовано в NinjaTrader (исходные коды + математику, как это я делал в МТ4 и МТ5). Но даже после просмотра всех видео уроков не представляю как это сделать на С#(((
Спасибо: Bond

Николай

Фотография
Курсы
Дата: 16.12.2013
Ответить


Добрый день.

Я скачал данный урок и запустил на выполнение на тестовых данных (предварительно скачав данные с помощью Hydra за 01.07.2013 по 12.07.2013) и изменил путь в программе на мой.

При отработке программы на графике PnL ничего не отображается. Захожу в MyTrades (Отдельное окно) и вижу, что сделок у меня нет вообще( верхняя половина окошка), а в нижней много информации по заявкам, однако у всех у них статус "Ошибка".

Пример из второго окна MyTradesWindow:

Код
0	54363801	08.07.2013 18:15:00	test account	1	1	126470	Покупка Лимитированная Ошибка  18:15:00		


Подскажите в чем может быть дело и почему не происходят сделки?

Спасибо:

Николай

Фотография
Курсы
Дата: 19.12.2013
Ответить


Может кто подсказать, почему при тестировании стратегии на исторических данных не совершаются сделки?

Более детальный анализ показал, что стратегия срабатывает и выставляет заявки тогда когда нужно, однако после этого в статусе появляется состояние "Ошибка". После чего все повторяется, когда стратегия срабатывает во второй и последующие разы. При этом номер у заявок у всех 0.

Буду благодарен за ответ. Дальше как-то тяжело разбираться, когда пример из урока не отрабатывает.

С уважением,
Николай.
Спасибо:

IvanB

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


Николай Перейти
Может кто подсказать, почему при тестировании стратегии на исторических данных не совершаются сделки?

Более детальный анализ показал, что стратегия срабатывает и выставляет заявки тогда когда нужно, однако после этого в статусе появляется состояние "Ошибка". После чего все повторяется, когда стратегия срабатывает во второй и последующие разы. При этом номер у заявок у всех 0.

Буду благодарен за ответ. Дальше как-то тяжело разбираться, когда пример из урока не отрабатывает.

С уважением,
Николай.


Вы пробовали работать с проектами, предложенными в качестве примеров библиотеки S# или проектов из уроков S#? Там такие проблемы есть?
Спасибо:

Николай

Фотография
Курсы
Дата: 20.12.2013
Ответить


Иван, проблема как раз именно в проекте из урока S# номер 8 (08_lesson(Testing)).

Я запускаю именно проект, скаченные из StockSharp.Edu и меняю лишь путь данных на мой.

Я об этом уже писал чуть выше.

Запустить пример из Samples не получилось, не нашел библиотеку StockSharp.Messages, но посмотрев код она не особо отличается от того что в уроке 8.

Поэтому вопрос остается актуален.
Спасибо:

IvanB

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


Николай, причина была в том, что на торги не хватало средств в портфеле:
Код

// создаем портфель для тестирования
_portfolio = new Portfolio { Name = "test account"};


если изменить:
Код

// создаем портфель для тестирования
_portfolio = new Portfolio { Name = "test account", BeginValue = 1000000};


Либо по новой закачайте проект с сервера, там он исправлен, либо сами измените так, как показано выше.
Спасибо:

Николай

Фотография
Курсы
Дата: 24.12.2013
Ответить


Иван, спасибо. Действительно данное изменение помогло.
Спасибо:

JaguarFX

Фотография
Курсы
Дата: 25.01.2014
Ответить


В версии API 4.2.1.7 уже не работает конструктов класса TrendMarketDepthGenerator с параметром Security, как это указано в примере для версии 4.1.19.1:var mdGenerator = new TrendMarketDepthGenerator(_security)

Согласно описанию конструктор требует объект типа StockSharp.Messages.SecurityId:
public TrendMarketDepthGenerator(StockSharp.Messages.SecurityId securityId)

Но наиболее очевидный вариант создания этого объекта, который вроде не вызывает ошибок с т.зр. VS2012:
var mdGenerator = new TrendMarketDepthGenerator(new SecurityId(_security));
в дальнейшем при попытке зарегистрировать стакан в трейдере через метод RegisterMarketDepth(mdGenerator) дает ошибку {"Значение не может быть неопределенным.\r\nИмя параметра: secCode"}.
См. принт-скрин.

Прошу сообшить как в версии API 4.2.1.7 правильно создать TrendMarketDepthGenerator.
EmulErr-1.jpg 420 KB (1)
Спасибо:

Mikhail Sukhov

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


lebedevsrg Перейти

Прошу сообшить как в версии API 4.2.1.7 правильно создать TrendMarketDepthGenerator.


Код
_connector.RegisterTrades(new RandomWalkTradeGenerator(_connector.GetSecurityId(security)));
_connector.RegisterMarketDepth(new TrendMarketDepthGenerator(_connector.GetSecurityId(security)) { GenerateDepthOnEachTrade = false });
Спасибо: JaguarFX

whitebar

Фотография
Курсы
Дата: 17.02.2014
Ответить


Здравствуйте!

С помощью Гидры скачал сделки и свечи по Сбербанку с сайта Финама за 2013-й и 2014-й года.
Взял пример SampleHistoryTesting из StockSharp 4.2.2.6, в коде окна MainWindow.xaml.cs поменял инструмент с RIZ2@FORTS на SBER@EQBR.

Поменял даты начала и окончания тестирования на соответствующие загруженной истории.
Запустил тестирование на тиках, нет не одной сделки.
Такое впечатление, что HistoryEmulationTrader вообще не видит историю.

И еще один момент.
Когда Гидра показывает мне список загруженных сделок за дату, направление сделок (Buy/Sell) пустое.
Это нормально, особенность Гидры, изменения на стороне Финама?

Кто нибудь сталкивался с подобным?
Подскажите, пожалуйста, в какую сторону копать.

Спасибо!
Спасибо:

whitebar

Фотография
Курсы
Дата: 20.02.2014
Ответить


Здравствуйте!
Предыдущий вопрос по историческому тестированию снимается.
Скачал с сайта версию 4.2.2.15, все заработало.

Спасибо:

Николай

Фотография
Курсы
Дата: 11.03.2014
Ответить


Ребята, верните доступ к курсам.


Не одно видео не отображается не из S#, не из C#.

Спасибо:

Mikhail Sukhov

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


Спасибо:


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

loading
clippy