FREQTRADE INTEGRATION

Send Freqtrade backtest and Walk-Forward Analysis (WFA) results to Kiploks. No patches, no plugins - run your backtests as usual, then run the script to upload.

What you get

  • Robustness analysis from your latest backtests
  • WFA (Walk-Forward) generated automatically or from existing results
  • Analyze links in Kiploks - no research_id needed

Get from GitHub

Clone the repo, copy kiploks-freqtrade into your Freqtrade root folder ft_userdata, remove .git from the copy if you do not need version control there, then set execute permission on the scripts (Mac/Linux only).

Mac

Terminal
kiploks: /ft_userdata:git clone https://github.com/kiploks/kiploks-freqtrade.git
kiploks: /ft_userdata:rm -rf kiploks-freqtrade/.git
kiploks: /ft_userdata:chmod +x kiploks-freqtrade/run-in-docker.sh
kiploks: /ft_userdata:./kiploks-freqtrade/run-in-docker.sh
./kiploks-freqtrade/run-in-docker.sh
Kiploks Integration Bridge v1.0.0
-----------------------------------------
Loading...
Scanning backtest results...
Running walk-forward analysis. Result 1/1 Window 1/6 done
Running walk-forward analysis. Result 1/1 Window 2/6 done
Running walk-forward analysis... Result 1/1 Window 3/6 done
Running walk-forward analysis... Result 1/1 Window 4/6 done
Running walk-forward analysis. Result 1/1 Window 5/6 done
Running walk-forward analysis.. Result 1/1 Window 6/6 done
[OK]Backtest loaded: BTCUSDT | 1h | 2024-01-01 -> 2026-02-08
Trades: 215 | Return: -19.0% | DD: -25.0%
WinRate: 88.4% | PF: 0.76 | Sharpe: -0.42
[OK]Equity curve: reconstructed (763 pts)
[OK]Walk-Forward detected: 6 windows (IS 90d / OOS 30d)
W1 IS -1.0% ( 25t) | OOS -4.0% ( 10t)
W2 IS +1.8% ( 29t) | OOS +2.3% ( 7t)
W3 IS +0.9% ( 21t) | OOS +2.9% ( 8t)
W4 IS -4.7% ( 29t) | OOS -4.0% ( 10t)
W5 IS +1.2% ( 27t) | OOS -4.9% ( 8t)
W6 IS -8.2% ( 20t) | OOS -4.0% ( 10t)
[OK]Data Quality (raw facts)
Candles: 18,457 / 18,457
Gaps: 0 (max 0 bars) | Flat bars: 0.00%
ADVANCED ANALYSIS (Kiploks Cloud)
-----------------------------------------
DQG verdict, WFE, retention/decay,
PSI, overfitting probability,
final deployment grade
Open the analyze link(s) below to see full analysis.
https://kiploks.com/analyze/[id]

Windows

Command Prompt
C:\ft_userdata>git clone https://github.com/kiploks/kiploks-freqtrade.git
C:\ft_userdata>rmdir /s /q kiploks-freqtrade\.git
C:\ft_userdata>kiploks-freqtrade\run-in-docker.bat

Folder structure:

Explorer
ft_userdata
user_data
kiploks-freqtrade

Configuration

Required

  • api_url - Kiploks base URL (e.g. kiploks.com).
  • api_token - API key. Get it in Kiploks: Header - API Keys; generate and copy. Without it, upload is skipped.

Optional

  • top_n - Number of results by date (default 3).
  • wfaPeriods, wfaISSize, wfaOOSSize - WFA window settings.
  • skip_already_uploaded - Skip results in uploaded.json (default true).

How to run

Docker

From project root (directory with docker-compose.yml, user_data/, kiploks-freqtrade/):

  • Linux / macOS: ./kiploks-freqtrade/run-in-docker.sh or bash kiploks-freqtrade/run-in-docker.sh
  • Windows (cmd): kiploks-freqtrade\run-in-docker.bat

To run the script inside the container: ./kiploks-freqtrade/run-in-docker.sh (Linux/macOS) or kiploks-freqtrade\run-in-docker.bat (Windows).

After upload, the script prints analyze links (e.g. kiploks.com/analyze/xxx). You can also see all results on the Data page when logged in.

Troubleshooting

API errors (POST /api/integration/results) – as returned by the server

  • 401
    • Missing Authorization header (Bearer API key required) (Next.js when no header)
    • Missing or invalid Authorization header (Bearer API key required) (Nest when no Bearer token)
    • Invalid or expired API token (Nest when token not found)
  • 403
    • results must be a non-empty array
    • Maximum number of stored tests reached. Delete some tests to save new ones.
  • 400
    • Result at index N is missing required data for analysis. Do not send until all validations pass. (validation can fail e.g. Payload must be an object; Missing backtestResult or backtest; backtestResult.config/results required; Symbol missing or invalid; Missing walkForwardAnalysis or .periods; Period N: validationReturn must be a number; parameters.strategy must be a string)
    • Benchmark is required for integration. Payload must have date range and timeframe (e.g. backtestResult.config.startDate/endDate and config.timeframe).
    • Cannot compute benchmark: market data for this timeframe and date range is not available. Try a different period or timeframe.
    • Benchmark computation failed for this result. Check payload has valid backtest data and date range.
  • 429
    • Only one analyze request per minute is allowed.
  • 502
    • Failed to submit results (Next.js when proxy request to Nest fails)

Other

Script exits with "Run this script from the Freqtrade environment" – run it via Docker (run-in-docker.sh or run-in-docker.bat on Windows) as in How to run above.

Freqtrade integration - Kiploks Robustness Engine