Repository navigation
Small-account research, MomentumRotation1d, research-paper case study, v0.1.0 packaging - #5
Merged
Merged
Conversation
Replays the exact period a paper session ran (same strategy, pairs, balance, max open trades), matches trades by pair and entry time, and checks that paper results are close to the replay: 28+ days, 80%+ of trades in both, realised return within 2 points, fills within 0.3% per side. The return gap is split into matched-trade execution, paper-only and replay-only trades, and anything the replay can't reproduce (manual pause/resume/flatten, halts, code changed mid-session) is flagged. - ridgeline/reconcile.py: session discovery, trade matching, checks - panel/replay.py: data top-up, session replay, background jobs - panel: Paper vs replay card; the Research tab's last gate shows real results - scripts/reconcile.py: CLI for panel sessions and the Docker bot - panel sessions now record their pairs, balance, start and a code fingerprint in <session>.meta.json (config.json's pair list changes monthly)
…ategies - MomentumRotation1d: daily cross-sectional momentum rotation (top 3 of the whitelist by 14-day risk-adjusted momentum while BTC is risk-on), with risk-based sizing under the shared portfolio limits. Settings chosen on in-sample data only. - research.py: Freqtrade's lookahead-analysis reloads one pair at a time, so it reports any cross-sectional ranking as biased. Strategies that declare `cross_sectional = True` are checked instead by backtesting with later data removed from every pair and requiring identical earlier trades. - research.py --balance: run the gates at any starting balance (65 USDT is about 100 AUD); results go to latest-<balance>.json. - Tests: the ranking never looks ahead when future days are cut from all pairs.
…ature/small-account
- Gates re-run with MomentumRotation1d at 1000 and 65 USDT (about 100 AUD, `research.py gates --balance 65` -> latest-65.json). No strategy is eligible yet: TrendRider4h 8/9 (99 of 100 trades), MomentumRotation1d 7/9. - Indicator stability is measured at the strategy's own warm-up or longer; columns with fewer startup candles than the strategy declares test a setup that never runs. No strategy's eligibility changes. - RESEARCH.md: small-account results, the risk-per-trade experiment (more risk added little return and doubled drawdown), the rotation's lookback sensitivity, and both check changes. - scripts/case_study.py builds the case study PDF (black theme, research format: abstract, methodology, results, discussion, limitations, references) from the latest research results. The market background is the earlier case study, condensed with its sources kept.
…(v0.1.0) - installer/: Inno Setup installer with a private Python, Freqtrade and FreqUI; per-user install, Start-menu shortcuts for the panel and for updating market data. user_data (private config, sessions, data, audit) survives upgrades and uninstall; config.json is never overwritten. smoke-test.ps1 installs it silently, starts the panel and uninstalls. - Docker image now carries the code; compose mounts only user_data and can pull ghcr.io/devam2001/ridgeline instead of building. - .github/workflows/release.yml: a v* tag builds and smoke-tests both, publishes the image and creates the GitHub release with the installer and case study attached. Pull requests touching packaging build and test both. - requirements.txt pins the runtime; scripts/update_data.py runs the README's data steps; the panel shows the version.
Copying "<python>\*" into a stage folder that doesn't exist yet made the
first file the destination and then failed on the subfolders ("Container
cannot be copied onto existing leaf item"). Copy the folder itself instead.
Also: install Inno Setup with choco if the runner lacks it, use the x64
architecture flag every Inno Setup 6 accepts, anchor the config.json exclude,
and make the smoke test wait for the uninstaller's helper process.
devam2001
force-pushed
the
feature/small-account
branch
from
October 10, 2026 15:49
ccdb52c to
59af70b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Research
research.py gates --balance 65gives the same percentage results. Positions are ~6–26 USDT, above Binance's minimum order.Case study
scripts/case_study.pybuildsCrypto Trading Bot Case Study.pdffrom the latest research JSON. It has a black theme and research structure:Release packaging (v0.1.0)
installer/):config.json; keepsuser_dataon upgrade and uninstall.user_data. Servers candocker compose pullghcr.io/devam2001/ridgeline..github/workflows/release.yml: av*tag builds and smoke-tests both, pushes the image, and creates the release with the installer and case study attached. This PR runs the build and smoke tests without publishing.requirements.txt,scripts/update_data.py, and the version shown in the panel.Testing
ruff check .clean;pytest67 passed (new: rotation ranking/no-lookahead, recursive-gate parsing, version consistency).user_datadefaults are present and nothing private is in the imageinstaller/smoke-test.ps1(silent install → strategies load → panel answers → uninstall keepsuser_data).