Блог им. orekton

Тестирование торговых систем в Mathcad

Существуют стратегии, которые трудно реализовать на скриптовых языках популярных программ: Metastock, Amibroker, Wealth-Lab. При желании такие алгоритмы можно вынести во внешние функции. Если на первом месте простота кодинга, то решением может стать использование программы Mathcad. Разберемся, как запрограммировать собственный тестер и оптимизатор торговых систем без использования «сложных» языков.

Существуют стратегии, которые трудно реализовать на скриптовых языках популярных программ: Metastock, Amibroker, Wealth-Lab. При желании такие алгоритмы можно вынести во внешние функции. Если на первом месте простота кодинга, то решением может стать использование программы Mathcad. Разберемся, как запрограммировать собственный тестер и оптимизатор торговых систем без использования «сложных» языков.
 
Результаты последних конкурсов ЛЧИ, проводимых среди частных трейдеров, показывают, что популярность и эффективность торговых роботов из года в год неуклонно растет. Ни один инвестор даже близко не покажет такой доходности, которую демонстрируют высокочастотные торговые системы. Не имея на отечественных биржах достаточного количества эмитентов, трейдеры ведут борьбу не за инсайд или фундаментальные новости, а за скорость торговых алгоритмов и качество исполнения заявок. Сегодня уже нет недостатка в инструментах для разработки торговых роботов, и форумы пестрят предложениями по автоматизации трейдинга. Под хорошую торговую идею профучастники готовы предоставлять места для выделенных серверов, льготные условия по брокерским комиссиям и услуги собственных программистов. И все потому, что путь от алгоритма на бумаге до фиксации сделок на серверах биржи гораздо длиннее, чем кажется многим начинающим трейдерам.
 
Широко популярна идея, что динамика цен на российских биржах сильно зависит от настроений на западных фондовых и товарных площадках. Но как конкретно выразить эту зависимость, как получить и синхронизировать данные, как грамотно настроить работу алгоритма по совершению сделок — об этом знает далеко не каждый трейдер. Хороший программист может ничего не знать о природе статистических и эконометрических взаимосвязей, а профессор экономики  — об особенностях ликвидности и проскальзывания заявок в различных акциях. Универсальный специалист во всех этих областях — большая редкость и лакомый кусочек даже для западных хедж-фондов. Большинство же частных трейдеров обладает лишь частью из необходимых знаний. Поэтому все чаще трейдеры кооперируются в команды, что позволяет каждому ее участнику сконцентрироваться на своих обязанностях. Не распыляя внимание на параллельные аспекты, трейдеры совместно могут добиться большего эффекта.
 
Существует множество различных способов заработать деньги на бирже и множество стратегий по их реализации. Торговля паттернов предполагает определение четкого набора условий для открытия позиций. Входы могут опираться на ценовые или неценовые факторы, а выходы очень часто совершаются по достижении конкретного ценового уровня или по истечении определенного времени. Ловля трендов или более краткосрочных свингов основана на статистических свойствах ценового ряда. Анализируя распределение колебаний, трейдер может зафиксировать переход динамики цен от фазы флета к фазе тренда. В этом случае вероятность продолжения направленного движения выше, чем вероятность разворота, и невозможно заранее предсказать момент окончания тренда. Математические алгоритмы торговли основаны, как правило, на строгих математических или вероятностных зависимостях между двумя или более активами. Это могут быть различные виды арбитражных сделок или вариации парного трейдинга. Особенностью таких стратегий является то, что в основе торговой системы лежит некая формула, определяющая силу взаимосвязи и моменты ее нарушения. Большую часть торговых стратегий можно легко запустить при помощи популярных программ для технического анализа, таких, как Metastock или Wealth-Lab. Однако возможности этих программ по исследованию ценового ряда сильно ограничены встроенными индикаторами или используемым скриптовым языком.
 
Выбор языка для финального программирования торговой системы имеет огромное значение. В конце концов именно от него будет зависеть скорость работы торгового алгоритма и ограничения на его сложность и функциональность. Но этот вопрос лежит в компетенции программиста, который будет запускать готового робота на реальный счет. А сейчас хотелось бы взглянуть на вопрос программирования с точки зрения математика, которому необходимо исследовать ценовой ряд, разработать торговый алгоритм и подготовить итоговое техническое задание для программиста. Безусловно, наиболее гибким по возможностям было бы использование чистого кодинга на языках вроде C# или C++. В этом случае будет достигнута максимальная скорость и надежность. Но на его первичное изучение, написание базовых статистических и эконометрических функций, проверку и поиск ошибок уйдет непомерно большое время. Ведь при поиске наиболее оптимального алгоритма обработки данных математику приходится перебирать и тестировать множество классических вариантов. Поэтому идеальным вариантом будет использование простого в освоении языка с широким набором математических функций. При этом в отличие от паскаля или Си в Wealth-Lab, он должен иметь продвинутый аппарат для матричных операций. При таком наборе требований выбирать приходится из двух популярных пакетов обработки данных: Mathcad и Matlab. Обладая большим списком статистических и эконометрических расширений, Matlab все же уступает Mathcad по простоте базового программирования. Встроенный в Mathcad язык не сложнее Бейсика, но позволяет очень гибко работать с матрицами и вручную реализовывать эконометрические алгоритмы практически любого уровня. В этой статье я хочу рассказать о методах обработки ценового ряда, тестирования торговых стратегий и простейшей оптимизации используемых параметров.

http://robostroy.ru/community/Article.aspx?id=312
    ★4
    2 комментария
    вода сплошная
    avatar
    спасибо!
    avatar

    теги блога orekton

    ....все тэги



    UPDONW
    Новый дизайн