GithubHelp home page GithubHelp logo

meechew / nostalgiaforinfinity Goto Github PK

View Code? Open in Web Editor NEW

This project forked from iterativv/nostalgiaforinfinity

0.0 0.0 0.0 132.12 MB

Trading strategy for the Freqtrade crypto bot

License: GNU General Public License v3.0

Python 100.00%

nostalgiaforinfinity's Introduction

NostalgiaForInfinity

Trading strategy for the Freqtrade crypto bot

Clone The Repository

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.

Newer versions of Git

git clone --recurse-submodules https://github.com/iterativv/NostalgiaForInfinity.git checkout-path

Older versions of Git

git clone --recursive https://github.com/iterativv/NostalgiaForInfinity.git checkout-path

Existing Checkouts

git submodule update --remote --recursive

Change strategy

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.

BackTest locally

Install Docker Compose.

Run the backtesting command:

docker-compose run --rm backtesting

Test locally

Install Docker Compose.

Run the tests command:

docker-compose run --rm tests

Configure run

If you want to change --max-open-trades or --stake-amount or --timerange change the .env file.

Update pairs or timeframe

From the NostalgiaForInfinityData repository

git submodule update --remote --checkout

Locally

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.

Updating Pairs or Timeframe - Long Term

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.

Hyperopt values to raw values

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

Command reference

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

Limitation

The codemod doesn't currently replace HO values in more complex data structures such as dict or list. E.g.

If we have HO values that are structured as follows:

buy_protection_params = {
            "enable"                    : CategoricalParameter([True, False], default=True, space='buy', optimize=False, load=True),
            "ema_fast"                  : CategoricalParameter([True, False], default=False, space='buy', optimize=False, load=True),
            ...
}

Then, the codemod would replace only the HO values with raw values, and the references will not get replaced. This is due to freqtrade not being available to pick up HO parameters inside dict, list or other similar data structures.

nostalgiaforinfinity's People

Contributors

iterativv avatar s0undt3ch avatar anasyusef avatar eser1805 avatar billgatesiii avatar rylos avatar potpot59 avatar nakapola avatar potens1 avatar ughuuu avatar lobap avatar theforgotten69 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.