Дмитрий Власов
Дмитрий Власов личный блог
27 апреля 2011, 00:27

Код торговой системы HighLowLong для wealth lab

Сегодня пришло время создать первый код торговой системы.
Для того, чтобы сильно не усложнять восприятие — возьмем самую простую систему и сделаем для этой системы код для тестирования её в wealth lab.
Сделаем это поэтапно:
Этап 1: Описание стратегии:
  1. Строим максимумы и минимумы за определенный период (величина периода будет определена в процессе оптимизации).
  2. Будем открывать длинные позиции тогда, когда цена пробивает максимум, определенный на предыдущем баре.
  3. Выставляем первоначальный Стоп лосс на уровне максимума предыдущего бара  минус процент от цены (величина процента будет определена в процессе оптимизации).
  4. Создаем трейлинг Стоп, который будет находится на уровне минимумов за определенный период.
Этап 2: Прорисовка блок схемы...
После того, как идея торговой системы определена, необходимо нарисовать блок схему того, как мы будем действовать.
Рисовать можно используя для этого специальные программы.

Краткий обзор программ, которые позволяют рисовать блок-схемы можно уведить по этой ссылке: http://www.analogs.ru/group/165
Можно использовать платную программу Microsoft Visio, которая входит в состав Microsoft Office.
Но мне больше нравится программа diaw — скачать её можно здесь. Она полностью бесплатна, поддерживает русский язык, позволяет делать очень многие удобные вещи. Вкратце почитать про программу можно, к примеру, вот тут...
Начертим блок — схему...

Этап 3: написание кода для Wealth Lab.
Далее, используя среду разработки, о которой я уже писал в предыдущем посте — пишем код для Wealth Lab…
Схематично программа будет выглядеть следующим образом:

Рассмотрим поподробнее каждый из блоков нашей программы:
Для того, чтобы определить параметры оптимизации — нужно написать следующий код:

Теперь нужно задать те переменные, с которыми будем в дальнейшем работать:

Надеюсь, здесь всё более-менее понятно. Если есть вопросы — спрашивайте в комментах.
Дальше тем переменным, которые мы задали — нужно присвоить необходимые значения:

Следующий этап — основной. Здесь задается сама логика торговой системы…
Выглядит этот этап следующим образом:

Если будет интерес — в следующих постах более подробно остановлюсь именно на этом блоке. Чтобы не пропустить новые посты — подписывайтесь по RSS на новые посты нашего блога.
И на последнем этапе отрисовываем графики.
Делать это совсем не сложно. Код будет выглядеть так:

Этап 4: Оптимизация кода торговой системы и нахождение оптимальных параметров.
На этом этапе полученный код мы заносим в программу wealth lab и уже здесь определяем те параметры, которые дают нашей торговой системе наилучшие результаты.
Об этом нужно тоже говорить более подробно.
Поэтому сегодня покажу, что даже такая простая система может дать следующие результаты для акции, к примеру, северсталь:

Понятно, чтобы начинать торговать такую систему нужно учесть еще целую кучу нюансов, но общее представление о том, как создавать торговую систему и тестировать её в wealth lab, я думаю, по этой информации можно составить…
Если Вам интересна данная тема — подписывайтесь на обновление нашего блога по RSS.
24 Комментария
  • genom
    27 апреля 2011, 09:15
    Совсем не плохо для системы получается, еще бы на короткие позиции просчитать эту систему и совместить через фильтр «короткие/длинные позиции», то эквити, наверно, была бы интересней и отдача больше.
    Спасибо за урок.
  • vfreeman
    27 апреля 2011, 09:36
    автору респект и +! отличный пост!
  • eexproducer
    27 апреля 2011, 09:57
    классный пост, респект)) ниже ??

    1.pHighPeriod = CreateParameter — это самописная функция или встроенная в WL? что значит каждый параметр?

    2.Highest <имя переменной> — что такое highest — похоже на тип?
    аналогично с DataSeries

    3.region — предопределенное слово? что им отгораживается? можно использовать другое? ты просто везде повторяешь region для разных участков кода, что это дает?

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

    спасибо!
    • Сергей Масюра
      27 апреля 2011, 11:18
      1. CreateParameter это часть API WealthLab. Насколько я помню, параметры означают имя, начальное значение, мин. и макс. значения и шаг.

      2. Вероятно массив с максимумами свечек.

      3. #region и #endregion для указания в Visual Studio свернуть блок с одну строчку.
  • eexproducer
    27 апреля 2011, 09:58
    using <> — что именно используем и для чего нужна каждая?
    они уже будут в скачанной проге или их искать гдето надо эти модули
  • Александр Житницкий
    27 апреля 2011, 09:59
    спасибо!
    а в текстовом виде код где-нить можно увидеть?
    такие пробойные системы имеют большое проскальзывание кстати
  • megatrader
    27 апреля 2011, 11:59
    А не лучше бы новичкам сначала показать визарды генерации скриптов? а то прям так ушат программерского кода на народ, который сложнее экселя ничего не осваивал
  • xTestero
    27 апреля 2011, 12:28
    без сырцов низачот…
  • Dr-Loss
    27 апреля 2011, 13:01
    Период оптимизации 2 недели? Вы смеётесь?
      • Dr-Loss
        27 апреля 2011, 15:01
        Год тоже очень мало, особенно для 30-ти минуток. Особенно такой год, как 2010-2011.
  • eexproducer
    27 апреля 2011, 14:42
    видеоуроки посмотрю)
    опыт прогр-я был, тут просто спрашиваю про значения каждой строчки)
    т.к. копать при написании придеться самому)

    про совместное разр-ку и тестирование — ЗА ++
  • rusalgo.com
    28 апреля 2011, 15:36
    Дим, хочу у тебя код попросить стратегии которую ты описывал в этом посте? хочу использовать её на своих курсах и в целом интересно как она работает )

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн