How does this Website work, how are results populated?

- At the start of every month every collected strategy is backtested with using Freqtrade for the last month
  the config used is specified in the "Backtest Configuration" tab on each specific Backtest Website
  for example this Configuration for Binance Stake Currency USDT
  Strategies are backtested with --timeframe-detail 1m --enable-protections

- Also strategies are scraped online from public sources, this are added to the backtesting queue throughout the month and will
  be backtested once resources become available

- You can also upload your strategy manually here once uploaded the file will be manually checked
  and if accepted will be added to the backtesting queue.

- Strategies wich have set can_short = True will be tested in the the Futures Market, if that is not the case the strategy
will be tested in Spot Markets.

  Supported Timeframes:
  Supported (non default) Modules:
  scipy,pykalman,finta

  Not Supported:
  Multiclass Files (IStrategy) are currently not fully supported, only the first class in the file is being backtested.
  Only Read access to the file system no writing of files to any directory.

What configs are used to backtest?

  Depending on market/stake and DCA the following Configurations are used:

How is the Ranking Page Populated?

The ranking page displays median values derived from backtests conducted on the selected Exchange/Stake.

It exclusively includes strategies that meet the following criteria:

  • No Tight Trailing stops.

  • No Lookahead Bias.

  • Feature a sufficient number of backtests with an ample number of trades to yield meaningful median values.

The default sorting is determined by a universal score known as the "Ninja score," which is calculated using the following weightings:

        
stat_weights = {
    "buys": 9,
    "avgprof": 26,
    "totprofp": 26,
    "winp": 24,
    "ddp": -25,
    "stoploss": 7,
    "sharpe": 7,
    "sortino": 7,
    "calmar": 7,
    "expectancy": 8,
    "profit_factor": 9,
    "cagr": 10,
    "rejected_signals": -25,
    "backtest_win_percentage": 10
}
        
    
Recursive Analysis

Freqtrade´s Recursive Analysis is used on the strategies to detect recursive issues.

Recursive Analysis

Recursive Analysis did not detect any issues.

Quantstats

Quantstats will be generated once on start of backtesting for the last year, if it is possible to generate them.

A pre-requirement is the strategy needs to be in the ranking section of the page. Could be subject to change to limit it further,
if this takes to much time.

Dryruns

You can add your own dryruns to track to the page, instructions how this works are on Github.

 Failed Backtests / Why is my Strategy not being tested?

Reasons for your strategy failing backtest:

- Only minor changes which lead to a duplicate result of another strategy which allready exist in the result page
Search Results for a similar strategy with same name, your strategy is allready being actively backtested and therefore is not added.

- Your strategy contains python errors, and it is unable to backtest it.

- Your strategy has imports of other modules which are needed which are not imported on the backtesting system

- If your strategy failed backtesting and did throw a python exception, you can check the "Traceback" Tab. which will have more information.

1 - Failed Parsing, no Result

Could be due to a python error / missing import / backtesting took to long so it was aborted.

2 - Duplicate

Result is the same with other backtested Strategy

3 - Python Error

Strategy did throw an exception.
Additional to that if the strategy throws a exception it will be returned as failure reason.

 Stalled Backtests

Strategies marked with "Stalled" are currently paused from backtesting.

Strategies which perform very badly

1 - (-0.30 avg Negative Profit + Total Profit negative over 6 month on all Exchanges)

2 - >=12 Backtests , >=90% of them negative!

3 - Lookahead Analysis detected Bias!

4 - No Trades on multiple backtests!

will be marked as stalled and will not be backtested anymore.

(P) Missing Links / Where do i find strategy X/Y/Z ?
Link

Not all strategies are provided with a link to download, strategies which do have a link can be downloaded by visiting the corresponding
Github page or clicking "Open Strategy", there are no checks in place if this links are up to date (they could be removed)

Some strategies can be found by searching github or viewed by clicking "Open Strategy" even if they do not have a link here. Strategies marked
with "P" in Flags do not have a link and most of them are indeed private, so there is no link.

I dislike X/Y/Z , this needs to be improved, i have a suggestion ?

I myself try to improve things in my freetime, be sure there will be lot of issues, ill do my best :)

If you want to give feedback you can do so in the official discord freqtrade in my created thread, any help is appreciated
Discord Thread found in Strategies -> strategy-results -> Threads -> Freqtrade Backtesting Project
i tend to linger there!

(L) Lookahead - Common Mistakes - Lookahead Bias

(LEGACY) Regex checks for lookahead which are currently in place (this can cause wrong positives):

1 - IAT

".iat[-1]" is used in the code, it should not be used in backtesting

2 - Future Shift

Using shift and moving forward in candles by using ".shift(-1)" on the dataframe and similar.

3 - Whole Dataframe

Using .min() .max() .mean() on the whole Dataframe without a rolling window.

4 - TA Period 1

Using signal Period of 1 with talib, see Explanation here !

5 - Direct Match Regex

Matching common use of lookahead with a specific regex.

6 - Manual Blacklist

Blacklisted Hash due to known lookahead.

7 - Freqtrade Lookahead Analysis (Bias Check)

Using freqtrade's included Lookahead Analysis, built by  Hippo Image Hippocritical on discord!
Lookahead Analysis has not run yet on this strategy, or there were not enough trades in the checked period
(atleast 20 Trades needed).

Lookahead Analysis did not have enough trades or could not find a result verification stopped.

Lookahead Analysis has detected that this strategy is biased.

Lookahead Analysis has not detected any bias.

https://www.freqtrade.io/en/stable/lookahead-analysis/

(T) Tight Trailing Stoploss

Tight trailing stops can increase your profit artificially in backtesting
Currently this is defined as trailing_stop_positive_offset <= 0.05 & trailing_stop_positive <= 0.0025.

Explanation here !

(03/16/2024) Marking Tight Trailing Stop now also if only trailing_stop_positive <= 0.0025
 Referral Link's

If you like to support the website please consider using one of these referral links:

Binance.com (Exchange)
10% commission on trading fees for you and for me

Kucoin.com (Exchange)

Vultr.com (VPS Provider)
I am using Vultr on Tokyo for better latency to Binance Tokyo.
(You get 100$ free credit to test out Vultr on Signup, i get 35$)


   Freqtrade Strategy Ninja - Powered by Freqtrade