Stanislav Gribanov
Stanislav Gribanov личный блог
06 февраля 2024, 12:14

Перевод книги "Хакер фондового рынка". Трехчасовой курс программирования

Перевод книги "Хакер фондового рынка". Трехчасовой курс программирования
Ранее:
1. Предисловие.
2. Торговля деньгами.
3. Биржевая цена.
4. Золотоискатели и ломбарды.
5. Тики, бары, свечи.
6. Как работают торговые системы?
7. Технический анализ — смысл и бессмыслица.

2  Трехчасовой курс программирования

Чтобы взломать фондовый рынок, вам нужны две вещи. Во-первых, программное обеспечение для изучения, тестирования и реализации торговых методов, а во-вторых, компьютерный язык для определения ваших стратегий. Однако из сотен существующих торговых платформ и языков очень немногие подходят для взлома фондового рынка. Визуальные «наборы для построения стратегий» или программы электронных таблиц можно использовать только для очень простых систем, с которыми невозможно получить прибыль. Для разработки реальной стратегии невозможно обойтись без программирования.

Это правда, что язык программирования изучается гораздо быстрее, чем иностранный язык, потому что вам не нужно зубрить словарный запас. Если вы все же хотите избежать этого, вы можете читать книгу вообще без программирования. Тогда вы можете просто пропустить курс программирования и части с кодом. Тем не менее, в современном обществе каждый должен иметь возможность сказать компьютеру, что ему делать. Поэтому профессия программиста, вероятно, в какой-то момент вымрет, как и профессия писца в более ранних цивилизациях. Потому что программирование — для всех. Кроме того, это весело. Это даже может вызвать привыкание. И даже если вы никогда в жизни не будете заниматься торговлей, вы всегда сможете использовать этот навык — будь то разработка интерактивного веб-сайта, макросы Word для экономии времени или упоминание о нем в письме при приеме на работу.

К сожалению, для торговых систем нельзя выбирать язык программирования с самым красивым или простым синтаксисом, потому что он часто является и самым медленным и не требует трудоемких тестов и оптимизаций. Большинство алгоритмических торговых систем основаны на языке C или его разновидностях. C также используется в контексте этой книги. C и родственный ему C++ являются самыми быстрыми компьютерными языками. Они моделируют торговую стратегию примерно в четыре раза быстрее, чем вариант C#, и почти в 30 раз быстрее, чем популярный Python. Позже вы увидите, что скорость играет важную роль в разработке стратегии.

Наш инструмент для взлома, который тестирует и выполняет стратегии, написанные на языке C, называется Zorro. Это, в некотором роде, швейцарский армейский нож в трейдинге. С одной стороны, его можно использовать для всевозможного анализа кривых цен, поиска неэффективности и построения графиков (все графики в книге были построены с его помощью). Во-вторых, его можно использовать для разработки, оптимизации, тестирования и, наконец, автоматизации торговых систем. И в-третьих, я знаю, как им пользоваться, потому что я написал для него учебник. Zorro можно бесплатно скачать здесь: zorro-project.com/download.php. Сделайте это, потому что он вам сразу же понадобится.

Перевод книги "Хакер фондового рынка". Трехчасовой курс программирования

Рис. 13  Zorro

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

Интерфейс разделен на четыре раздела. Первый, Broker, обеспечивает прямое подключение для автоматической торговли: Имя пользователя, пароль, имя брокера и счет (если у вас их несколько) вводятся в соответствующие поля. Поэтому, когда вы открываете демо-счет или даже реальный счет у брокера, вы вводите туда данные, которые получаете от брокера. Тогда вы теоретически сможете сразу же начать торговать. В окне «Server» вы можете увидеть статус сервера брокера. Маленький квадратик рядом с ним горит зеленым цветом, если есть соединение с брокером, и красным, если соединение прервано, например, в случае сбоя Интернета. Затем Zorro автоматически восстанавливает соединение.

Во втором разделе, «Strategy», определены действия в Zorro. С помощью окна прокрутки сценариев можно выбрать один из сценариев, которые находятся в папке Strategy Zorro. Сценарии — это текстовые файлы с компьютерными инструкциями на языке программирования lite-C. С помощью поля рядом с ним можно назначить актив сценарию для быстрого тестирования. Ползунок ниже определяет период бара в минутах. Еще трем ползункам скрипт может назначить определенные функции (на иллюстрации «Margin», «Risk» и «Panic»).

Кнопки ниже заставляют Zorro что-то делать. [Help] открывает файл справки, [Edit] текстовый редактор для редактирования текущего выбранного сценария. [Test] выполняет сценарий. [Train] запускает его несколько тысяч раз, чтобы найти оптимальные значения параметров. [Trade] подключается к брокеру и начинает торговую сессию со стратегией, определенной в скрипте. [Result] выдает промежуточные или окончательные результаты в виде графиков и файлов отчетов.

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

Совет: Лучше всего устанавливать Zorro не в папку «Приложения», а в папку пользователя или в папку «Документы». Тогда вам не придется иметь дело с Windows User Account Control (UAC), если вы захотите изменить что-то в файлах Zorro. После установки вы можете играть с Zorro. С помощью поля прокрутки выберите сценарий Мандельброта и нажмите [Тест]. Затем вы должны увидеть что-то вроде этого:
Перевод книги "Хакер фондового рынка". Трехчасовой курс программирования

Рис. 14  Mandelbrot-Skript

Это не имеет никакого отношения к торговле на фондовом рынке, но показывает, что с помощью Zorro можно делать самые разные вещи. Это зависит от того, что написано в сценарии.

Сценарий (также называемый программой, если он длиннее и сложнее) состоит из списка инструкций, которые указывают компьютеру, что делать, при каких обстоятельствах и в каком порядке. Инструкции формулируются на упрощенном языке, называемом языком программирования. Теоретически, могут быть и другие способы определения торговой системы, например, через список комбинаций фильтров и индикаторов или через формулы в программе электронных таблиц. А некоторые торговые платформы предлагают и это. Но это ограничивает торговую систему простыми, заранее определенными правилами — и это не может быть использовано для создания прибыльной стратегии для сегодняшнего рынка. Все известные успешные стратегии основаны на сценариях или программах.

Недостаток скрипта очевиден: вам придется изучать язык программирования. Zorro's lite-C — это «облегченная» версия языка C, которая «прячет» все сложные элементы языка и тем самым значительно упрощает знакомство с написанием скриптов. Вы можете освоить основные принципы примерно за три дня.

На форумах трейдеров скрипт часто называют «советником». Это объясняется языком широко распространенного торгового терминала — «MetaTrader», с помощью которого можно также писать скрипты для торговых систем. Язык программирования, о котором идет речь, «MQL4» или «MQL5», также основан на языке C, но имеет другой набор команд, который гораздо сложнее в обработке. В «MetaTrader» также отсутствуют важные функции для тестирования и анализа; поэтому он, к сожалению, плохо подходит для взлома. Однако его можно контролировать с помощью Zorro и таким образом косвенно использовать для прибыльной торговли.

Содержимое сценария, называемое кодом, представляет собой обычный текст и может быть создано с помощью любого текстового редактора. Это выглядит примерно так: 

function run()

{

  vars Close = series(priceClose());

  vars SMA100 = series(SMA(Close,100));

  vars SMA30 = series(SMA(Close,30));

  if(crossOver(SMA30,SMA100))

     enterLong();

  if(crossOver(SMA100,SMA30))

     enterShort();

}

Это примитивная система следования за трендом. Он использует два технических индикатора с упомянутой выше скользящей средней, SMA. Один формируется из последних 100 цен закрытия, другой — из последних 30 цен закрытия. Стратегия открывает длинную позицию, когда более короткая пересекает более длинную среднюю, и короткую позицию, когда более длинная пересекает более короткую. О том, что означают эти странные сокращения, скобки и точки с запятой, и пойдет речь в следующем кратком курсе программирования. Если вы уже знакомы с языком C или lite-C, вы можете пропустить эту часть.

Продолжение следует...

2 Комментария
  • Леха Майтрейд
    06 февраля 2024, 22:44
    Он там на фото что… дрочит что ли? Или это только мне показалось?)
    • Сергей Хорошавин
      07 февраля 2024, 11:27
      Леха «my-trade», дык все по классике, как в фильме «Волк с Уолл-Стрит»…

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

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