Trading strategy for the Freqtrade crypto bot
If you plan to only clone the repository to use the strategy, a regular git clone
will do.
However, if you plan on running additional strategies or run the test suite, you need to clone the repository and it's submodules.
git clone --recurse-submodules https://github.com/iterativv/NostalgiaForInfinity.git checkout-path
git clone --recursive https://github.com/iterativv/NostalgiaForInfinity.git checkout-path
git submodule update --remote --recursive
Add strategies to the user_data/strategies folder and also in the docker-compose.yml file at strategy-list
add your strategy in the list.
Install Docker Compose.
Run the backtesting command:
docker-compose run --rm backtesting
Install Docker Compose.
Run the tests command:
docker-compose run --rm tests
If you want to change --max-open-trades
or --stake-amount
or --timerange
change the .env file.
From the NostalgiaForInfinityData repository
git submodule update --remote --checkout
If you want to update pairs user_data/data/pairlists.json from exchange:pair_whitelist
or timeframe from docker-compose.yml from download-data:timerange
, run the following after you changed.
docker-compose run --rm download-data
Do note that this will update the data locally on the git submodule. But it should still work.
To update either the pair list or the downloaded data time frames, please check NostalgiaForInfinityData and proceed from there.
Once the necessary changes are done in NostalgiaForInfinityData run the following:
git submodule update --remote --merge
Now commit the changes and push.
The strategy uses hyperopt values; this has some compute overhead and thus impact runtime performance with the number of parameters available in the strategy. There is a script available to transform all hyperopt values into raw values. E.g. The following line of code:
buy_dip_threshold_10_1 = DecimalParameter(0.001, 0.05, default=0.015, space='buy', decimals=3, optimize=False, load=True)
Would be transformed to:
buy_dip_threshold_10_1 = 0.015
usage: ho_to_raw_codemod.py [-h] [--strategy STRATEGY] [--output OUTPUT_PATH]
optional arguments:
-h, --help show this help message and exit
--strategy STRATEGY, -s STRATEGY
Name of the strategy
--output OUTPUT_PATH, -o OUTPUT_PATH
Output of transformed file
The script has a simple CLI, where it accepts two arguments, the strategy name, and the output file, which is the path of the transformed file. E.g.
python codemods/ho_to_raw_codemod.py --strategy NostalgiaForInfinityNext --output NostalgiaForInfinityNext_Raw.py