Сегодня пришло время создать первый код торговой системы.
Для того, чтобы сильно не усложнять восприятие — возьмем самую простую систему и сделаем для этой системы код для тестирования её в wealth lab.
Сделаем это поэтапно:
Этап 1: Описание стратегии:
- Строим максимумы и минимумы за определенный период (величина периода будет определена в процессе оптимизации).
- Будем открывать длинные позиции тогда, когда цена пробивает максимум, определенный на предыдущем баре.
- Выставляем первоначальный Стоп лосс на уровне максимума предыдущего бара минус процент от цены (величина процента будет определена в процессе оптимизации).
- Создаем трейлинг Стоп, который будет находится на уровне минимумов за определенный период.
Этап 2: Прорисовка блок схемы...
После того, как идея торговой системы определена, необходимо нарисовать блок схему того, как мы будем действовать.
Рисовать можно используя для этого специальные программы.
Краткий обзор программ, которые позволяют рисовать блок-схемы можно уведить по этой ссылке:
http://www.analogs.ru/group/165
Можно использовать платную программу Microsoft Visio, которая входит в состав Microsoft Office.
Но мне больше нравится
программа diaw — скачать её можно здесь. Она полностью бесплатна, поддерживает русский язык, позволяет делать очень многие удобные вещи. Вкратце почитать про программу можно, к примеру,
вот тут...
Начертим блок — схему...
Этап 3: написание кода для Wealth Lab.
Далее, используя среду разработки, о которой я уже писал в предыдущем посте — пишем код для Wealth Lab…
Схематично программа будет выглядеть следующим образом:
Рассмотрим поподробнее каждый из блоков нашей программы:
Для того, чтобы определить параметры оптимизации — нужно написать следующий код:
Теперь нужно задать те переменные, с которыми будем в дальнейшем работать:
Надеюсь, здесь всё более-менее понятно. Если есть вопросы — спрашивайте в комментах.
Дальше тем переменным, которые мы задали — нужно присвоить необходимые значения:
Следующий этап — основной. Здесь задается сама логика торговой системы…
Выглядит этот этап следующим образом:
Если будет интерес — в следующих постах более подробно остановлюсь именно на этом блоке. Чтобы не пропустить новые посты — подписывайтесь по
RSS на новые посты нашего
блога.
И на последнем этапе отрисовываем графики.
Делать это совсем не сложно. Код будет выглядеть так:
Этап 4: Оптимизация кода торговой системы и нахождение оптимальных параметров.
На этом этапе полученный код мы заносим в программу wealth lab и уже здесь определяем те параметры, которые дают нашей торговой системе наилучшие результаты.
Об этом нужно тоже говорить более подробно.
Поэтому сегодня покажу, что даже такая простая система может дать следующие результаты для акции, к примеру, северсталь:
Понятно, чтобы начинать торговать такую систему нужно учесть еще целую кучу нюансов, но общее представление о том, как создавать торговую систему и тестировать её в wealth lab, я думаю, по этой информации можно составить…
Если Вам интересна данная тема — подписывайтесь на
обновление нашего блога по RSS.
Спасибо за урок.
highest — это класс из библиотеки велса. По-сути это индикатор, который отображает для каждой свечи значение максимумов за n периодов по максимумам каждой свечи.
1.pHighPeriod = CreateParameter — это самописная функция или встроенная в WL? что значит каждый параметр?
2.Highest <имя переменной> — что такое highest — похоже на тип?
аналогично с DataSeries
3.region — предопределенное слово? что им отгораживается? можно использовать другое? ты просто везде повторяешь region для разных участков кода, что это дает?
и можно выложить куданибудь код отдельно файликом, посмотреть бы у себя.
спасибо!
2. Вероятно массив с максимумами свечек.
3. #region и #endregion для указания в Visual Studio свернуть блок с одну строчку.
1.pHighPeriod = CreateParameter — это самописная функция или встроенная в WL? что значит каждый параметр?
Это стандартная функция — применяется для того, чтобы в велсе создать параметр, который потом можно будет оптимизировать. Т.е. запись типа: CreateParameter(«HighPeriod»,20,1,100,2) означает, что создается параметр с названием HighPeriod. Значение по умолчанию у него 20, будут перебираться значения от 1 до 100 с шагом 2 (т.е. 1, 3, 5, ..., 97, 99, 101)
конструкция
#region
…
#endregion
позволяет делать код более читабельным. Если есть такая конструкция, то можно нажать на зак "-" и сжать весь код между этими двумя операторами.
Код выложу в следующем посте…
Планирую выкладывать коды всех систем, которые буду тестировать. Было бы неплохо организовать что-то типа сообщеста, когда совместно делаем код, а потом каждый проводит тестирование на определенной бумаге и результаты где-нибудь смотрим и анализируем. Бумаг ведь много — так было бы быстрее.
они уже будут в скачанной проге или их искать гдето надо эти модули
Советую Вам вот здесь посмотреть видеоуроки по C# www.intuit.ru/department/pl/incsharp3/
Плюс у меня пост был со ссылками на обучающие ресурсы: finlabportal.ru/2011/04/torgovaya-sistema-algoritm-sozdanie-i-testirovanie-mts/
а в текстовом виде код где-нить можно увидеть?
такие пробойные системы имеют большое проскальзывание кстати
опыт прогр-я был, тут просто спрашиваю про значения каждой строчки)
т.к. копать при написании придеться самому)
про совместное разр-ку и тестирование — ЗА ++