OCTOBOT INTEGRATION
Send your OctoBot backtest results to Kiploks for robustness and risk analysis. Read-only: the script only reads exported files from your OctoBot profile.
What you get
- Robustness and risk analysis from your backtest exports
- One or multiple runs: point to a single run folder or parent backtesting folder
- Analyze links in Kiploks - no research_id needed
Repository
Clone or download the script from kiploks/kiploks-octobot and place the kiploks-octobot folder in your OctoBot project root.
Prerequisites
- OctoBot: Run a backtest from the OctoBot UI. Export structure: profile folder contains
backtesting/withmetadata.jsonandbacktesting_1/,backtesting_2/, … - Python 3.9+: No extra packages required (stdlib only).
Quick Start
Add the Kiploks OctoBot script (kiploks-octobot folder with run.py and kiploks.json) to your OctoBot project. Copy the example config and edit kiploks.json.
Config
Run (from OctoBot root, same idea as Freqtrade – via bash)
Or run with python kiploks-octobot/run.py from the OctoBot root. With a valid api_token, the script POSTs to Kiploks and prints the analyze URL(s). You can also see results on the Data page when logged in.
Windows
From the OctoBot root (e.g. C:\octobot), use Command Prompt or PowerShell. No bash script - run Python directly.
Configuration
Required
api_token- API key from Kiploks. Get it in Header - API Keys. Required for upload.backtesting_path- Path to a singlebacktesting_Nfolder or to thebacktesting/parent. Relative to OctoBot root (the directory from which you run the script). Absolute paths and~are supported.
Optional
api_url- Kiploks API base (defaulthttps://kiploks.com).top_n- When path is the parent folder, number of runs to use by date (latest N). Default 3.wfaPeriods,wfaISSize,wfaOOSSize- WFA window settings.skip_already_uploaded- Skip POST when this run set is already inuploaded.json(default true).
Known limitations
- Parameter Sensitivity: Empty. OctoBot does not export hyperopt/optimizer results; we only have one parameter set per run.
- Walk-Forward: With one run we send a single period. Full WFA requires several runs (different windows) when pointing to the parent folder with
metadata.json. - Benchmark: Kiploks typically uses BTCUSDT. If your backtest is BTC/USDC we send BTCUSDC; a small symbol mismatch is possible.
- Fee: Average over all fills in
all_trades. GridTradingMode round-trips use FIFO; with partial fills, net_return may be approximate.
API errors
- 401
Missing Authorization header (Bearer API key required)Invalid or expired API token– generate a new key in Kiploks → API Keys and updateapi_token.
- 403
results must be a non-empty array– ensurebacktesting_pathpoints to valid run data.Maximum number of stored tests reached– delete some tests on the Data page, then retry.
- 400
Result at index N is missing required data for analysis– checkrun_data.jsonand exchange folder.Benchmark is required; payload must have date range and timeframe– backtest must have start/end and timeframe in run_data.
- 429
Only one analyze request per minute is allowed– wait and retry.
- 502
Failed to submit results– retry later; check Kiploks status.
Other
backtesting_path not found – run the script from the OctoBot root so relative paths resolve. Use ./kiploks-octobot/run.sh from that root.