PirateTrade
PirateTrade Блог компании The Trader | Pirate Trade
20 ноября 2012, 12:01

Этапы разработки торгового робота

Этапы разработки торгового робота.
 
 
В этой статье мы осветим тему, о которой редко пишут в интернете – этапы разработки торгового робота.
Конечно, в конечном итоге у каждый проходит свой путь при разработке, но есть ряд проблем, с которыми неизбежно сталкивается алготрейдер в начале своего пути.
 
Этап I. Идея.
Для начала необходимо решить за счёт чего (или кого) вы собираетесь получать доход на фондовой бирже.
Иными словами, на первом этапе необходимо осознать свою торговую идею или идеи (если их несколько).
  
Этап II. Предварительные тесты
Если есть чёткая торговая идея, проще всего проверить её в программах позволяющих осуществлять тестирование на исторических данных.
В качестве примера можно привести WealthLabMetastockTsLabStock#. Наши первые опыты были связаны с использованием WealthLab.
Чтобы разобраться с базоывми функциями необходимо потратить несколько дней свободного времени. Дальше всё проще простого — либо плюс, либо минус.
Если получилось построить плавную кривую доходности, можно двигаться дальше.
Правда существует одно ограничение. При больших массивах тестовых данных подобный софт падает намертво, поэтому перед тестами следует запастись терпением.
 
 
Этап III. Оценка рисков
Перед началом серьёзной разработки торгового робота, стоит остановиться и попытаться оценить возможные риски.
Риски условно можно разбить на две группы:
— торговые;
— инфраструктурные.
Торговые риски — это всё то, что вы забудете учесть при разработке стратегии.
Другими словами, это события, которые будут приносить ненормальные серии из убыточных трейдов.
Инфрструктурные риски — это риски отключения электричества, потери связи между роботом и биржей либо вовсе отключение биржи.
К счастью, инфраструктурные риски можно свести к минимуму, используя более надёжные сервера для обработки и  арендуя быстрые каналы связи.
 
Этап IV. Ядро
Для автоматизированной торговли на бирже трейдеру необходимо торговое ядро, позволяющее реализовывать торговые стратегии.
Простейший скелет торгового ядра имеет несколько базовых функций:
— получение данных;
— представление данных в удобной для анализа форме;
— создание стратегий;
— настройка стратегий;
— запуск стратегий;
— управление заявками;
— расчёт позиции.
Как правило, функции управления заявками и расчёта позиции тесно переплетены между собой, т.к. для корректной работы ядра
необходимо обеспечить жёсткую синхронизацию поля «остаток» в заявке и текущей чистой позиции.
Существует множество торговых движков, но для профессиональной торговли принято разрабатывать собственные торговые решения.
 
Этап V. Разработка стратегии
После выбора или разработки ядра, следует приступить к реализации стратегии. Прежде всего нужно определиться с параметрами торговой стратегии.
Следует уделить особое внимание таким вопросам как:
— расписание торговли (когда стратегия может открывать и закрывать позиции);
— настройки стратегии (чем меньше параметров, тем лучше);
После выбора параметров и расписания, следует описать правила открытия и закрытия позиций.
Как правило открытие лонга и шорта описываются разработчиками отдельно, поэтому следует проверять сигналы для
купли и продажи на симметричность.
 
Этап VI. Тестирование
После разработки стратегии, можно запускать её в бой на реальных или тестовых торгах. Следует начинать тестирование с 1 лота. 
На этом этапе следует убедиться, что в любых состояниях рынка ваша стратегия работает именно так, как вы ожидали, не совершая лишних транзакций.
Следует также позаботиться о логгировании сигналов торговой системы и изменений состояния заявок в ядре.
Если что-то не так, то следует вернуться на III или IV этап.
 
Этап VII. Анализ результатов
На этом этапе нам пришлось заняться разработкой журнала сделок трейдера.
Журнал сделок должен группировать сделки в закрытые позиции (трейды) и осуществлять построение аналитических таблиц и графиков на основе полученных результатов.
Кроме этого, следует регулярно вести и анализировать дневник трейдера
После получения стабильных результатов на этапе тестирования, необходимо подобрать параметры для стратегии под текущие рыночные условия.
По мере улучшения результатов, можно попробовать переносить алгоритмы на другие тикеры и запускать из с другими параметрами.

Оригинал тут
10 Комментариев
  • Nolan
    20 ноября 2012, 13:25
    Спасибо. Позновательно.
    А какая прога для новичка для тестирования лучше: WealthLab, Metastock, TsLab, Stock#?
    Что можете посоветовать?
    • pashkins
      20 ноября 2012, 14:58
      Nolan, я выбрал tslab. Новичок.
  • Olenevod
    20 ноября 2012, 15:46
    если совсем новичок — посмотри трейдматик
    там 2 недели бесплатно
  • Dr Volk
    20 ноября 2012, 16:26
    у Финам-а TSLAB месяц бесплатно, автоматом открывают тестовый счёт.
  • Nolan
    20 ноября 2012, 17:13
    Спасибо всем за советы!
    Я больше склоняюсь к TsLab, так как она русскоязычная и бесплатная.
  • Jetfad
    25 ноября 2012, 19:36
    Подскажите пожалуйстаю. Почему в WealthLab 4 при тестировании стратегий с помощью блок схем ( ChartScript Wizard) на графике не отображаются стрелочки направления сделок?
  • Алексей (Bacardi)
    01 декабря 2012, 18:12
    какой коэффициент кредитования ставить на фьючерсе на индекс ртс, когда скачиваешь данные с финама?
      • Алексей (Bacardi)
        02 декабря 2012, 07:34
        PirateTrade, с сайта финама текстовый файл фьючерса на индекс ртс скачал и в тслабе ничего с ним не делаю, там значения в окошке (вкладка инструменты, менеджер провайдерных данных), (где валюта, шаг цены) надо вписать коэффициент кредитования.какое значение у него будет.

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

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