Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
An autonomous trading agent. Built with the eve agent
framework and Convex for persistent memory, trading a real
Trading 212 ISA account.
On a daily schedule, the agent recalls its memory (past trades, lessons, risk state),
checks and manages open positions, reads market news and prices, forms a small number of
trade theses, runs each thesis through a red-team check and a hard risk gate, submits
orders, then posts a plain-English summary to Slack. See agent/instructions.md for the
full step-by-step cycle and agent/lib/risk.ts for the risk gate.README 전문 보기 ↗An autonomous trading agent. Built with the eve agent framework and Convex for persistent memory, trading a real Trading 212 ISA account.
On a daily schedule, the agent recalls its memory (past trades, lessons, risk state),
checks and manages open positions, reads market news and prices, forms a small number of
trade theses, runs each thesis through a red-team check and a hard risk gate, submits
orders, then posts a plain-English summary to Slack. See agent/instructions.md for the
full step-by-step cycle and agent/lib/risk.ts for the risk gate.
eve runs the agent loop and schedules (agent/schedules/), calling tools
(agent/tools/) that talk to Trading 212 (agent/lib/t212.ts), market data providers,
and Convex (convex/memory.ts) for durable state (trade history, lessons, risk state).
Reports and alerts go to Slack.
.nvmrc) and corepack enable.corepack [email protected] install..env.example to .env.local and fill in real values. Read every comment in
that file first, especially the safety switches section.Run these before trusting any change:
corepack [email protected] run typecheck
corepack [email protected] run test
corepack [email protected] run build
pnpm eval
A pure, deterministic replay engine (agent/lib/backtest.ts) steps day-by-day over
historical candles, enters scripted signals, and reports realized PnL, win rate, max
drawdown, and alpha vs buy-and-hold SPY. It reuses the production pure modules with no logic
duplication: checkExits (exits.ts) for stop-loss / take-profit / max-hold, notionalToShares
(execution.ts) for sizing, and computeAlpha (benchmark.ts) for alpha.
Look-ahead safety is guaranteed and unit-tested: a signal generated on day T fills at day T+1's OPEN, never day T's close. Exits are evaluated against each day's close.
Run it against a local JSON fixture (never touches Convex or the live account):
corepack [email protected] run backtest # uses the bundled sample fixture
corepack [email protected] run backtest path/to/fixture.json # your own candles + signals
The fixture format is in scripts/fixtures/backtest-sample.json: startingEquity,
defaultNotional, spreadBps, fxBps, signals ({ ticker, date, notional? }),
priceSeriesByTicker, and spySeries.
Set TIINGO_API_KEY in .env.local, then pass --tickers to fetch real adjusted daily
candles for a basket plus a SPY benchmark over a date range:
export $(grep -v '^#' .env.local | xargs) # load TIINGO_API_KEY into the shell
corepack [email protected] run backtest -- --tickers AAPL,MSFT --spy SPY --from 2024-01-01 --to 2025-01-01
Each ticker gets one buy-and-hold signal on the first session in range, so the run reports how
a naive equal-weight basket would have done vs SPY on real prices. Candles come from Tiingo's
daily-prices endpoint and use the ADJUSTED OHLC (adjOpen/adjHigh/adjLow/adjClose) so
splits and dividends are already handled (agent/lib/tiingo.ts).
TIINGO_API_KEY is needed locally for backtests, and in production by the funnel schedules to score outcomes. The live trading cycle and CI evals do
not use it. Without --tickers the CLI stays in offline fixture mode, so nothing here touches
the network by default.
Two env vars control whether this agent can touch real money (see agent/lib/state.ts):
DRY_RUN - defaults ON (anything other than the literal string "false" is treated as
dry-run). While on, orders are simulated, not sent to the broker.TRADING212_ENV - defaults to "demo" (paper trading) wherever it is read. Set to
"live" to point at the real account.REQUIRE_APPROVAL=true additionally requires a Slack approval before each real order,
but only takes effect once DRY_RUN=false.
Only do this once you have tested thoroughly in DRY_RUN=true / TRADING212_ENV=demo.
TRADING212_ENV=live in your deployment's environment variables.DRY_RUN=false.Real orders will only be placed once both TRADING212_ENV=live and DRY_RUN=false are
set together.
To stop real-money trading immediately:
DRY_RUN=true.This is the fastest way to halt order placement without touching any other config. Orders will go back to being simulated instead of sent to the broker.