BTC Short-Put Backtest

Sell weekly, hold to expiry — systematic strategy backtester
Strike = (1 − offset%) × Close(entry)
Expiry-only
Off
Off

No data loaded

Upload a CSV file with columns: date, open, high, low, close, volume

Definitions & Methodology
Put Strike (K)
K = (1 − 0.0500) × Close(entry date), where d is the selected strike offset. Current d = 5.0%. The put is 5.0% out-of-the-money at entry.
Expiry Resolution
Target expiry = entry date + 7 calendar days. If that date exists in the dataset, it is used. Otherwise, the next available date after the target is used. If no later date exists, the last date in the dataset is used.
Put Payoff & PnL
Payoff (USD) = max(K − Close(expiry), 0). This is the intrinsic value of the put at expiry. PnL = Premium − Payoff.
Max Intra-Trade Drawdown
For puts: max over window of max(K − Low(day), 0). For calls: max over window of max(High(day) − Kc, 0). Recovery = Drawdown − Payoff.
Breach Mode Toggle
Expiry-only: Breach is flagged only if Close(expiry) < K (puts) or Close(expiry) > Kc (calls). Intraday-aware: Additionally flags if any daily Low < K (puts) or any daily High > Kc (calls). Payoff calculation is unchanged in both modes.