I’ll adapt the project for OANDA with two explicit modes: 5-minute scalping and slower intraday/day trading. I’ll keep execution dry-run by default, read the API token and account ID only from environment variables, and add a practice-account opt-in so the code cannot silently place live orders.
Search complete: Inspect OANDA integration points
Searched codebase for "autotrader-bot CLI current working directory workspace", 1 result
Searched codebase for "OANDA candle client dry-run practice execution modes 5-minute scalping day trading", 1 result
Searched for files matching **/*cli*, 2 matches
Searched for files matching **/*strategy*, 2 matches
Searched for files matching **/*backtest*, 4 matches
Searched for files matching **/*dependency*, 1 match
Searched for files matching **/README*, 1 match
No matches found. Your search pattern might be excluded completely by either the search.exclude settings or .*ignore files.
If you believe that it should have results, you can check into the .ignore files and the exclude setting (here are some excluded patterns for reference:[/node_modules,/bower_components,**/.code-search]).
Then if you want to include those files you can call the tool again by setting "includeIgnoredFiles" to true.
No matches found. Your search pattern might be excluded completely by either the search.exclude settings or .*ignore files.
If you believe that it should have results, you can check into the .ignore files and the exclude setting (here are some excluded patterns for reference:[/node_modules,/bower_components,**/.code-search]).
Then if you want to include those files you can call the tool again by setting "includeIgnoredFiles" to true.
Searched for regex 5-minute|five.*minute|scalping|day.*trading|timeframe.*profile, 15 results
Searched for regex scalping|day.*trading|timeframe|period|interval, 31 results
No matches found. Your search pattern might be excluded completely by either the search.exclude settings or .*ignore files.
If you believe that it should have results, you can check into the .ignore files and the exclude setting (here are some excluded patterns for reference:[/node_modules,/bower_components,**/.code-search]).
Then if you want to include those files you can call the tool again by setting "includeIgnoredFiles" to true.
No matches found. Your search pattern might be excluded completely by either the search.exclude settings or .*ignore files.
If you believe that it should have results, you can check into the .ignore files and the exclude setting (here are some excluded patterns for reference:[/node_modules,/bower_components,**/.code-search]).
Then if you want to include those files you can call the tool again by setting "includeIgnoredFiles" to true.
Searched for files matching **/tests/**, 2 matches
Read
Read
Read
Read
Read
Read
Searched for regex execution.*mode|dry-run|practice|paper.*trade|paper.*live, 1 result
No matches found. Your search pattern might be excluded completely by either the search.exclude settings or .*ignore files.
If you believe that it should have results, you can check into the .ignore files and the exclude setting (here are some excluded patterns for reference:[/node_modules,/bower_components,**/.code-search]).
Then if you want to include those files you can call the tool again by setting "includeIgnoredFiles" to true.
Searched for files matching **/*oanda*, no matches
Searched for files matching **/*paper*, no matches
Searched for files matching **/*dry*, no matches
Searched for files matching **/*practice*, no matches
Searched for files matching **/*paper_live*, no matches
Searched for regex 5m|5-minute|15m|15-minute|scalping|day.*trading, 19 results
Searched for regex backtest|paper trading|practice account|dry run, 28 results
Searched for files matching **/src/**, 16 matches
The current architecture already separates data, signals, execution math, and CLI, so the integration can stay small. I’m adding an OANDA v3 client plus named profiles: scalp uses M5 candles and tighter exits, while day uses H1 candles and wider ATR stops/targets; both share the same risk cap and signal engine.
Created
Created
Generating patch (10 lines) in
The OANDA integration is drafted with a hard dry-run default, but I spotted one syntax typo in the order payload before validation. I’m fixing that and wiring the CLI so the same project can backtest scalp versus day, or submit a practice-account order only when --execute is explicitly supplied.
Created
Generating patch (31 lines) in ,
Ran terminal command: python -m pytest -q
The OANDA modules compile and all 5 tests still pass. I’m tightening the profile plumbing now so scalp actually uses its lower 0.25% risk default while day uses 0.5%, then I’ll install the new entry point and verify both profile commands without submitting any orders.
Generating patch (43 lines) in ,
Ran terminal command: python -m pip install -e .
Ran terminal command: python -m pytest -q
Ran terminal command: backtest --profile scalp --ticker EURUSD=X --period 14d
Ran terminal command: backtest --profile day --ticker EURUSD=X --period 60d
Checked , no problems found
Added OANDA support with two profiles:
scalp: OANDA M5, 0.25% risk per trade, tighter ATR exits
day: OANDA H1, 0.5% risk per trade, wider ATR exits
New files:
oanda.py
oanda_cli.py
profiles.py
Usage:
export OANDA_ACCOUNT_ID="your-account-id"
export OANDA_API_TOKEN="your-token"
oanda-trade --instrument EUR_USD --profile scalp
oanda-trade --instrument EUR_USD --profile day
The command is dry-run by default. Practice execution requires:
oanda-trade --instrument EUR_USD --profile scalp --execute
Live execution requires explicit:
oanda-trade --instrument EUR_USD --profile scalp --execute --live
Backtest comparison:
- 5-minute scalping: 16 trades, 68.75% win rate, 1.11% drawdown
- Day trading: 12 trades, 33.33% win rate, 2.93% drawdown
All 5 tests pass. The OANDA command evaluates one completed-candle decision at a time; it does not guarantee profitability or run as an unattended loop.
Made changes.
I’ll adapt the project for OANDA with two explicit modes: 5-minute scalping and slower intraday/day trading. I’ll keep execution dry-run by default, read the API token and account ID only from environment variables, and add a practice-account opt-in so the code cannot silently place live orders.
Search complete: Inspect OANDA integration points
Searched codebase for "autotrader-bot CLI current working directory workspace", 1 result
Searched codebase for "OANDA candle client dry-run practice execution modes 5-minute scalping day trading", 1 result
Searched for files matching
**/*cli*, 2 matchesSearched for files matching
**/*strategy*, 2 matchesSearched for files matching
**/*backtest*, 4 matchesSearched for files matching
**/*dependency*, 1 matchSearched for files matching
**/README*, 1 matchNo matches found. Your search pattern might be excluded completely by either the search.exclude settings or .*ignore files.
If you believe that it should have results, you can check into the .ignore files and the exclude setting (here are some excluded patterns for reference:[/node_modules,/bower_components,**/.code-search]).
Then if you want to include those files you can call the tool again by setting "includeIgnoredFiles" to true.
No matches found. Your search pattern might be excluded completely by either the search.exclude settings or .*ignore files.
If you believe that it should have results, you can check into the .ignore files and the exclude setting (here are some excluded patterns for reference:[/node_modules,/bower_components,**/.code-search]).
Then if you want to include those files you can call the tool again by setting "includeIgnoredFiles" to true.
Searched for regex
5-minute|five.*minute|scalping|day.*trading|timeframe.*profile, 15 resultsSearched for regex
scalping|day.*trading|timeframe|period|interval, 31 resultsNo matches found. Your search pattern might be excluded completely by either the search.exclude settings or .*ignore files.
If you believe that it should have results, you can check into the .ignore files and the exclude setting (here are some excluded patterns for reference:[/node_modules,/bower_components,**/.code-search]).
Then if you want to include those files you can call the tool again by setting "includeIgnoredFiles" to true.
No matches found. Your search pattern might be excluded completely by either the search.exclude settings or .*ignore files.
If you believe that it should have results, you can check into the .ignore files and the exclude setting (here are some excluded patterns for reference:[/node_modules,/bower_components,**/.code-search]).
Then if you want to include those files you can call the tool again by setting "includeIgnoredFiles" to true.
Searched for files matching
**/tests/**, 2 matchesRead
Read
Read
Read
Read
Read
Searched for regex
execution.*mode|dry-run|practice|paper.*trade|paper.*live, 1 resultNo matches found. Your search pattern might be excluded completely by either the search.exclude settings or .*ignore files.
If you believe that it should have results, you can check into the .ignore files and the exclude setting (here are some excluded patterns for reference:[/node_modules,/bower_components,**/.code-search]).
Then if you want to include those files you can call the tool again by setting "includeIgnoredFiles" to true.
Searched for files matching
**/*oanda*, no matchesSearched for files matching
**/*paper*, no matchesSearched for files matching
**/*dry*, no matchesSearched for files matching
**/*practice*, no matchesSearched for files matching
**/*paper_live*, no matchesSearched for regex
5m|5-minute|15m|15-minute|scalping|day.*trading, 19 resultsSearched for regex
backtest|paper trading|practice account|dry run, 28 resultsSearched for files matching
**/src/**, 16 matchesThe current architecture already separates data, signals, execution math, and CLI, so the integration can stay small. I’m adding an OANDA v3 client plus named profiles:
scalpuses M5 candles and tighter exits, whiledayuses H1 candles and wider ATR stops/targets; both share the same risk cap and signal engine.Created
Created
Generating patch (10 lines) in
The OANDA integration is drafted with a hard dry-run default, but I spotted one syntax typo in the order payload before validation. I’m fixing that and wiring the CLI so the same project can backtest
scalpversusday, or submit a practice-account order only when--executeis explicitly supplied.Created
Generating patch (31 lines) in ,
Ran terminal command: python -m pytest -q
The OANDA modules compile and all 5 tests still pass. I’m tightening the profile plumbing now so
scalpactually uses its lower 0.25% risk default whiledayuses 0.5%, then I’ll install the new entry point and verify both profile commands without submitting any orders.Generating patch (43 lines) in ,
Ran terminal command: python -m pip install -e .
Ran terminal command: python -m pytest -q
Ran terminal command: backtest --profile scalp --ticker EURUSD=X --period 14d
Ran terminal command: backtest --profile day --ticker EURUSD=X --period 60d
Checked , no problems found
Added OANDA support with two profiles:
scalp: OANDAM5, 0.25% risk per trade, tighter ATR exitsday: OANDAH1, 0.5% risk per trade, wider ATR exitsNew files:
oanda.pyoanda_cli.pyprofiles.pyUsage:
The command is dry-run by default. Practice execution requires:
Live execution requires explicit:
Backtest comparison:
All 5 tests pass. The OANDA command evaluates one completed-candle decision at a time; it does not guarantee profitability or run as an unattended loop.
Made changes.