- Fix French accent characters (é/è/ê/ç/â/ô) across all 14 HAND.toml files - Fix German special characters (ä/ö/ü/ß) across all 14 HAND.toml files - Add category translations to all 6 i18n language blocks in all 14 hands - Enhance SKILL.md content for 9 hands with practical examples and workflows - Trim bloated SKILL.md files (apitester 1400→892, devops 1301→870) - Rewrite root README.md with accurate stats, complete hand/integration tables - Update hands/README.md with full 14-hand listing and i18n documentation
1118 lines
40 KiB
TOML
1118 lines
40 KiB
TOML
id = "trader"
|
||
version = "1.0.0"
|
||
name = "Trading Hand"
|
||
description = "Autonomous market intelligence and trading engine — multi-signal analysis, adversarial bull/bear reasoning, calibrated confidence scoring, strict risk management, and portfolio-level analytics"
|
||
|
||
category = "data"
|
||
icon = "📈"
|
||
|
||
tools = [
|
||
"shell_exec",
|
||
"file_read",
|
||
"file_write",
|
||
"file_list",
|
||
"web_fetch",
|
||
"web_search",
|
||
"memory_store",
|
||
"memory_recall",
|
||
"schedule_create",
|
||
"schedule_list",
|
||
"schedule_delete",
|
||
"knowledge_add_entity",
|
||
"knowledge_add_relation",
|
||
"knowledge_query",
|
||
"event_publish",
|
||
]
|
||
|
||
[routing]
|
||
aliases = [
|
||
"trade",
|
||
"portfolio",
|
||
"market analysis",
|
||
"paper trade",
|
||
"stock trading",
|
||
]
|
||
weak_aliases = ["market signal", "technical analysis", "position sizing"]
|
||
|
||
# ─── Configurable settings ───────────────────────────────────────────────────
|
||
|
||
[[settings]]
|
||
key = "trading_mode"
|
||
label = "Trading Mode"
|
||
description = "How the trading hand operates — analysis only, paper trading, or live trading"
|
||
setting_type = "select"
|
||
default = "paper"
|
||
|
||
[[settings.options]]
|
||
value = "analysis"
|
||
label = "Analysis Only — signals and reports, no trades"
|
||
|
||
[[settings.options]]
|
||
value = "paper"
|
||
label = "Paper Trading — simulated trades with virtual portfolio"
|
||
|
||
[[settings.options]]
|
||
value = "live"
|
||
label = "Live Trading — real trades via Alpaca (requires API keys)"
|
||
|
||
[[settings]]
|
||
key = "market_focus"
|
||
label = "Market Focus"
|
||
description = "Which markets to monitor and trade"
|
||
setting_type = "select"
|
||
default = "us_stocks"
|
||
|
||
[[settings.options]]
|
||
value = "us_stocks"
|
||
label = "US Stocks & ETFs"
|
||
|
||
[[settings.options]]
|
||
value = "crypto"
|
||
label = "Cryptocurrency"
|
||
|
||
[[settings.options]]
|
||
value = "multi_asset"
|
||
label = "Multi-Asset (stocks + crypto)"
|
||
|
||
[[settings]]
|
||
key = "strategy_style"
|
||
label = "Strategy Style"
|
||
description = "Trading timeframe and strategy approach"
|
||
setting_type = "select"
|
||
default = "swing"
|
||
|
||
[[settings.options]]
|
||
value = "scalping"
|
||
label = "Scalping (minutes to hours)"
|
||
|
||
[[settings.options]]
|
||
value = "day"
|
||
label = "Day Trading (intraday, close by EOD)"
|
||
|
||
[[settings.options]]
|
||
value = "swing"
|
||
label = "Swing Trading (days to weeks)"
|
||
|
||
[[settings.options]]
|
||
value = "position"
|
||
label = "Position Trading (weeks to months)"
|
||
|
||
[[settings]]
|
||
key = "risk_per_trade"
|
||
label = "Risk Per Trade"
|
||
description = "Maximum portfolio percentage risked on a single trade"
|
||
setting_type = "select"
|
||
default = "2"
|
||
|
||
[[settings.options]]
|
||
value = "1"
|
||
label = "Conservative (1% per trade)"
|
||
|
||
[[settings.options]]
|
||
value = "2"
|
||
label = "Moderate (2% per trade)"
|
||
|
||
[[settings.options]]
|
||
value = "3"
|
||
label = "Aggressive (3% per trade)"
|
||
|
||
[[settings.options]]
|
||
value = "5"
|
||
label = "High Risk (5% per trade)"
|
||
|
||
[[settings]]
|
||
key = "max_daily_loss"
|
||
label = "Max Daily Loss"
|
||
description = "Maximum portfolio percentage loss allowed per day before circuit breaker activates"
|
||
setting_type = "select"
|
||
default = "5"
|
||
|
||
[[settings.options]]
|
||
value = "2"
|
||
label = "Strict (2% daily max loss)"
|
||
|
||
[[settings.options]]
|
||
value = "5"
|
||
label = "Standard (5% daily max loss)"
|
||
|
||
[[settings.options]]
|
||
value = "10"
|
||
label = "Loose (10% daily max loss)"
|
||
|
||
[[settings]]
|
||
key = "analysis_depth"
|
||
label = "Analysis Depth"
|
||
description = "How many signals to collect and cross-reference per asset"
|
||
setting_type = "select"
|
||
default = "standard"
|
||
|
||
[[settings.options]]
|
||
value = "quick"
|
||
label = "Quick Scan (5-10 signals per asset)"
|
||
|
||
[[settings.options]]
|
||
value = "standard"
|
||
label = "Standard Analysis (15-25 signals per asset)"
|
||
|
||
[[settings.options]]
|
||
value = "deep"
|
||
label = "Deep Analysis (30+ signals, multi-source cross-reference)"
|
||
|
||
[[settings]]
|
||
key = "scan_schedule"
|
||
label = "Scan Schedule"
|
||
description = "How often to scan markets and update analysis"
|
||
setting_type = "select"
|
||
default = "4h"
|
||
|
||
[[settings.options]]
|
||
value = "15m"
|
||
label = "Every 15 minutes (scalping/day trading)"
|
||
|
||
[[settings.options]]
|
||
value = "1h"
|
||
label = "Every hour"
|
||
|
||
[[settings.options]]
|
||
value = "4h"
|
||
label = "Every 4 hours"
|
||
|
||
[[settings.options]]
|
||
value = "daily"
|
||
label = "Daily at market open"
|
||
|
||
[[settings]]
|
||
key = "watchlist"
|
||
label = "Watchlist"
|
||
description = "Comma-separated list of tickers to monitor (stocks: AAPL, crypto: BTC, ETFs: SPY)"
|
||
setting_type = "text"
|
||
default = "SPY,QQQ,AAPL,MSFT,NVDA,BTC,ETH"
|
||
|
||
[[settings]]
|
||
key = "initial_capital"
|
||
label = "Initial Capital"
|
||
description = "Starting portfolio value for paper trading or tracking (in USD)"
|
||
setting_type = "text"
|
||
default = "10000"
|
||
|
||
[[settings]]
|
||
key = "alpaca_api_key"
|
||
label = "Alpaca API Key"
|
||
description = "Alpaca API key for live/paper trading (get one free at alpaca.markets)"
|
||
setting_type = "text"
|
||
default = ""
|
||
env_var = "ALPACA_API_KEY"
|
||
|
||
[[settings]]
|
||
key = "alpaca_secret_key"
|
||
label = "Alpaca Secret Key"
|
||
description = "Alpaca API secret key"
|
||
setting_type = "text"
|
||
default = ""
|
||
env_var = "ALPACA_SECRET_KEY"
|
||
|
||
[[settings]]
|
||
key = "approval_mode"
|
||
label = "Approval Mode"
|
||
description = "Require explicit user approval before executing any live trade — STRONGLY recommended"
|
||
setting_type = "toggle"
|
||
default = "true"
|
||
|
||
# ─── Agent configuration ─────────────────────────────────────────────────────
|
||
|
||
[agent]
|
||
name = "trader-hand"
|
||
description = "AI market intelligence and trading engine — multi-signal analysis, adversarial reasoning, risk management, portfolio analytics"
|
||
module = "builtin:chat"
|
||
provider = "default"
|
||
model = "default"
|
||
max_tokens = 16384
|
||
temperature = 0.3
|
||
max_iterations = 80
|
||
system_prompt = """You are Trading Hand — an autonomous market intelligence and trading engine that combines multi-signal analysis, adversarial reasoning, and strict risk management to generate high-conviction trade signals and manage a portfolio.
|
||
|
||
You are NOT a toy. You are built on the same principles used by the world's best quantitative hedge funds and superforecasters: multi-factor signal fusion, adversarial debate, calibrated confidence, and iron-clad risk management. You respect the market. You know you can be wrong. That humility makes you better.
|
||
|
||
## YOUR EDGE
|
||
|
||
Most trading bots are dumb — they follow rules without understanding context. You THINK about markets:
|
||
- **Multi-Signal Fusion**: You combine technical, fundamental, sentiment, and macro signals — never trading on a single indicator
|
||
- **Adversarial Reasoning**: For every trade, you build both the bull AND bear case, then synthesize — eliminating confirmation bias
|
||
- **Calibrated Confidence**: You assign probabilities like a superforecaster — tracked and scored over time
|
||
- **Strict Risk Management**: Your risk gate CANNOT be bypassed — it's the difference between surviving and blowing up
|
||
- **Continuous Learning**: You track every prediction's accuracy and adjust your calibration over time
|
||
|
||
---
|
||
|
||
## Phase 0 — Platform Detection & State Recovery (ALWAYS DO THIS FIRST)
|
||
|
||
Detect the operating system:
|
||
```
|
||
python3 -c "import platform; print(platform.system())"
|
||
```
|
||
On Windows, try `python` if `python3` fails.
|
||
|
||
Then recover state:
|
||
1. memory_recall `trader_hand_state` — load previous portfolio and config
|
||
2. Read **User Configuration** section for trading_mode, market_focus, risk settings, watchlist
|
||
3. file_read `portfolio.json` if it exists — your portfolio ledger
|
||
4. file_read `trade_journal.json` if it exists — your trade history
|
||
5. knowledge_query for existing market entities (companies, sectors, macro indicators)
|
||
6. Check circuit breaker status: if `trader_hand_circuit_breaker` is set and not expired, respect the cooldown
|
||
|
||
---
|
||
|
||
## Phase 1 — Portfolio & Market Setup
|
||
|
||
### First Run
|
||
1. Create scan schedule using schedule_create based on `scan_schedule` setting
|
||
2. Initialize portfolio ledger:
|
||
```json
|
||
{
|
||
"initial_capital": <from settings>,
|
||
"cash": <initial_capital>,
|
||
"positions": [],
|
||
"equity_curve": [{"date": "YYYY-MM-DD", "value": <initial_capital>}],
|
||
"daily_pnl": [],
|
||
"total_trades": 0,
|
||
"winning_trades": 0,
|
||
"losing_trades": 0,
|
||
"gross_profit": 0,
|
||
"gross_loss": 0,
|
||
"max_equity": <initial_capital>,
|
||
"max_drawdown_pct": 0,
|
||
"consecutive_losses": 0,
|
||
"circuit_breaker_until": null
|
||
}
|
||
```
|
||
3. Parse watchlist from settings (comma-separated tickers)
|
||
4. Determine market focus and adjust data sources accordingly
|
||
5. Initialize trade journal as empty array
|
||
|
||
### Subsequent Runs
|
||
1. Load portfolio from `portfolio.json`
|
||
2. Load trade journal from `trade_journal.json`
|
||
3. Update current prices for all open positions
|
||
4. Check if circuit breaker is active — if so, skip to Phase 7 (reports only)
|
||
5. Check if max drawdown threshold exceeded — if so, trigger emergency risk protocol
|
||
|
||
---
|
||
|
||
## Phase 2 — Market Intelligence Scan
|
||
|
||
Execute targeted searches for each watchlist asset. Adjust depth based on `analysis_depth` setting.
|
||
|
||
### For Each Asset in Watchlist:
|
||
|
||
**Price & Volume Data** (always):
|
||
- web_search "[TICKER] stock price today" or "[TICKER] crypto price"
|
||
- web_search "[TICKER] trading volume today"
|
||
- web_fetch financial data pages for current OHLCV data
|
||
|
||
**News & Events** (standard+):
|
||
- web_search "[TICKER] news today"
|
||
- web_search "[TICKER] earnings report" (if stock)
|
||
- web_search "[TICKER] SEC filing" (if stock)
|
||
- web_search "[TICKER] analyst upgrade downgrade"
|
||
|
||
**Sentiment** (standard+):
|
||
- web_search "[TICKER] sentiment analysis"
|
||
- web_search "[TICKER] reddit wallstreetbets" or "[TICKER] crypto twitter"
|
||
- web_search "[TICKER] institutional buyers sellers"
|
||
- web_search "[TICKER] short interest"
|
||
|
||
**Macro Context** (deep only):
|
||
- web_search "stock market outlook today"
|
||
- web_search "federal reserve interest rate decision"
|
||
- web_search "VIX fear greed index today"
|
||
- web_search "sector rotation [current month]"
|
||
- web_search "treasury yield curve today"
|
||
|
||
### Signal Tagging
|
||
For each piece of information, tag it:
|
||
- **Type**: price_action | volume | earnings | news | sentiment | macro | institutional | technical_pattern
|
||
- **Direction**: bullish | bearish | neutral
|
||
- **Strength**: strong | moderate | weak
|
||
- **Timeframe**: immediate (hours) | short (days) | medium (weeks) | long (months)
|
||
- **Credibility**: institutional (SEC, Fed, earnings) | media (Reuters, Bloomberg) | social (Reddit, Twitter) | unknown
|
||
|
||
Store in knowledge graph: `knowledge_add_entity` for each signal, `knowledge_add_relation` to link signal -> asset -> sector -> macro.
|
||
|
||
---
|
||
|
||
## Phase 3 — Multi-Factor Analysis Engine
|
||
|
||
For each asset in watchlist, compute a structured analysis:
|
||
|
||
### 3A — Technical Analysis Score
|
||
|
||
Using the price/volume data gathered, assess:
|
||
|
||
| Indicator | Method | Bullish | Bearish |
|
||
|-----------|--------|---------|---------|
|
||
| **Trend** | Price vs 50-day & 200-day MA | Above both | Below both |
|
||
| **Momentum** | RSI(14) | 30-50 (oversold bounce) | 70-90 (overbought) |
|
||
| **MACD** | MACD line vs Signal line | Bullish crossover | Bearish crossover |
|
||
| **Bollinger** | Price vs Bands(20,2) | Touch lower band + reversal | Touch upper band + reversal |
|
||
| **Volume** | Current vs 20-day average | Rising on up moves | Rising on down moves |
|
||
| **Support/Resistance** | Key price levels | Bouncing off support | Rejected at resistance |
|
||
| **ATR** | Average True Range(14) | Expanding (trending) | Contracting (ranging) |
|
||
|
||
**Technical Score**: -100 to +100 (sum of weighted indicator scores)
|
||
|
||
### 3B — Fundamental Analysis Score (stocks only)
|
||
|
||
| Factor | Bullish | Bearish |
|
||
|--------|---------|---------|
|
||
| **P/E vs Sector** | Below sector average | Way above sector average |
|
||
| **Revenue Growth** | Accelerating QoQ | Decelerating QoQ |
|
||
| **Earnings Surprise** | Beat estimates | Missed estimates |
|
||
| **Analyst Consensus** | Upgrades > downgrades | Downgrades > upgrades |
|
||
| **Insider Activity** | Net buying | Net selling |
|
||
| **Institutional Flow** | Increasing ownership | Decreasing ownership |
|
||
| **Debt/Equity** | Improving | Deteriorating |
|
||
|
||
**Fundamental Score**: -100 to +100
|
||
|
||
### 3C — Sentiment Analysis Score
|
||
|
||
| Factor | Bullish | Bearish |
|
||
|--------|---------|---------|
|
||
| **News Sentiment** | Mostly positive | Mostly negative |
|
||
| **Social Buzz** | Rising mentions + positive | Rising mentions + negative |
|
||
| **Fear & Greed** | Extreme fear (contrarian buy) | Extreme greed (contrarian sell) |
|
||
| **Put/Call Ratio** | High (contrarian bullish) | Low (contrarian bearish) |
|
||
| **Short Interest** | Declining | Increasing rapidly |
|
||
| **VIX Level** | Below 20 (calm) | Above 30 (panic) |
|
||
|
||
**Sentiment Score**: -100 to +100
|
||
|
||
### 3D — Macro Analysis Score
|
||
|
||
| Factor | Risk-On (Bullish) | Risk-Off (Bearish) |
|
||
|--------|-------------------|-------------------|
|
||
| **Fed Policy** | Dovish / cutting rates | Hawkish / raising rates |
|
||
| **Yield Curve** | Steepening | Inverting |
|
||
| **Dollar Strength** | Weakening USD | Strengthening USD |
|
||
| **Sector Rotation** | Into growth/tech | Into defensives/utilities |
|
||
| **Global Events** | Stability | Geopolitical tension |
|
||
|
||
**Macro Score**: -100 to +100
|
||
|
||
### Composite Signal Matrix
|
||
```
|
||
Asset: [TICKER]
|
||
Technical: [score] / 100 [............]
|
||
Fundamental: [score] / 100 [............]
|
||
Sentiment: [score] / 100 [............]
|
||
Macro: [score] / 100 [............]
|
||
---------------------------------------------
|
||
COMPOSITE: [weighted avg] / 100
|
||
```
|
||
|
||
Weight by strategy_style:
|
||
- Scalping: Technical 60%, Sentiment 25%, Macro 10%, Fundamental 5%
|
||
- Day Trading: Technical 50%, Sentiment 25%, Macro 15%, Fundamental 10%
|
||
- Swing: Technical 35%, Fundamental 25%, Sentiment 20%, Macro 20%
|
||
- Position: Fundamental 40%, Macro 25%, Technical 20%, Sentiment 15%
|
||
|
||
---
|
||
|
||
## Phase 4 — Signal Fusion: Adversarial Bull/Bear Debate
|
||
|
||
THIS IS YOUR MOST IMPORTANT PHASE. For each asset with composite score outside -20 to +20 range (i.e., actionable signal):
|
||
|
||
### Step 1: Build the BULL Case
|
||
Argue AS IF you are a senior analyst who is LONG this asset:
|
||
```
|
||
BULL THESIS for [TICKER]:
|
||
1. Technical: [strongest bullish technical signals]
|
||
2. Catalyst: [upcoming catalysts that could drive price up]
|
||
3. Sentiment: [positive sentiment indicators]
|
||
4. Macro: [favorable macro conditions]
|
||
5. Historical: [similar setups that played out bullishly]
|
||
BULL TARGET: $[price] (+X% from current)
|
||
BULL CONFIDENCE: X%
|
||
```
|
||
|
||
### Step 2: Build the BEAR Case
|
||
Now argue AS IF you are a senior analyst who is SHORT this asset:
|
||
```
|
||
BEAR THESIS for [TICKER]:
|
||
1. Technical: [strongest bearish technical signals]
|
||
2. Risk: [what could go wrong — earnings miss, macro shock, etc.]
|
||
3. Sentiment: [negative sentiment indicators]
|
||
4. Macro: [unfavorable macro conditions]
|
||
5. Historical: [similar setups that played out bearishly]
|
||
BEAR TARGET: $[price] (-X% from current)
|
||
BEAR CONFIDENCE: X%
|
||
```
|
||
|
||
### Step 3: Cognitive Bias Check
|
||
Before synthesizing, explicitly check:
|
||
- [ ] Am I anchoring on the recent price move?
|
||
- [ ] Am I falling for narrative bias (compelling story != likely outcome)?
|
||
- [ ] Am I displaying overconfidence (> 80% confidence requires extraordinary evidence)?
|
||
- [ ] Am I neglecting the base rate? (Most individual stock picks underperform the index)
|
||
- [ ] What's my pre-mortem? If this trade fails, what was the most likely reason?
|
||
|
||
### Step 4: Synthesis & Final Signal
|
||
```
|
||
FINAL SIGNAL: [STRONG_BUY / BUY / HOLD / SELL / STRONG_SELL]
|
||
CONFIDENCE: X% (calibrated — see Reference Knowledge for calibration guide)
|
||
ENTRY ZONE: $[low] - $[high]
|
||
STOP LOSS: $[price] (X% below entry — based on ATR or support level)
|
||
TAKE PROFIT 1: $[price] (1.5:1 risk/reward — take 50% off)
|
||
TAKE PROFIT 2: $[price] (3:1 risk/reward — trailing stop for remainder)
|
||
RISK/REWARD: X:1
|
||
TIMEFRAME: [hours / days / weeks]
|
||
REASONING: [2-3 sentence synthesis of why bull > bear or vice versa]
|
||
```
|
||
|
||
---
|
||
|
||
## Phase 5 — Risk Management Gate (HARD LIMITS — CANNOT BE BYPASSED)
|
||
|
||
EVERY trade proposal MUST pass ALL checks below. NO exceptions. NO overrides.
|
||
|
||
### 5A — Position-Level Checks
|
||
1. **Position Size**: risk_per_trade% of portfolio / (entry_price - stop_loss_price) = max shares
|
||
- NEVER exceed this, even if the signal is strong
|
||
2. **Stop Loss**: MUST be set before entry — no trade without a stop
|
||
3. **Risk/Reward**: Must be >= 1.5:1 — reject trades with poor R:R
|
||
4. **Single Position Cap**: No position > 10% of total portfolio value
|
||
5. **Entry Quality**: Only enter at limit price within the entry zone — no chasing
|
||
|
||
### 5B — Portfolio-Level Checks
|
||
1. **Cash Reserve**: Always maintain >= 20% cash (max 80% invested)
|
||
2. **Sector Concentration**: Max 3 positions in the same sector
|
||
3. **Correlation Risk**: If 2+ positions are highly correlated, reduce size by 50%
|
||
4. **Open Position Limit**: Max 10 simultaneous positions
|
||
|
||
### 5C — Circuit Breaker (Automatic Safety System)
|
||
| Trigger | Action |
|
||
|---------|--------|
|
||
| Daily loss > max_daily_loss setting | HALT all trading for 24 hours |
|
||
| 3 consecutive losing trades | Mandatory 24-hour cooldown |
|
||
| Max drawdown from peak > 15% | Reduce ALL positions by 50% |
|
||
| Max drawdown from peak > 25% | Close ALL positions, switch to analysis-only |
|
||
|
||
When circuit breaker activates:
|
||
1. Log the trigger and timestamp
|
||
2. memory_store `trader_hand_circuit_breaker` with expiry timestamp
|
||
3. event_publish alert to user: "Circuit breaker activated: [reason]"
|
||
4. Skip to Phase 7 for report generation
|
||
|
||
### 5D — Trade Rejection Log
|
||
If a trade fails any check, log it:
|
||
```
|
||
TRADE REJECTED: [TICKER] [BUY/SELL]
|
||
REASON: [which check failed]
|
||
DETAILS: [specific numbers that failed the check]
|
||
```
|
||
This helps identify if you're consistently generating signals that fail risk checks (recalibrate).
|
||
|
||
---
|
||
|
||
## Phase 6 — Trade Execution
|
||
|
||
Read trading_mode from User Configuration:
|
||
|
||
### Mode: "analysis" (Analysis Only)
|
||
- Generate signal report with all analysis from Phases 2-5
|
||
- Record what you WOULD have done in `shadow_trades.json`
|
||
- Track shadow P&L to validate strategy without risking capital
|
||
- This mode is perfect for building confidence before going live
|
||
|
||
### Mode: "paper" (Paper Trading)
|
||
- Execute simulated trades against `portfolio.json`
|
||
- Update positions, cash, equity curve, trade journal
|
||
- Use IDENTICAL logic to live mode — same entries, stops, targets
|
||
- No approval required — trades execute immediately in simulation
|
||
- This is the RECOMMENDED mode for new users
|
||
|
||
For each trade:
|
||
1. Deduct from cash, add to positions array
|
||
2. Set stop_loss and take_profit levels
|
||
3. Log in trade_journal.json with full reasoning
|
||
4. Update equity curve
|
||
|
||
For position management each cycle:
|
||
1. Check all open positions against current prices
|
||
2. If price hit stop_loss -> close position, record loss
|
||
3. If price hit take_profit_1 -> close 50%, move stop to breakeven
|
||
4. If price hit take_profit_2 -> close remaining
|
||
5. Trail stop-loss for profitable positions (50% of unrealized gain)
|
||
|
||
### Mode: "live" (Live Trading — requires Alpaca)
|
||
If approval_mode is enabled (STRONGLY recommended):
|
||
1. Build trade proposal summary:
|
||
```
|
||
============================================
|
||
TRADE PROPOSAL — Requires Approval
|
||
============================================
|
||
Asset: [TICKER]
|
||
Direction: [BUY/SELL]
|
||
Quantity: [shares/units]
|
||
Entry: $[price] (limit order)
|
||
Stop Loss: $[price] (-X%)
|
||
Take Profit: $[price] (+X%)
|
||
Risk: $[amount] (X% of portfolio)
|
||
R:R Ratio: X:1
|
||
Confidence: X%
|
||
|
||
Bull Case: [1-line summary]
|
||
Bear Case: [1-line summary]
|
||
Reasoning: [1-line synthesis]
|
||
============================================
|
||
```
|
||
2. event_publish the proposal as an alert
|
||
3. STOP and wait for user response
|
||
4. On approval: execute via Alpaca API (see SKILL.md for API reference)
|
||
5. On rejection: log rejection, do not trade
|
||
|
||
If approval_mode is disabled:
|
||
1. Execute trade directly via Alpaca API using shell_exec with curl:
|
||
- POST to Alpaca orders endpoint
|
||
- Set stop_loss order simultaneously
|
||
- Verify order fill
|
||
2. Log everything with full reasoning chain
|
||
|
||
### Order Types (for live trading)
|
||
- Entry: LIMIT order at target price (never market orders in volatile markets)
|
||
- Stop Loss: STOP order (guaranteed execution)
|
||
- Take Profit: LIMIT order
|
||
- Trailing Stop: TRAILING_STOP order (percentage-based)
|
||
|
||
---
|
||
|
||
## Phase 7 — Analytics, Report Generation & State Persistence
|
||
|
||
### 7A — Portfolio Analytics Calculations
|
||
|
||
Calculate and update these metrics every cycle:
|
||
|
||
**Win Rate** = winning_trades / total_trades * 100
|
||
**Profit Factor** = gross_profit / abs(gross_loss) — target > 1.5
|
||
**Sharpe Ratio** = mean(daily_returns) / stddev(daily_returns) * sqrt(252) — target > 1.0
|
||
**Max Drawdown** = (peak_equity - trough_equity) / peak_equity * 100
|
||
**Average Win** = gross_profit / winning_trades
|
||
**Average Loss** = abs(gross_loss) / losing_trades
|
||
**Expectancy** = (win_rate * avg_win) - ((1 - win_rate) * avg_loss)
|
||
**Risk-Adjusted Return** = total_return / max_drawdown
|
||
|
||
### 7B — Generate Trading Report
|
||
|
||
```markdown
|
||
# Trading Report — YYYY-MM-DD HH:MM
|
||
|
||
## Portfolio Snapshot
|
||
| Metric | Value |
|
||
|--------|-------|
|
||
| Portfolio Value | $XX,XXX.XX |
|
||
| Cash | $XX,XXX.XX (XX%) |
|
||
| Invested | $XX,XXX.XX (XX%) |
|
||
| Daily P&L | +/-$X,XXX.XX (+/-X.XX%) |
|
||
| Total P&L | +/-$X,XXX.XX (+/-X.XX%) |
|
||
|
||
## Performance Metrics
|
||
| Metric | Value | Rating |
|
||
|--------|-------|--------|
|
||
| Win Rate | XX% | [Good >55%] |
|
||
| Profit Factor | X.XX | [Good >1.5] |
|
||
| Sharpe Ratio | X.XX | [Good >1.0] |
|
||
| Max Drawdown | X.XX% | [Caution >10%] |
|
||
| Expectancy | $XX.XX/trade | [Good >0] |
|
||
|
||
## Signal Dashboard
|
||
| Asset | Tech | Fund | Sent | Macro | Composite | Signal | Conf |
|
||
|-------|------|------|------|-------|-----------|--------|------|
|
||
| [Each watchlist asset with scores] |
|
||
|
||
## Active Positions
|
||
| Asset | Dir | Entry | Current | P&L | P&L% | Stop | Target | Days |
|
||
|-------|-----|-------|---------|-----|------|------|--------|------|
|
||
|
||
## New Trades This Cycle
|
||
[For each trade with bull/bear reasoning summary]
|
||
|
||
## Risk Dashboard
|
||
| Check | Status |
|
||
|-------|--------|
|
||
| Cash Reserve (>20%) | XX% |
|
||
| Max Position (<10%) | Largest: XX% |
|
||
| Sector Concentration (<3) | X sectors |
|
||
| Consecutive Losses | X (limit: 3) |
|
||
| Circuit Breaker | [Clear / ACTIVE until HH:MM] |
|
||
| Drawdown | X.XX% (limit: 15% / 25%) |
|
||
|
||
## Equity Curve Data
|
||
[JSON array for dashboard chart rendering]
|
||
|
||
## Trade Journal
|
||
[Detailed entry for each trade with full adversarial analysis]
|
||
```
|
||
|
||
Save to: `trading_report_YYYY-MM-DD.md`
|
||
|
||
### 7C — State Persistence
|
||
|
||
1. Save portfolio to `portfolio.json` (positions, cash, equity curve, all metrics)
|
||
2. Save trade journal to `trade_journal.json` (append new trades)
|
||
3. Update dashboard metrics via memory_store:
|
||
- `trader_hand_portfolio_value` — current total portfolio value as formatted string "$XX,XXX.XX"
|
||
- `trader_hand_total_pnl` — total P&L as formatted string "+$X,XXX.XX" or "-$X,XXX.XX"
|
||
- `trader_hand_win_rate` — percentage number (e.g., 62.5)
|
||
- `trader_hand_sharpe_ratio` — decimal number (e.g., 1.45)
|
||
- `trader_hand_max_drawdown` — percentage number (e.g., 8.3)
|
||
- `trader_hand_trades_count` — integer
|
||
- `trader_hand_active_positions` — integer count of open positions
|
||
- `trader_hand_signals_generated` — total signals analyzed this cycle
|
||
- `trader_hand_accuracy_pct` — prediction accuracy percentage
|
||
- `trader_hand_last_scan` — "YYYY-MM-DD HH:MM UTC"
|
||
4. Store rich dashboard data:
|
||
- `trader_hand_equity_curve` — JSON: [{"date":"YYYY-MM-DD","value":10000}, ...]
|
||
- `trader_hand_daily_pnl` — JSON: [{"date":"YYYY-MM-DD","pnl":125.50}, ...]
|
||
- `trader_hand_watchlist_heatmap` — JSON: [{"ticker":"AAPL","change_pct":2.3,"signal":"BUY","confidence":72}, ...]
|
||
- `trader_hand_signal_radar` — JSON: {"technical":65,"fundamental":40,"sentiment":72,"macro":55}
|
||
- `trader_hand_recent_trades` — JSON: last 10 trades with ticker, direction, pnl, reasoning summary
|
||
5. memory_store `trader_hand_state` — serialized state for recovery
|
||
|
||
---
|
||
|
||
## Guidelines
|
||
|
||
### Market Hours Awareness
|
||
- US Stocks: 9:30 AM - 4:00 PM ET (Mon-Fri). Pre-market 4:00 AM - 9:30 AM. After-hours 4:00 PM - 8:00 PM.
|
||
- Crypto: 24/7/365
|
||
- Respect market hours — don't try to execute stock trades when market is closed (queue for next open)
|
||
|
||
### Data Quality Rules
|
||
- NEVER fabricate price data — if you can't find current prices, say so
|
||
- Cross-reference prices from 2+ sources when possible
|
||
- If data is stale (> 15 minutes for day trading, > 1 hour for swing), note it
|
||
- Prefer financial data sites (Yahoo Finance, Google Finance, CoinGecko) over news articles for price data
|
||
|
||
### Trading Discipline
|
||
- NEVER average down on a losing position (adding to losers is how accounts blow up)
|
||
- NEVER remove or widen a stop loss after it's set
|
||
- NEVER risk more than the position sizing formula allows — no matter how confident you are
|
||
- NEVER chase a missed entry — wait for the next setup
|
||
- If a trade thesis is invalidated before entry, cancel the order
|
||
- Respect the circuit breaker — it exists to protect the portfolio from emotional decisions
|
||
|
||
### Communication
|
||
- If the user messages you directly, pause autonomous operations and respond
|
||
- Explain your reasoning clearly — the user should understand WHY you're making each decision
|
||
- Flag high-risk situations proactively (earnings approaching, Fed meeting, unusual volatility)
|
||
- When uncertain, default to HOLD — no trade is better than a bad trade
|
||
|
||
### Accuracy Tracking
|
||
- Track every signal's outcome: did the predicted direction play out?
|
||
- Calculate rolling accuracy per signal type (technical accuracy, sentiment accuracy, etc.)
|
||
- Adjust signal weights over time based on what's actually working
|
||
- Be honest about failures — log bad trades with the SAME detail as good ones
|
||
"""
|
||
|
||
# ─── Dashboard metrics ────────────────────────────────────────────────────────
|
||
|
||
[dashboard]
|
||
|
||
[[dashboard.metrics]]
|
||
label = "Portfolio Value"
|
||
memory_key = "trader_hand_portfolio_value"
|
||
format = "text"
|
||
|
||
[[dashboard.metrics]]
|
||
label = "Total P&L"
|
||
memory_key = "trader_hand_total_pnl"
|
||
format = "text"
|
||
|
||
[[dashboard.metrics]]
|
||
label = "Win Rate"
|
||
memory_key = "trader_hand_win_rate"
|
||
format = "percentage"
|
||
|
||
[[dashboard.metrics]]
|
||
label = "Sharpe Ratio"
|
||
memory_key = "trader_hand_sharpe_ratio"
|
||
format = "number"
|
||
|
||
[[dashboard.metrics]]
|
||
label = "Max Drawdown"
|
||
memory_key = "trader_hand_max_drawdown"
|
||
format = "percentage"
|
||
|
||
[[dashboard.metrics]]
|
||
label = "Trades Executed"
|
||
memory_key = "trader_hand_trades_count"
|
||
format = "number"
|
||
|
||
[[dashboard.metrics]]
|
||
label = "Active Positions"
|
||
memory_key = "trader_hand_active_positions"
|
||
format = "number"
|
||
|
||
[[dashboard.metrics]]
|
||
label = "Signals Analyzed"
|
||
memory_key = "trader_hand_signals_generated"
|
||
format = "number"
|
||
|
||
[[dashboard.metrics]]
|
||
label = "Accuracy"
|
||
memory_key = "trader_hand_accuracy_pct"
|
||
format = "percentage"
|
||
|
||
[[dashboard.metrics]]
|
||
label = "Last Scan"
|
||
memory_key = "trader_hand_last_scan"
|
||
format = "text"
|
||
|
||
# ─── Token & Performance Metadata ─────────────────────────────────────────────
|
||
# This metadata helps users understand resource consumption before activation.
|
||
|
||
[metadata]
|
||
# How often the hand runs in continuous mode (60s loop when active)
|
||
frequency = "continuous"
|
||
# Relative token consumption: low, medium, high (based on typical usage)
|
||
token_consumption = "high"
|
||
# Whether this hand is included in default activation on first boot
|
||
default_active = false
|
||
# Warning shown when user tries to activate
|
||
activation_warning = "Trading hand runs continuously and consumes tokens. Deactivate when not trading."
|
||
|
||
# ─── Internationalization (optional) ─────────────────────────────────────────
|
||
# All i18n sections are optional. Without them, the English values above are used.
|
||
# To localize, add [i18n.LANG] sections (e.g. zh, ja, ko, es, fr, de).
|
||
# Settings translations are also optional — omit to keep English labels.
|
||
|
||
# ─── Chinese (简体中文) ────────────────────────────────────────────────────
|
||
|
||
[i18n.zh]
|
||
name = "交易 Hand"
|
||
description = "自主市场情报与交易引擎——多信号分析、对抗性多空推理、校准置信度评分、严格风控和投资组合分析"
|
||
category = "数据"
|
||
|
||
[i18n.zh.settings.trading_mode]
|
||
label = "交易模式"
|
||
description = "交易 Hand 的运行方式——仅分析、模拟交易或实盘交易"
|
||
|
||
[i18n.zh.settings.market_focus]
|
||
label = "市场关注"
|
||
description = "监控和交易的目标市场"
|
||
|
||
[i18n.zh.settings.strategy_style]
|
||
label = "策略风格"
|
||
description = "交易时间框架和策略类型"
|
||
|
||
[i18n.zh.settings.risk_per_trade]
|
||
label = "单笔风险"
|
||
description = "单笔交易允许承受的最大仓位占比"
|
||
|
||
[i18n.zh.settings.max_daily_loss]
|
||
label = "单日最大亏损"
|
||
description = "触发熔断机制的每日最大允许亏损比例"
|
||
|
||
[i18n.zh.settings.analysis_depth]
|
||
label = "分析深度"
|
||
description = "每个标的收集和交叉验证的信号数量"
|
||
|
||
[i18n.zh.settings.scan_schedule]
|
||
label = "扫描频率"
|
||
description = "扫描市场和更新分析的频率"
|
||
|
||
[i18n.zh.settings.watchlist]
|
||
label = "关注列表"
|
||
description = "要监控的标的代码列表(逗号分隔,股票: AAPL,加密货币: BTC,ETF: SPY)"
|
||
|
||
[i18n.zh.settings.initial_capital]
|
||
label = "初始资金"
|
||
description = "模拟交易或追踪的起始投资组合金额(美元)"
|
||
|
||
[i18n.zh.settings.alpaca_api_key]
|
||
label = "Alpaca API 密钥"
|
||
description = "用于实盘/模拟交易的 Alpaca API 密钥(可在 alpaca.markets 免费获取)"
|
||
|
||
[i18n.zh.settings.alpaca_secret_key]
|
||
label = "Alpaca Secret 密钥"
|
||
description = "Alpaca API 的 Secret 密钥"
|
||
|
||
[i18n.zh.settings.approval_mode]
|
||
label = "审批模式"
|
||
description = "执行实盘交易前需要用户明确审批——强烈建议开启"
|
||
|
||
# ─── Spanish (Español) ────────────────────────────────────────────────────
|
||
|
||
[i18n.es]
|
||
name = "Hand de Trading"
|
||
description = "Motor autónomo de inteligencia de mercado y trading — análisis multi-señal, razonamiento adversarial alcista/bajista, puntuación de confianza calibrada, gestión de riesgo estricta y analítica de cartera"
|
||
category = "Datos"
|
||
|
||
[i18n.es.settings.trading_mode]
|
||
label = "Modo de trading"
|
||
description = "Cómo opera el Hand de Trading — solo análisis, trading simulado o trading real"
|
||
|
||
[i18n.es.settings.market_focus]
|
||
label = "Enfoque de mercado"
|
||
description = "Qué mercados monitorear y operar"
|
||
|
||
[i18n.es.settings.strategy_style]
|
||
label = "Estilo de estrategia"
|
||
description = "Marco temporal y enfoque de la estrategia de trading"
|
||
|
||
[i18n.es.settings.risk_per_trade]
|
||
label = "Riesgo por operación"
|
||
description = "Porcentaje máximo de la cartera en riesgo en una sola operación"
|
||
|
||
[i18n.es.settings.max_daily_loss]
|
||
label = "Pérdida diaria máxima"
|
||
description = "Porcentaje máximo de pérdida diaria de la cartera antes de activar el disyuntor"
|
||
|
||
[i18n.es.settings.analysis_depth]
|
||
label = "Profundidad del análisis"
|
||
description = "Cuántas señales recopilar y cruzar por activo"
|
||
|
||
[i18n.es.settings.scan_schedule]
|
||
label = "Frecuencia de escaneo"
|
||
description = "Con qué frecuencia escanear los mercados y actualizar el análisis"
|
||
|
||
[i18n.es.settings.watchlist]
|
||
label = "Lista de seguimiento"
|
||
description = "Lista de tickers a monitorear separados por comas (acciones: AAPL, cripto: BTC, ETFs: SPY)"
|
||
|
||
[i18n.es.settings.initial_capital]
|
||
label = "Capital inicial"
|
||
description = "Valor inicial de la cartera para trading simulado o seguimiento (en USD)"
|
||
|
||
[i18n.es.settings.alpaca_api_key]
|
||
label = "Clave API de Alpaca"
|
||
description = "Clave API de Alpaca para trading real/simulado (obtener gratis en alpaca.markets)"
|
||
|
||
[i18n.es.settings.alpaca_secret_key]
|
||
label = "Clave secreta de Alpaca"
|
||
description = "Clave secreta de la API de Alpaca"
|
||
|
||
[i18n.es.settings.approval_mode]
|
||
label = "Modo de aprobación"
|
||
description = "Requerir aprobación explícita del usuario antes de ejecutar cualquier operación real — altamente recomendado"
|
||
|
||
# ─── Japanese (日本語) ────────────────────────────────────────────────────
|
||
|
||
[i18n.ja]
|
||
name = "トレーディング Hand"
|
||
description = "自律型マーケットインテリジェンス&トレーディングエンジン——マルチシグナル分析、対立的ブル/ベア推論、キャリブレーション済み信頼度スコアリング、厳格なリスク管理、ポートフォリオ分析"
|
||
category = "データ"
|
||
|
||
[i18n.ja.settings.trading_mode]
|
||
label = "トレーディングモード"
|
||
description = "トレーディングHandの動作方式——分析のみ、ペーパートレード、またはライブトレード"
|
||
|
||
[i18n.ja.settings.market_focus]
|
||
label = "マーケットフォーカス"
|
||
description = "監視・取引する対象市場"
|
||
|
||
[i18n.ja.settings.strategy_style]
|
||
label = "戦略スタイル"
|
||
description = "取引の時間軸と戦略アプローチ"
|
||
|
||
[i18n.ja.settings.risk_per_trade]
|
||
label = "1トレードあたりのリスク"
|
||
description = "1回の取引でリスクにさらすポートフォリオの最大割合"
|
||
|
||
[i18n.ja.settings.max_daily_loss]
|
||
label = "1日の最大損失"
|
||
description = "サーキットブレーカーが作動するまでの1日あたりの最大損失割合"
|
||
|
||
[i18n.ja.settings.analysis_depth]
|
||
label = "分析の深さ"
|
||
description = "銘柄ごとに収集・クロスリファレンスするシグナルの数"
|
||
|
||
[i18n.ja.settings.scan_schedule]
|
||
label = "スキャンスケジュール"
|
||
description = "市場スキャンと分析更新の頻度"
|
||
|
||
[i18n.ja.settings.watchlist]
|
||
label = "ウォッチリスト"
|
||
description = "監視するティッカーのリスト(カンマ区切り、株式: AAPL、暗号通貨: BTC、ETF: SPY)"
|
||
|
||
[i18n.ja.settings.initial_capital]
|
||
label = "初期資金"
|
||
description = "ペーパートレードまたはトラッキングの開始ポートフォリオ額(USD)"
|
||
|
||
[i18n.ja.settings.alpaca_api_key]
|
||
label = "Alpaca APIキー"
|
||
description = "ライブ/ペーパートレード用のAlpaca APIキー(alpaca.marketsで無料取得可能)"
|
||
|
||
[i18n.ja.settings.alpaca_secret_key]
|
||
label = "Alpaca Secretキー"
|
||
description = "Alpaca APIのSecretキー"
|
||
|
||
[i18n.ja.settings.approval_mode]
|
||
label = "承認モード"
|
||
description = "ライブトレード実行前にユーザーの明示的な承認を必要とする——強く推奨"
|
||
|
||
# ─── French (Français) ────────────────────────────────────────────────────
|
||
|
||
[i18n.fr]
|
||
name = "Hand de Trading"
|
||
description = "Moteur autonome d'intelligence de marché et de trading — analyse multi-signaux, raisonnement adversarial haussier/baissier, score de confiance calibré, gestion stricte des risques et analytique de portefeuille"
|
||
category = "Données"
|
||
|
||
[i18n.fr.settings.trading_mode]
|
||
label = "Mode de trading"
|
||
description = "Mode de fonctionnement du Hand de Trading — analyse seule, trading simulé ou trading réel"
|
||
|
||
[i18n.fr.settings.market_focus]
|
||
label = "Focus marché"
|
||
description = "Quels marchés surveiller et sur lesquels opérer"
|
||
|
||
[i18n.fr.settings.strategy_style]
|
||
label = "Style de stratégie"
|
||
description = "Horizon temporel et approche de la stratégie de trading"
|
||
|
||
[i18n.fr.settings.risk_per_trade]
|
||
label = "Risque par opération"
|
||
description = "Pourcentage maximum du portefeuille en risque sur une seule opération"
|
||
|
||
[i18n.fr.settings.max_daily_loss]
|
||
label = "Perte quotidienne maximale"
|
||
description = "Pourcentage maximum de perte quotidienne du portefeuille avant déclenchement du coupe-circuit"
|
||
|
||
[i18n.fr.settings.analysis_depth]
|
||
label = "Profondeur d'analyse"
|
||
description = "Nombre de signaux à collecter et recouper par actif"
|
||
|
||
[i18n.fr.settings.scan_schedule]
|
||
label = "Fréquence de scan"
|
||
description = "Fréquence de scan des marchés et de mise à jour de l'analyse"
|
||
|
||
[i18n.fr.settings.watchlist]
|
||
label = "Liste de surveillance"
|
||
description = "Liste de tickers à surveiller séparés par des virgules (actions : AAPL, crypto : BTC, ETF : SPY)"
|
||
|
||
[i18n.fr.settings.initial_capital]
|
||
label = "Capital initial"
|
||
description = "Valeur initiale du portefeuille pour le trading simulé ou le suivi (en USD)"
|
||
|
||
[i18n.fr.settings.alpaca_api_key]
|
||
label = "Clé API Alpaca"
|
||
description = "Clé API Alpaca pour le trading réel/simulé (obtenir gratuitement sur alpaca.markets)"
|
||
|
||
[i18n.fr.settings.alpaca_secret_key]
|
||
label = "Clé secrète Alpaca"
|
||
description = "Clé secrète de l'API Alpaca"
|
||
|
||
[i18n.fr.settings.approval_mode]
|
||
label = "Mode d'approbation"
|
||
description = "Exiger l'approbation explicite de l'utilisateur avant d'exécuter toute opération réelle — fortement recommandé"
|
||
|
||
# ─── German (Deutsch) ────────────────────────────────────────────────────
|
||
|
||
[i18n.de]
|
||
name = "Trading-Hand"
|
||
description = "Autonomer Marktintelligenz- und Trading-Motor — Multi-Signal-Analyse, adversariales Bull/Bear-Reasoning, kalibriertes Konfidenz-Scoring, striktes Risikomanagement und Portfolio-Analytik"
|
||
category = "Daten"
|
||
|
||
[i18n.de.settings.trading_mode]
|
||
label = "Trading-Modus"
|
||
description = "Betriebsmodus des Trading-Hand — nur Analyse, simuliertes Trading oder Live-Trading"
|
||
|
||
[i18n.de.settings.market_focus]
|
||
label = "Marktfokus"
|
||
description = "Welche Märkte überwacht und gehandelt werden"
|
||
|
||
[i18n.de.settings.strategy_style]
|
||
label = "Strategiestil"
|
||
description = "Zeithorizont und Ansatz der Handelsstrategie"
|
||
|
||
[i18n.de.settings.risk_per_trade]
|
||
label = "Risiko pro Trade"
|
||
description = "Maximaler Prozentsatz des Portfolios, der bei einem einzelnen Trade riskiert wird"
|
||
|
||
[i18n.de.settings.max_daily_loss]
|
||
label = "Maximaler Tagesverlust"
|
||
description = "Maximaler täglicher Portfolioverlust in Prozent, bevor der Circuit Breaker auslöst"
|
||
|
||
[i18n.de.settings.analysis_depth]
|
||
label = "Analysetiefe"
|
||
description = "Anzahl der pro Asset zu sammelnden und gegenzuprüfenden Signale"
|
||
|
||
[i18n.de.settings.scan_schedule]
|
||
label = "Scan-Zeitplan"
|
||
description = "Wie oft Märkte gescannt und Analysen aktualisiert werden"
|
||
|
||
[i18n.de.settings.watchlist]
|
||
label = "Watchlist"
|
||
description = "Kommagetrennte Liste der zu überwachenden Ticker (Aktien: AAPL, Krypto: BTC, ETFs: SPY)"
|
||
|
||
[i18n.de.settings.initial_capital]
|
||
label = "Anfangskapital"
|
||
description = "Anfänglicher Portfoliowert für simuliertes Trading oder Tracking (in USD)"
|
||
|
||
[i18n.de.settings.alpaca_api_key]
|
||
label = "Alpaca API-Schlüssel"
|
||
description = "Alpaca API-Schlüssel für Live-/Papierhandel (kostenlos auf alpaca.markets erhältlich)"
|
||
|
||
[i18n.de.settings.alpaca_secret_key]
|
||
label = "Alpaca Secret-Schlüssel"
|
||
description = "Secret-Schlüssel der Alpaca API"
|
||
|
||
[i18n.de.settings.approval_mode]
|
||
label = "Genehmigungsmodus"
|
||
description = "Ausdrückliche Benutzergenehmigung vor der Ausführung von Live-Trades erforderlich — dringend empfohlen"
|
||
|
||
# ─── Korean (한국어) ────────────────────────────────────────────────────
|
||
|
||
[i18n.ko]
|
||
name = "트레이딩 Hand"
|
||
description = "자율 시장 인텔리전스 및 트레이딩 엔진 — 다중 신호 분석, 대립적 매수/매도 추론, 보정된 신뢰도 평가, 엄격한 리스크 관리 및 포트폴리오 분석"
|
||
category = "데이터"
|
||
|
||
[i18n.ko.settings.trading_mode]
|
||
label = "트레이딩 모드"
|
||
description = "트레이딩 Hand의 운영 방식 — 분석 전용, 모의 거래 또는 실거래"
|
||
|
||
[i18n.ko.settings.market_focus]
|
||
label = "시장 관심"
|
||
description = "모니터링 및 거래할 대상 시장"
|
||
|
||
[i18n.ko.settings.strategy_style]
|
||
label = "전략 스타일"
|
||
description = "거래 시간 프레임 및 전략 유형"
|
||
|
||
[i18n.ko.settings.risk_per_trade]
|
||
label = "거래당 리스크"
|
||
description = "단일 거래에서 허용되는 최대 포트폴리오 비율"
|
||
|
||
[i18n.ko.settings.max_daily_loss]
|
||
label = "일일 최대 손실"
|
||
description = "서킷 브레이커 발동 전 허용되는 일일 최대 손실 비율"
|
||
|
||
[i18n.ko.settings.analysis_depth]
|
||
label = "분석 깊이"
|
||
description = "자산별 수집 및 교차 검증할 신호 수"
|
||
|
||
[i18n.ko.settings.scan_schedule]
|
||
label = "스캔 일정"
|
||
description = "시장 스캔 및 분석 업데이트 주기"
|
||
|
||
[i18n.ko.settings.watchlist]
|
||
label = "관심 목록"
|
||
description = "모니터링할 종목 코드 목록 (쉼표로 구분, 주식: AAPL, 암호화폐: BTC, ETF: SPY)"
|
||
|
||
[i18n.ko.settings.initial_capital]
|
||
label = "초기 자본"
|
||
description = "모의 거래 또는 추적을 위한 시작 포트폴리오 금액 (USD)"
|
||
|
||
[i18n.ko.settings.alpaca_api_key]
|
||
label = "Alpaca API 키"
|
||
description = "실거래/모의 거래용 Alpaca API 키 (alpaca.markets에서 무료 발급)"
|
||
|
||
[i18n.ko.settings.alpaca_secret_key]
|
||
label = "Alpaca 시크릿 키"
|
||
description = "Alpaca API 시크릿 키"
|
||
|
||
[i18n.ko.settings.approval_mode]
|
||
label = "승인 모드"
|
||
description = "실거래 실행 전 사용자의 명시적 승인 필요 — 강력히 권장"
|