File size: 2,229 Bytes
2355d93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"""Generate entirely synthetic inputs; no network, brokerage or portfolio reads."""
from datetime import date, timedelta
import importlib.util
import json
from pathlib import Path
import random

ROOT = Path(__file__).resolve().parents[1]
spec = importlib.util.spec_from_file_location('exit_model', ROOT / 'model.py')
model = importlib.util.module_from_spec(spec)
spec.loader.exec_module(model)


def sample():
    today = date(2026, 10, 28)
    rng = random.Random(17)
    dates = [today - timedelta(days=i) for i in range(90, 0, -1)
             if (today - timedelta(days=i)).weekday() < 5]
    price = 47.0
    history = []
    for day in dates:
        price *= model.math.exp(rng.choice([-.035, -.018, -.008, .004, .012, .022, .04]))
        history.append(dict(date=day.isoformat(), close=round(price, 6)))

    def quote(strike, expiry, iv=.65, delay=0):
        mid = model.call_price(50, strike, (date.fromisoformat(expiry)-today).days/365, iv)
        return dict(strike=strike, expiry=expiry,
                    bidPrice=round(max(.01, mid-.10), 4), askPrice=round(mid+.10, 4),
                    bidSize=20, askSize=20, delay=delay, isHalted=False, validated=True)

    return dict(
        sample_notice='Entirely fictional inputs; no real ticker, trades, quotes or account data.',
        symbol='DEMO', account='SYNTHETIC', as_of=today.isoformat(),
        captured_at='2026-10-28T16:00:00+00:00',
        initial_purchase_price_usd=30, shares=100, contracts=1,
        stock=dict(bidPrice=49.95, askPrice=50.05, delay=0, isHalted=False),
        held=quote(40, '2027-01-15'), history=history,
        candidates=[quote(52, '2026-11-20'), quote(55, '2026-12-18'),
                    quote(60, '2027-03-19'), quote(49, '2026-12-18'),
                    quote(55, '2027-01-15', delay=15)],
        opening_reference=dict(stock_total_usd=3000, stock_cost_usd=3005,
            stock_fees_usd=5, historical_option_net_usd=700,
            prior_realized_option_usd=100, active_realized_option_usd=200,
            history_status='complete'))


if __name__ == '__main__':
    (Path(__file__).parent/'sample_input.json').write_text(json.dumps(sample(), indent=2)+'\n')
    print('Wrote synthetic sample_input.json')