Skip to content

freqtrade

andyceo edited this page Jul 12, 2023 · 6 revisions

Freqtrade

Эта страница посвящена платформе Freqtrade - роботе, торгующем криптовалютой на биржах.

Установка

См. Docker quick start

В этом руководстве предполагается, что будут настроены следуюшие алиасы:

  • dcr: короткая запись sudo docker-compose run
  • ft: короткая запись dcr --rm freqtrade
  • fp: короткая запись dcr --rm freqtrade-plot

А также будет добавлена следующая запись в docker-compose.yml для упрощения построения графиков и работы алиаса fp:

freqtrade-plot:
 image: freqtradeorg/freqtrade:develop_plot
 container_name: freqtrade-plot
 volumes:
   - "./user_data:/freqtrade/user_data"
 command: list-strategies

Вся работа будет вестись в терминале из папки, в которой лежит файл docker-compose.yml.

Настройки

Порядок наследования опций конфигурации от низших к высшему: strategy -> files -> env -> cli

Настройки хранятся в файле config.json. Можно подключать дополнительные файлы конфигурации добавляя еще один аргумент -c/--config или прямо в основном файле config.json:

  "add_config_files": [
    "config-private.json"
  ]

Описание всех деталей и параметров конфигурации: Configure the bot

Общий алгоритм работы

  1. Создать стратегию / поправить имеющуюся:

     ft new-strategy --strategy AwesomeStrategy --template full|minimal|advanced
    
  2. Скачать данные для бектестинга:

     ft download-data --exchange binance -t 1d 12h 8h 6h 4h 2h 1h 30m 15m 5m 3m 1m
    
  3. Запустить бектестинг:

     ft backtesting --datadir user_data/data/binance --export trades --stake-amount 100 --strategy <STRATEGY> --timeframe 1d
    
    • Опционально. Посмотреть получившийся результат на графике для конкретной пары, используя настройки графика в стратегии (plot_config):

        fp plot-dataframe --strategy <STRATEGY> -p BTC/USDT
      
  4. Запустить оптимизацию:

     ft hyperopt --hyperopt-loss SharpeHyperOptLossDaily --spaces roi stoploss trailing --timeframe 1d --strategy <STRATEGY>
    

    или

     ft hyperopt --hyperopt-loss SharpeHyperOptLoss --spaces all --timeframe 1d --strategy <STRATEGY>
    
  5. Используя полученные данные, перейти снова к первому шагу

  6. Продолжать, пока результат не устроит и/или стратегия не перестанет улучшаться

Описание некоторых нестроек

Пример 1

{
  "dry_run": true,
  "dry_run_wallet": 1000,
  "max_open_trades": 10,
  "stake_amount": "unlimited",
  "stake_currency": "USDT",
  "tradable_balance_ratio": 0.99
}

dry_run=true означает, что бот запустится в режиме симуляции сделок, а stake_amount: unlimited означает, что бот делит весь депозит dry_run_wallet=1000 долларов (stake_currency=USDT) между max_open_trades=10 сделками, с учетом tradable_balance_ratio=0.99, то есть уделяет на каждую сделку чуть меньше 1000/10=100 долларов, чего должно быть достаточно для покрытия комиссий.

Запуск и различные команды

Все нижеследующие команды должны выполняться из папки, где лежит файл docker-compose.json и папка user_data (или папка которая была указана при создании), которые были настроены на этапе первоначальной подготовки робота. Пусть папка будет ~/ft_userfdata, тогда перед выполнением нижеследующих команд сначала нужно в нее перейти:

cd ~/ft_userdata

Создание нового конфига:

ft new-config --config user_data/config.json

Если был создан алиас alias dcmr='sudo docker-compose run --rm':

ft new-config --config user_data/config.json

В дальнейших командах предполагается, что вышеупомянутый алиас создан.

Запуск робота в соответствии со всеми произведенными в файлах настройками:

sudo docker-compose up

Скачать данные для последующего бектестинга (скачает все доступные данные младших таймфреймов Binance за последние 30 дней):

ft download-data --exchange binance -t 1d 12h 8h 6h 4h 2h 1h 30m 15m 5m 3m 1m

При повторном выполнении, данная команда добавляет данные к уже скачанным (если выполнялась не более чем через 30 дней после первого выполнения @todo попробовать другие сценарии). Можно передать только один таймфрейм: -t 1d

Вывести список загруженных данных:

ft list-data --exchange binance

Показать доступные стратегии:

dsmr freqtrade list-strategies

Протестировать стратегию BBRSINaiveStrategy на исторических данных (бэктестинг, данные сначала нужно было скачать):

ft backtesting --datadir user_data/data/binance --export trades --stake-amount 100 --strategy BBRSINaiveStrategy --timeframe 15m

Нарисовать график протестированной стратегии и конкретной пары:

ft plot-dataframe --strategy BBRSINaiveStrategy --timeframe 15m -p IOTA/USDT

Оптимизировать стратегию с помощью команды hyperopt @todo удалить???:

ft hyperopt --hyperopt-loss OnlyProfitHyperOptLoss --strategy BBRSINaiveStrategy

Для практически любой работающей стратегии (которая проходит бектестинг), можно быстро оптимизировать пространства roi, stoploss и trailing без каких-либо изменений в самой стратегии:

ft hyperopt --hyperopt-loss SharpeHyperOptLossDaily --spaces roi stoploss trailing --timeframe 4h --strategy BBRSINaiveStrategy

Ссылки

Sidebar is under construction

Clone this wiki locally