Amanah Trader

Autonomous Shariah-Compliant Options Agent · Alpaca Hackathon 2026
Connecting…
Account Equity
$—
vs $100,000.00 starting capital
Cash Holdings
$—
Buying Power: —
Trading Activity
Total decisions
Today
Submitted — Would submit — Rejected —
P&L Attribution — Premium vs MTM
Premium Collected
$—
Broker-confirmed from open positions
Equity Δ vs $100k
$—
MTM unrealized: —
Buying Power vs Collateral
Collateral held $—Buying Power $—
Open positions: —
Equity = $100k + Premium − MTM loss. Premium is realized only if puts expire OTM Thu. Buying Power = Alpaca `buying_power` (free to open).
Live Equity Curve
No data yet — the curve appears once the scheduler starts polling.
Latest: High: Low: 0 points
Compliance Gates
Shariah Screen
Curated 15-symbol universe, MSCI Islamic scoring
Active
Structure Gate
Cash-secured, DTE & OTM constraints
Active
Gharar Gate
Two-sided price, bounded spread/expiry/IV, delivery assured
Active
Maysir Gate
Funded commitment to acquire, not a wager
Active
Account Riba Gate
Cash-funded, no borrowing, no interest-bearing holdings
Active
Risk Limits
Position-size cap, orders/day, daily-loss cap
Active
Autonomy
Scheduler runs 24/7 server-side
Full
Trades The Agent Refused
Every order blocked by a gate, with the rule that blocked it. No human was involved in any of these.
Loading refusals…
Adversarial Gate Stress Test Offline · deterministic · not live trades
20 scenarios run directly against the real gate functions in agent/gates/ — no mocks, no network, no clock; byte-identical every run. The production symbol universe is already Shariah-screened, so a live Shariah/Gharar/Maysir/Riba refusal is rare by design — this is where each gate is shown refusing on demand, including the exact scenario a judge would ask for first: a profitable trade on an unlisted symbol (row 1).
#GateScenarioSituationVerdictReason
1SHARIAHProfitable but unlistedTSLA put paying $12.00/share — richest premium on the boardFAILnot_on_curated_list
2RISKPosition too largeMSFT 490 put — $49,000 collateral = 49% of equityREJECTposition_size_cap
3STRUCTUREBook already 2× levered8th cash-secured put with $201,500 already committed on $100,273 cashREJECTinsufficient_cash_collateral
4RIBAMargin-financed accountAccount carrying $150,000 of obligations against $100,000 cashREJECTpositions_financed_on_margin_not_cash
5RIBAOverdrawn accountAccount overdrawn by $5,000 — a broker loanREJECTnegative_cash_balance_is_an_interest_bearing_loan
6RIBAShort equity held100 shares of AAPL sold short (borrowed stock)REJECTshort_equity_position_requires_borrowing
7RIBAInterest-bearing holding500 shares of TLT (long-duration Treasury ETF)REJECTinterest_bearing_instrument_held
8RANKERMarket crash −20%Underlying gaps −20% overnight; strikes now 19–24% ITMREJECT0 of 3 contracts eligible — outside the 2–7% OTM band
9GHARARIlliquid contractBid $1.00 / ask $3.00 — 100% spread on a thin contractREJECTspread_too_wide_price_ambiguous (cap 15% of mid)
10RISKVolatility spike3% OTM put bids $9.00; agent sized to 5 contractsREJECTposition_size_cap — 48.5% of equity
11RISKDaily loss breachAccount already −4% on the day; a new trade is proposedREJECTdaily_loss_cap
12GHARAROne-sided quoteContract quoted with no ask — a one-sided marketREJECTno_live_ask_price_is_one_sided
13GHARARUnpriceable volatilityImplied volatility 350% — the market cannot price itREJECTimplied_volatility_beyond_assessable_range
14GHARARCannot deliver$30,750 delivery obligation against $1,000 of cashREJECTdelivery_capacity_not_assured
15MAYSIRNaked putUncollateralised short put — no capacity to take deliveryREJECTposition_is_naked_not_a_funded_commitment
16MAYSIRNominally securedCash 'covers' it, but $94,500 is already committedREJECTposition_is_naked_not_a_funded_commitment
17MAYSIRStrike above marketStrike $320 against $316 spot — assignment is near-certainREJECTstrike_at_or_above_market_not_an_acquisition_discount
18MAYSIRZero-day expirySame-session expiry — a bet on today's closeREJECTexpiry_too_short_to_be_a_commitment
19MAYSIRUnscreened underlyingPut on a business that failed the activity screenREJECTunderlying_not_a_permissible_asset_to_acquire
20ALL SIXNormal conditionsAAPL 3% OTM put, $1.20 bid, 2 DTE, $9,700 collateral on $100kPASSall six gates PASS
19 refused, 1 allowed. Generated by scripts/gate_stress.py, calling the real gate functions — nothing here is mocked, so this table cannot drift from the code it describes. Full report: docs/backtest/gate-stress-report.md.
Decision Audit Trail
Loading decisions…