feat: add local backtest config and AGENTS.md notes #3

Merged
pa77y merged 2 commits from chore/local-backtest-config-and-agent-notes into main 2026-10-19 04:44:03 -05:00
Collaborator

What this adds

Two untracked files that had accumulated in the workspace. Neither is code; both remove setup friction.

configs/backtest_local_config.json

A self-contained config for running backtests locally. It deliberately omits the telegram and api_server blocks that configs/backtest_config.json carries, because freqtrade 2026.x rejects a telegram block that is missing token/chat_id — omitting the block is cleaner than stubbing it.

Spot-only, Kraken, feather data from data/, five-pair static whitelist (SOL/SUI/XMR/DOGE/PEPE USD) chosen to match the pairs whose 5m data actually covers 2026.

AGENTS.md

Agent memory for the repo. It leads with a New conversation setup section, because every fresh container is missing git-lfs and git commands fail until it is installed:

sudo apt-get update && sudo apt-get install -y git-lfs

The apt-get update is required. The image ships a stale apt index, so a bare install fails with "Unable to locate package git-lfs" and looks like the package is unavailable when it is only out of date. Debian trixie provides git-lfs 3.6.1.

Other notes captured:

  • Only /workspace is a shared mount. The container root is rebuilt per conversation, so apt packages and ~/* dotfiles do not survive. The venv, pulled LFS data, and .git/ do.
  • git-lfs is reinstalled each session. A previous session placed a binary at /workspace/bin/git-lfs with hook and alias.lfs patches; that approach is gone, and the file says so and why.
  • ChipsAndDips imports optuna at module level, and 5m data coverage differs per pair.

Security check

No credentials are committed. Verified on the diff itself:

  • exchange.key and exchange.secret are empty strings — backtesting makes no authenticated calls.
  • The real Forgejo token appears 0 times in the added lines; the remote is written as https://<token>@....
  • No telegram/api_server block, so no bot token or chat id.

Verification

Config ran end to end:

freqtrade backtesting --config configs/backtest_local_config.json \
  --timerange 20260101-20260114

Completed and reported 1 trade, +12.36%, max absolute drawdown 1.85%.

Git LFS was retested after reverting to stock hooks and the apt-installed binary: an LFS .zip committed as a pointer, pushed with the pre-push hook active (object uploaded), and git lfs fsck reports OK. No --no-verify used.

Branch is based on current main (d7d6b00), no rebase needed.

Created by an AI agent (OpenHands) on behalf of the user.

## What this adds Two untracked files that had accumulated in the workspace. Neither is code; both remove setup friction. ### `configs/backtest_local_config.json` A self-contained config for running backtests locally. It deliberately omits the `telegram` and `api_server` blocks that `configs/backtest_config.json` carries, because freqtrade 2026.x rejects a `telegram` block that is missing `token`/`chat_id` — omitting the block is cleaner than stubbing it. Spot-only, Kraken, feather data from `data/`, five-pair static whitelist (SOL/SUI/XMR/DOGE/PEPE USD) chosen to match the pairs whose 5m data actually covers 2026. ### `AGENTS.md` Agent memory for the repo. It leads with a **New conversation setup** section, because every fresh container is missing `git-lfs` and git commands fail until it is installed: ```bash sudo apt-get update && sudo apt-get install -y git-lfs ``` The `apt-get update` is required. The image ships a stale apt index, so a bare install fails with "Unable to locate package git-lfs" and looks like the package is unavailable when it is only out of date. Debian trixie provides git-lfs 3.6.1. Other notes captured: - Only `/workspace` is a shared mount. The container root is rebuilt per conversation, so apt packages and `~/*` dotfiles do not survive. The venv, pulled LFS data, and `.git/` do. - `git-lfs` is reinstalled each session. A previous session placed a binary at `/workspace/bin/git-lfs` with hook and `alias.lfs` patches; that approach is gone, and the file says so and why. - `ChipsAndDips` imports `optuna` at module level, and 5m data coverage differs per pair. ## Security check No credentials are committed. Verified on the diff itself: - `exchange.key` and `exchange.secret` are empty strings — backtesting makes no authenticated calls. - The real Forgejo token appears **0** times in the added lines; the remote is written as `https://<token>@...`. - No `telegram`/`api_server` block, so no bot token or chat id. ## Verification Config ran end to end: ``` freqtrade backtesting --config configs/backtest_local_config.json \ --timerange 20260101-20260114 ``` Completed and reported 1 trade, +12.36%, max absolute drawdown 1.85%. Git LFS was retested after reverting to stock hooks and the apt-installed binary: an LFS `.zip` committed as a pointer, pushed with the pre-push hook active (object uploaded), and `git lfs fsck` reports OK. No `--no-verify` used. Branch is based on current `main` (`d7d6b00`), no rebase needed. _Created by an AI agent (OpenHands) on behalf of the user._
Adds configs/backtest_local_config.json, a self-contained config for running
backtests locally without the telegram and api_server blocks that
configs/backtest_config.json carries. Freqtrade 2026.x rejects a telegram
block that is missing token/chat_id, so those blocks are omitted entirely
rather than stubbed.

Spot-only, Kraken, feather data from data/, five-pair static whitelist
(SOL/SUI/XMR/DOGE/PEPE USD) chosen to match the pairs whose 5m data covers
2026. Exchange key/secret are empty strings: backtesting needs no
authenticated calls.

Verified by running a 2026-01-01 to 2026-01-14 backtest of ChipsAndDips,
which completed and reported 1 trade at +12.36%.

Co-authored-by: openhands <openhands@all-hands.dev>
Records the context a fresh session needs to work in this repo: what the
workspace contains, how to run a backtest, and the non-obvious constraints
that cost time to rediscover.

Notable points captured:
- Only /workspace is a shared mount; the container root is rebuilt per
  conversation, so system installs and dotfiles do not survive.
- git-lfs lives at /workspace/bin/git-lfs and is wired up through the repo's
  own hooks, filter config, and an lfs alias, so it works with a bare PATH.
- ChipsAndDips imports optuna at module level, and 5m data coverage differs
  per pair.

No secrets: the Forgejo remote is written with a placeholder, and the only
hex string is the public git-lfs release checksum.

Co-authored-by: openhands <openhands@all-hands.dev>
openhands force-pushed chore/local-backtest-config-and-agent-notes from f4d473c95d to 627ab19170 2026-10-19 04:25:20 -05:00 Compare
openhands force-pushed chore/local-backtest-config-and-agent-notes from 627ab19170 to 6eaa260ba4 2026-10-19 04:42:41 -05:00 Compare
pa77y approved these changes 2026-10-19 04:43:56 -05:00
pa77y merged commit 17bb12a3d1 into main 2026-10-19 04:44:03 -05:00
pa77y deleted branch chore/local-backtest-config-and-agent-notes 2026-10-19 04:44:03 -05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
pa77y/freqtrade_strategies!3
No description provided.