A single continuing account
The simulated account begins with AUD 5,000. There are no additional deposits, margin loans, existing shares or automatic recapitalisations. Each position is capped at AUD 5,000 and the settled cash actually available after costs. Whole contracts only; unused cash is permitted. All results are simulated, never brokerage executions. No code places an order.
Research and selection
Compare at least three distinct liquid US ETF/stock candidates. Require a current thesis, opposing case, timeframe, pricing argument, alternative-to-cash analysis, issuer/event/ex-dividend review, underlying trend/volume/realised volatility and dated sources. Historical support/resistance is a measured price range, not a promise. IV rank is not produced without a verified history. Delta is not a measured real-world probability. No numerical probability of profit or expected value is inferred.
This implementation supports purchased, standard 100-share calls or puts, 45–120 calendar days to expiry. It rejects uncovered shorts and all short legs, including debit spreads, until funded assignment handling exists. It does not use 0DTE or a single binary-event thesis. A reviewed structured research packet supplies the narrative; deterministic code calculates the ticket, sizing and scenarios. No model API is needed and retrieved text is treated as data, never instructions. Without a complete packet and verified prices, the next edition is NO TRADE.
Snapshots and timestamps
Each captured snapshot retains source, retrieval timestamp, bid and ask timestamps, UTC timezone, real-time/delayed/closing classification and a content hash. A web retrieval time is not a quote time. Context-only observations may have a date without an exact clock; those are ineligible for fills. The raw vendor response remains in the operator's private storage. Public output excludes licensed raw chains unless the operator explicitly configures redistribution permission.
An actionable publication needs real-time underlying and option bid/ask snapshots no older than five minutes and no more than 60 seconds apart. Quotes are rechecked immediately before publication. Closing or delayed observations can inform research only; this implementation conservatively publishes NO TRADE outside regular hours, rather than publishing a provisional executable ticket. Greek timestamps are separate (Tradier describes hourly updates). Dated OI, volume, available size, standard deliverable and dated FX are mandatory.
Entry and sizing
A proposal is not a fill. The first eligible captured observation strictly after publication can trigger entry, at the ask, while the ask is at or below the published limit. The ask size must cover the entire quantity; there are no partial or midpoint fills. The default validity ends at the close of the second trading session, counting the publication session if still open. An expired proposal is unfilled. If capital has changed or a gate fails, there is no fill.
The size calculation reserves an estimated USD 0.85 per contract on each side, and 0.5% FX conversion cost per direction. These are configurable estimates, not claimed broker tariffs. Changing the configuration affects new proposals only; published terms and fee assumptions remain frozen. Bid/ask spread costs are already incorporated in quoted fills and are never charged twice. No interest or tax is booked. FX is USD per AUD: USD value divided by the rate gives AUD value. Currency transactions and fees remain separate ledger events.
Monitoring and exits
Run once per trading session, 30 minutes before the exchange's actual close: normally 15:30 America/New_York, or 12:30 on a 13:00 early close. A half-hour UTC scheduler covers daylight-saving changes; the exchange calendar selects the eligible run. Late jobs more than ten minutes past the target record a missed observation rather than pretending to have observed the target time. An explicit manual monitoring run captures its real time and is labelled manual.
Evaluate the published profit percentage, loss percentage, underlying thesis-price threshold, mandatory closing date and monthly rollover only against observations actually captured. Sell at the first eligible observed bid with sufficient bid size. Do not infer fills from the underlying high/low or backfill a threshold price. Missing observations, insufficient size and stale quotes remain visible. A triggered close with no eligible quote remains open and blocks a new position. No rule guarantees the intended loss threshold.
Close at least five exchange sessions before expiry. The model never elects exercise. A missed mandatory close, expiry, assignment, adjusted deliverable or corporate-action problem is an unresolved exception requiring a timestamped operator correction supported by evidence; no invented zero value or assumed share financing is posted. New trades remain blocked. Any event affecting the thesis requires a timestamped management notice; no backdated decisions.
Settlement and cash
Option sales settle the next exchange session (T+1 in this model). Sale proceeds are counted in equity but not buying power until settlement. USD cash is tracked separately and converted back to AUD only using a captured, dated FX rate after settlement. No new entry is permitted until prior USD proceeds have been settled and converted, keeping cost attribution explicit. This conservative rule can mean a month with no new trade after a rollover exit.
Valuation and metrics
Open long options are marked to the observed bid less estimated closing fees. USD cash and liquidation value are translated at a dated FX rate, allowing the configured conversion cost. Missing/stale valuations are unknown, never zero. If a required component is unknown, total equity, return and drawdown are unavailable; verified cash is shown separately. Last observations remain labelled with their date.
Net account P&L equals current AUD equity minus the original AUD 5,000; return divides that difference by AUD 5,000. Realised trading results use recorded entries, exits, fees and FX. At exit, an AUD result translated at exit FX is a marked estimate until settlement conversion; a subsequent reconciliation event freezes the realised AUD result. Open unrealised P&L is liquidation value minus the original cost basis. Return on capital at risk uses total committed AUD including entry/exit fee reserve and entry FX cost.
Win rate includes only closed entered trades with reconciled AUD outcomes; NO TRADE and unfilled recommendations are counted separately. Drawdown uses available verified equity observations, never unseen intraday prices. No standalone trade returns are compounded. No historical track record is constructed for the launch.
Immutable publication and operations
The hash-linked JSONL ledger is append-only. Published article text, fees, trade terms, research and quote references are hashed and frozen. Changes use dated correction/management events. Each monthly recommendation has a unique key; a file lock and CI concurrency group prevent concurrent writers. The ledger is the source of truth, including recovery if a process stops after committing an edition event but before writing its derived page file.
Monthly jobs update the prior recommendation before generating the new one. The normal publication date is the first US trading session of the month, at the monitoring time. The initial launch is an explicit exception. Later scheduled runs fetch fresh data, compare supplied candidate evidence and regenerate a new dated article; missing inputs produce a specific NO TRADE edition. A failure never rewrites a valid edition or refreshes a market quote timestamp. The operational log records failed attempts and last successful pipeline and data updates separately.
Scheduling and hosting are independent. A workflow file alone does not mean automation is active. See the site status and operator README for deployment prerequisites.