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