freqtrade - andyceo/documentation GitHub Wiki
Эта страница посвящена платформе Freqtrade - роботе, торгующем криптовалютой на биржах.
В этом руководстве предполагается, что будут настроены следуюшие алиасы:
-
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
-
Создать стратегию / поправить имеющуюся:
ft new-strategy --strategy AwesomeStrategy --template full|minimal|advanced -
Скачать данные для бектестинга:
ft download-data --exchange binance -t 1d 12h 8h 6h 4h 2h 1h 30m 15m 5m 3m 1m -
Запустить бектестинг:
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
-
-
Запустить оптимизацию:
ft hyperopt --hyperopt-loss SharpeHyperOptLossDaily --spaces roi stoploss trailing --timeframe 1d --strategy <STRATEGY>или
ft hyperopt --hyperopt-loss SharpeHyperOptLoss --spaces all --timeframe 1d --strategy <STRATEGY> -
Используя полученные данные, перейти снова к первому шагу
-
Продолжать, пока результат не устроит и/или стратегия не перестанет улучшаться
{
"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