股市
MARKET FUTURES
状态:🟢 现行 · 最后核对 2026-08-19
第三批「开第二市场」的最小探针:先只做一个合约,测「有没有人要方向下注」。 2026-08-19 · 🟢 现行(已实现上线)
定位
押「源石指数」未来 3 天的涨跌方向。现货市场只能做多(买了才能卖), 做空是这里给的新能力——看跌也能赚。
- 单合约:只押源石指数一个标的,不押个股(个股期货 = 扩展项)。
- 全保证金、无杠杆:最大亏损 = 你压的保证金,不会爆仓、不会负余额。 杠杆被刻意拆出去(roadmap 红标的「缓一缓」),别跟着期货偷偷进来。
- 现金结算:到期按指数涨跌幅度结算盈亏,没有实物交割、没有复杂持仓。
核心机制
开仓:选方向(看涨 long / 看跌 short)+ 压保证金(≥ MIN_STAKE)
扣保证金,记 entry_index(开仓时源石指数)、entry_day、expiry_day(+3 天)
结算(到期或手动平仓):
ret = (final_index - entry_index) / entry_index
pnl = collateral × ret × 方向(long=+1 / short=-1) # CONTRACT_MULTIPLIER=1,无杠杆
落袋 = collateral + pnl → 全部退回余额(credit)
亏损上限 = collateral(pnl 封底 -collateral;指数恒正,实际到不了这个封底)
- 到期 = 懒结算(同 loans/portfolio):读期货状态时若
今天 ≥ expiry_day就结算, 幂等,不跑定时任务。 - 手动平仓 = 提前结算,按当时指数立即结算(不用憋到到期)。
- 同时一笔:没结算不能再开(和借贷一致,防「多方向对冲自己」)。
数据契约
data/users/{u}/market/futures.json(按用户):
{
"active": { # 当前唯一一笔未结算的合约,null = 无
"direction": "long", # long 看涨 / short 看跌
"collateral": 1000, # 保证金
"entry_index": 1003.5, # 开仓时源石指数
"entry_day": "2026-08-19",
"expiry_day": "2026-08-22" # entry + 3 天
},
"history": [ # 已结算的记录
{"direction": "long", "collateral": 1000, "entry_index": 1003.5,
"settle_index": 1050.0, "pnl": 46.3, "entry_day": "...", "settle_day": "..."}
]
}
API(挂在 /market/,登录才可见)
GET /market/futures—— 当前合约状态 + 当前源石指数(读即懒结算)POST /market/future/open——{direction, amount}开仓POST /market/future/close—— 平仓(按当前指数提前结算)
前端
行情页「持仓」tab 加一张「源石期货」卡:当前指数 + 未结算合约(方向/保证金/ 开仓价/到期日 + 平仓按钮)或开仓表单(方向 + 金额)+ 结算记录。
已定决策
- 单标的 = 源石指数(不押个股;
CONTRACT_MULTIPLIER = 1.0无杠杆) - 期限 3 天(
TERM_DAYS = 3) - 全保证金,亏损封顶 = 保证金,不 repo、不追缴
- 同时一笔,可提前平仓
- 现金结算,落袋 = collateral + pnl 退回余额
未决 / 待讨论
- 绝对数字先跑初值:
TERM_DAYS/MIN_STAKE/CONTRACT_MULTIPLIER都是初值, 等「源石期货」跑出真实参与度再校调(同 loans 的初值策略)。 - 源石指数是否改名「泰拉综指」:现在源石既是大盘指数名、又是期货标的, 语义上源石更该是「商品」。改名的价值是 lore 一致性,成本是动前端文案 + 已有用户认知——先不改,期货跑顺再议。
- 个股期货:24 家公司各开合约 = 单标的期货的扩展,波动更大、更有故事, 但多 24 个选择 UI。等单合约验证「方向下注有人玩」再上。
- 杠杆:roadmap 红标,单独隔离,最后再看,不并进这里。