Skip to content

Тестирование на истории торговых стратегий, автоторговля

Notifications You must be signed in to change notification settings

ChizhovVadim/algotrading_prototype

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

algotrading_prototype

Проект демонстрирует возможную архитектуру для автоторговли. Можно брать за основу при реализации автоторговли на любых языках программирования. Прект состоит из 3 основных частей:

  • advisors: торговые советники
  • historydata: исторические бары
  • tests: тестирование торговых советников на истории
  • trader: автоторговля по заданным стратегиям

advisors

Советник рекомендует позицию в отрезке [-1;+1] от шорт "на все" до лонг "на все". Это позволяет гибко менять позицию. В качестве примера приводится простейшая стратегия (не рекомендуется для использования). Оснонвная идея строить стратегии из индикаторов как из кубиков:

    def sample(self):
        volInd = indicators.Volatility(self._stdVol, 100)
        ind = indicators.WeightSum([
            indicators.Turtle(3),
            indicators.Turtle(6),
        ])
        ind = indicators.EmaRebalance(volInd, ind, 1.0/25)
        ind = indicators.VolatilityWrapper(volInd, ind)
        ind = indicators.CandleValidator(ind)
        return ind

tests

Пример тестирования стратегии на квартальных фьючерсах Si c 2009 года. Папка ~/TradingData/minutes5 должна содержать исторические котировки квартальных фьючерсов.

$python3 -m tests --advisor sample --security Si --startyear 2009

trader

Чтобы торговать, нужно реализовать протокол Trader. Проект содержит следующие реализации этого протокола:

  • MockTrader: не выводит заявки, можно использовать для тестирования
  • QuikTrader: для торговли через терминал Quik, по аналогии с проектом QuikSharp. Для работы нужно установить Lua скрипты для Quik.
  • MultyTrader: хранит словарь Trader и позволяет вызывать любой из них. Удобен, если надо работать со многими счетами, брокерами.

При необходимости можно реализовать другие Trader (finam, alor, T).

Запуск автоторговли:

$python3 -m trader

Ссылки

About

Тестирование на истории торговых стратегий, автоторговля

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages