Readytrader Forex — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Readytrader Forex (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
ReadyTrader-FOREX is provided for informational and educational purposes only and does not constitute financial, investment, legal, or tax advice. Trading forex and CFDs involves substantial risk and may result in partial or total loss of funds. Past performance is not indicative of future results. You are solely responsible for any decisions, trades, configurations, supervision, and the security of your credentials/API keys. ReadyTrader-FOREX is provided “AS IS”, without warranties of any kind, and we make no guarantees regarding profitability, performance, availability, or outcomes. By using ReadyTrader-FOREX, you acknowledge and accept these risks.
See also: DISCLAIMER.md.
______________________________________________________________________
______________________________________________________________________
ReadyTrader-FOREX is a specialized bridge that turns your AI Agent (like Gemini or Claude) into a professional forex trading operator.
Think of it this way: Your AI agent provides the Intelligence (analyzing charts, earnings reports, and news sentiment), while ReadyTrader-FOREX provides the Hands (connecting to brokerages and data providers) and the Safety Brakes (enforcing your risk rules). It allows you to delegate complex trading tasks to an AI without giving it unchecked access to your capital.
The core philosophy of this project is a strict separation of powers:
ReadyTrader-FOREX operates on a User-Custodied basis. This means:
Note: In Paper Mode (default), we simulate a virtual wallet with fake funds so you can practice without linking a real brokerage.
fetch_ohlcv and get_sentiment.place_market_order.MAX_TRADE_AMOUNT? If yes, it creates a Pending Execution.______________________________________________________________________
ReadyTrader-FOREX includes a professional Next.js dashboard for real-time monitoring, multi-agent coordination, and trade approvals.
How to Enable:
cd frontendnpm installnpm run devhttp://localhost:3000.Features:
______________________________________________________________________
______________________________________________________________________
Run both demos locally (no exchange keys, no RPC needed):
python examples/paper_quick_demo.py
python examples/stress_test_demo.pyYou’ll get exportable artifacts under artifacts/demo_stress/ (gitignored).
Prompt pack (copy/paste): prompts/READYTRADER_PROMPT_PACK.md.
ReadyTrader-FOREX demo flow
Run the server in a container. It exposes stdio for MCP clients.
cd ReadyTrader-FOREX
docker build -t readytrader-forex .
# Run interactively (to test)
docker run --rm -i readytrader-forexIf you want to run or test ReadyTrader-FOREX locally:
pip install -r requirements-dev.txt
python app/main.py.env)Create a .env file or pass environment variables. Start from env.example (copy to .env).
<details> <summary><b>🛡️ Live Trading Safety & Approval</b></summary>
| Variable | Default | Description |
|---|---|---|
PAPER_MODE | true | Set to false for live trading. |
LIVE_TRADING_ENABLED | false | Must be true for any live execution. |
TRADING_HALTED | false | Global kill switch to halt all live actions. |
EXECUTION_APPROVAL_MODE | auto | auto executes immediately; approve_each requires manual confirmation. |
API_PORT | 8000 | Port for the FastAPI/WebSocket server (api_server.py). |
DISCORD_WEBHOOK_URL | "" | Optional webhook for trade approval notifications. |
</details>
<details> <summary><b>🔑 Exchange & Signing Credentials</b></summary>
| Variable | Description |
|---|---|
PRIVATE_KEY | Hex private key for signing (if SIGNER_TYPE=env_private_key). |
CEX_API_KEY | API Key for your primary exchange. |
CEX_API_SECRET | API Secret for your primary exchange. |
SIGNER_TYPE | env_private_key, keystore, or remote. |
CEX_BINANCE_API_KEY | Exchange-specific keys (e.g., CEX_BINANCE_...). |
</details>
<details> <summary><b>📈 Market Data & CCXT Tuning</b></summary>
| Variable | Default | Description |
|---|---|---|
MARKETDATA_EXCHANGES | binance... | Comma-separated list of exchanges to use for data. |
TICKER_CACHE_TTL_SEC | 5 | How long to cache price data. |
DEX_SLIPPAGE_PCT | 1.0 | Default slippage for DEX swaps. |
ALLOW_TOKENS | * | Comma-separated allowlist of tradeable tokens. |
</details>
<details> <summary><b>🛠️ Ops, Observability & Limits</b></summary>
| Variable | Default | Description |
|---|---|---|
RATE_LIMIT_DEFAULT_PER_MIN | 120 | Default API rate limit. |
RISK_PROFILE | conservative | Presets for sizing and safety limits. |
ALLOW_CHAINS | ethereum... | Allowlists for EVM networks. |
</details>
______________________________________________________________________
#### Brokerage credentials
To place live orders or fetch balances, configure brokerage credentials via env.
OANDA_API_KEY=...OANDA_ACCOUNT_ID=...Tools:
place_forex_order(symbol, side, amount, order_type='market', price=0.0, exchange='oanda', rationale='')get_portfolio_balance()reset_paper_wallet() - New: Reset all simulated datadeposit_paper_funds(asset, amount) - New: Add virtual cashMarket-data introspection:
get_marketdata_capabilities(exchange_id='')Market-data introspection:
get_marketdata_capabilities(exchange_id='')______________________________________________________________________
To give Agent Zero these powers, add the following to your Agent Zero Settings (or agent.yaml). The MCP server key/name is arbitrary; we use readytrader_forex in examples.
Quick copy/paste file: configs/agent_zero.mcp.yaml.
Via User Interface:
readytrader_forexstdiodockerrun, -i, --rm, -e, PAPER_MODE=true, readytrader-forexVia `agent.yaml`:
mcp_servers:
readytrader_forex:
command: "docker"
args:
- "run"
- "-i"
- "--rm"
- "-e"
- "PAPER_MODE=true"
- "readytrader-forex"Prebuilt config: configs/agent_zero.mcp.yaml. Restart Agent Zero after saving.
Add this to your mcp-server-config.json:
Quick copy/paste file: configs/claude_desktop.mcp-server-config.json.
{
"mcpServers": {
"readytrader_forex": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "PAPER_MODE=true",
"readytrader-forex"
]
}
}
}Prebuilt config: configs/claude_desktop.mcp-server-config.json.
______________________________________________________________________
Example Prompt:
"Create a mean-reversion strategy for GBP/USD. Write a Python function on_candle that uses RSI. Run a backtest simulation on the last 500 hours and tell me the Win Rate and PnL."What happens:
fetch_ohlcv("GBP/USD") to see data structure.on_candle(close, rsi, state).run_backtest_simulation(code, "GBP/USD").{ "pnl": 15.5%, "win_rate": 60% }.Perfect for "interning" your agent without any paid API keys.
deposit_paper_funds("USD", 100000)fetch_ohlcv and get_forex_price.fetch_rss_news (MarketWatch/Yahoo Finance) provides real-time "Free" signals.place_market_order("EUR/USD", "buy", 1000)reset_paper_wallet()The agent can query the "weather" before flying.
get_market_regime("EUR/USD"){"regime": "TRENDING", "direction": "UP", "adx": 45.2}The Guardian (Passive Safety): You don't need to do anything. If the agent tries to bet 50% of the portfolio on a whim, validate_trade_risk will BLOCK the trade automatically.
______________________________________________________________________
For the complete (generated) tool catalog with signatures and docstrings, see: docs/TOOLS.md.
| Category | Tool | Description |
|---|---|---|
| Market Data | get_stock_price | Live price from brokerage/data provider. |
fetch_ohlcv | Historical candles for research. | |
get_market_regime | Trend/Chop Detection (Phase 6). | |
| Intelligence | get_sentiment | Fear & Greed Index (Market). |
get_social_sentiment | X/Reddit Analysis (Financial focus). | |
get_financial_news | Bloomberg/Reuters (Simulated/Real). | |
| Trading | place_market_order | Execute market order. |
place_limit_order | Limit Order (Paper Mode). | |
check_orders | Update Order Book (Paper Mode). | |
| Account | get_portfolio_balance | Check Account Balance. |
deposit_paper_funds | Get fake money (Paper Mode). | |
| Research | run_backtest_simulation | Run Strategy Backtest. |
| Research | run_synthetic_stress_test | Run synthetic black-swan stress test with deterministic replay + recommendations. |
______________________________________________________________________
Built for the Agentic Future.
This MCP includes a 100% randomized (but deterministic-by-seed) synthetic market simulator. It can generate trending, ranging, and volatile regimes and inject black swan crashes and parabolic blow-off tops.
run_synthetic_stress_test(strategy_code, config_json='{}')Returns JSON containing:
PARAMS keys if present)Example config_json:
{
"master_seed": 123,
"scenarios": 200,
"length": 500,
"timeframe": "1h",
"initial_capital": 10000,
"start_price": 100,
"base_vol": 0.01,
"black_swan_prob": 0.02,
"parabolic_prob": 0.02
}______________________________________________________________________
docs/README.md: docs index / navigationdocs/TOOLS.md: complete tool catalog (generated from app/tools)docs/ERRORS.md: common error codes and operator troubleshootingdocs/EXCHANGES.md: exchange capability matrix (Supported vs Experimental)docs/MARKETDATA.md: market data routing, freshness scoring, plugins, and guardrailsdocs/THREAT_MODEL.md: operator-focused threat model (live trading)docs/CUSTODY.md: key custody + rotation guidancedocs/POSITIONING.md: credibility-safe marketing + messagingRELEASE_READINESS_CHECKLIST.md: what must be green before distributionCHANGELOG.md: version-to-version change summary~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.