AUTO·INVEST 观察模式

CONFIG

Short Strangle 配置

运行时状态

环境变量拥有最高优先级,以下值只读且不会写回 YAML。只读:环境变量运行时设置;敏感值则单独标为不回显。

OpenD 127.0.0.1:11111 只读:环境变量运行时设置
Web 127.0.0.1:8765 只读:环境变量运行时设置
实时送单总闸 开启 只读:环境变量运行时设置
数据库 sqlite:///./auto_invest.db 只读:环境变量运行时设置
Futu 交易口令 已配置 敏感值不回显
飞书应用凭证 已配置 敏感值不回显

百分比输入示例:6 表示 6%;标为“小数比例”的字段使用 0.06 表示 6%。运行时状态中的环境变量为只读设置,不会写回配置文件。

标的池5 项

标的池

只扫描这些指数/ETF 的双边 Strangle;指数桶只以 IVR 判断波动率成熟度。

配置键(仅供审计) universe.strangle_universe.index

只扫描这些个股的双边 Strangle;个股可由 IVR 或 IVP 任一条件入场。

配置键(仅供审计) universe.strangle_universe.stock

无论属于哪个候选桶,命中黑名单的标的都不会生成新开仓建议。

配置键(仅供审计) universe.blacklist

仅决定历史单腿仓位的退出规则与报表分类;不参与新的 Put 入场,Covered Call 由下方专用标的表管理。

配置键(仅供审计) universe.wheel_tickers

这些货币基金或短债 ETF 的市值会计入现金等价物展示,不改变交易保证金口径。

配置键(仅供审计) universe.cash_equivalents
入场条件9 项

入场条件

高风险

Put 与 Call 两腿都必须落在该绝对 Delta 区间内。

配置键(仅供审计) strategy.strangle.delta_target
单位:小数值,范围 0.01-0.49
高风险

在允许区间内,优先选择绝对 Delta 最接近该值的两腿。

配置键(仅供审计) strategy.strangle.delta_sweet

扫描时优先选择距离该 DTE 最近且两腿可用的到期日。

配置键(仅供审计) strategy.strangle.dte_target

指数必须达到该 IV Rank;个股达到 IVR 或 IVP 任一门槛即可。

配置键(仅供审计) strategy.strangle.ivr_min
小数比例

仅个股生效;用于避免历史尖峰压低 IVR 时漏掉当前高波动机会。

配置键(仅供审计) strategy.strangle.ivp_min
小数比例

同一标的最近一次 Strangle 开仓后的最短等待时间。

配置键(仅供审计) strategy.strangle.repeat_cooldown_days
高风险

0 表示挂中价;提高会降低卖出限价以换取更快成交。

配置键(仅供审计) strategy.strangle.sell_price_buffer_pct
小数比例

IVR/IVP 波动率分与年化权利金分的权重,总和必须等于 1。

配置键(仅供审计) strategy.strangle.score_weights
权重范围 0-1;总和 = 1

在该时间内复用最近一次 Strangle 扫描结果,避免重复触发 Futu 限频。

配置键(仅供审计) strategy.strangle.preview_reuse_sec
保证金与风险10 项

保证金与风险

高风险

期权初始保证金占可用净值的总上限;0 会关闭这道总闸。

配置键(仅供审计) strategy.risk.max_initial_margin_pct
小数比例
高风险

每行是 VIX 下界与该环境下允许的保证金比例,实际值不超过总上限。

配置键(仅供审计) strategy.risk.margin_cap_vix_bands
VIX 下界(0-100)保证金上限(小数比例 0.01-1)
高风险

保证金已超动态上限时,用该 VIX 值切换低波动和高波动豁免数量。

配置键(仅供审计) strategy.strangle.margin_grace_vix_threshold
VIX
高风险

低于 VIX 分界时,保证金超闸仍可持有的 Strangle 最大组数。

配置键(仅供审计) strategy.strangle.margin_grace_count_low_vix
高风险

达到 VIX 分界时,保证金超闸仍可持有的 Strangle 最大组数。

配置键(仅供审计) strategy.strangle.margin_grace_count_high_vix
高风险

账户净值较昨收跌幅达到该比例后暂停新增风险;0 表示关闭。

配置键(仅供审计) settings.auto_trade.circuit_breaker_daily_drawdown_pct
小数比例

监控富途账户的保证金缓冲率并按警告、严重和恢复阈值推送。

配置键(仅供审计) settings.auto_trade.enable_margin_monitor

保证金缓冲率下穿该值时推送一次警告。

配置键(仅供审计) settings.auto_trade.margin_buffer_warn

保证金缓冲率下穿该值时立即推送严重告警。

配置键(仅供审计) settings.auto_trade.margin_buffer_critical

缓冲率回升到该值后重新允许下一次阈值告警。

配置键(仅供审计) settings.auto_trade.margin_buffer_rearm
整组管理9 项

整组管理

两腿合计剩余价值相对开仓权利金下降到该盈利比例时建议整组平仓。

配置键(仅供审计) strategy.strangle.profit_target_pct
小数比例

DTE 小于等于该值时进入整组平仓或移仓评估。

配置键(仅供审计) strategy.strangle.manage_dte
DTE

进入管理窗口后,整组盈利至少达到该金额才建议直接平仓,避免手续费侵蚀。

配置键(仅供审计) strategy.strangle.close_profit_floor_usd
USD
高风险

受威胁一侧保留,另一侧滚近时将新腿 Delta 对齐到该值。

配置键(仅供审计) strategy.strangle.defend_target_delta
高风险

防守候选新腿超过该绝对 Delta 时拒绝,防止为了净收滚得过近。

配置键(仅供审计) strategy.strangle.defend_max_delta

每个到期周期每一侧允许成功防守的次数上限。

配置键(仅供审计) strategy.strangle.defend_max_per_side

买回旧腿并卖出新腿后的每股净收必须至少达到该值。

配置键(仅供审计) strategy.strangle.roll_min_net_credit
USD/股

Roll 先买回旧腿;超过该时间仍未确认成交就撤单且不卖新腿。

配置键(仅供审计) strategy.strangle.buyback_fill_timeout_sec

卡片展示的整组移仓方案数量,按两腿合计绝对 Delta 排序。

配置键(仅供审计) strategy.strangle.rollout_choices
Covered Call12 项

Covered Call

关闭后不再为专用标的生成新的备兑开仓建议,已有仓位仍按管理规则检查。

配置键(仅供审计) strategy.covered_call.enabled

低于该 IV Rank 时不生成新的 Covered Call 开仓建议。

配置键(仅供审计) strategy.covered_call.ivr_min
小数比例

达到该 IV Rank 后不受 IVR 同时在场上限约束,但仍受其他开仓闸门限制。

配置键(仅供审计) strategy.covered_call.ivr_unlimited
小数比例
高风险

IVR 介于最低门槛和不限量阈值时,券商短 Call 与待处理 Call 合计的最大张数。

配置键(仅供审计) strategy.covered_call.max_concurrent_contracts_mid_ivr
高风险

候选 Call 的绝对 Delta 必须落在此区间,控制被行权概率和权利金。

配置键(仅供审计) strategy.covered_call.delta_target
单位:小数值,范围 0-0.49
高风险

在允许区间内优先选择最接近此 Delta 的候选 Call。

配置键(仅供审计) strategy.covered_call.delta_sweet

在合规到期日中优先选择最接近此 DTE 的月度 Call。

配置键(仅供审计) strategy.covered_call.dte_target

只在这个到期天数范围内选择候选,且下界必须晚于管理窗口。

配置键(仅供审计) strategy.covered_call.dte_range
单位:天,范围 1-365
高风险

同一美东自然周内已成交与待处理的 Covered Call 合约合计上限。

配置键(仅供审计) strategy.covered_call.max_contracts_per_symbol_per_week

买回成本相对开仓权利金下降到此比例时,生成止盈管理动作。

配置键(仅供审计) strategy.covered_call.profit_target_pct
小数比例

到期天数不高于此值时,只有扣费后仍为正收益才建议平仓。

配置键(仅供审计) strategy.covered_call.manage_dte
高风险

每行设置可写 Call 的持股保留比例,以及当日上涨后释放保留股的阈值;表内百分比按百分数填写。

配置键(仅供审计) strategy.covered_call.symbols
标的保留股票 (%)上涨释放阈值 (%)
历史仓位退出7 项

历史仓位退出

尚未退出的历史单腿仓位达到该收益比例时建议买入平仓;不作用于 Strangle 整组止盈。

配置键(仅供审计) strategy.close_rules.take_profit_pct
小数比例

可选的收益阈值与平仓比例;留空时只使用上方单一止盈线。

配置键(仅供审计) strategy.close_rules.take_profit_tiers
收益阈值(小数比例 0-1)平仓比例(小数比例 0-1)

历史单腿仓位 DTE 小于等于该值时推送退出决策卡。

配置键(仅供审计) strategy.close_rules.manage_dte
DTE

临期阈值落在周末或休市日时,提前到最近交易日提醒。

配置键(仅供审计) strategy.close_rules.at21_weekend_lookahead
高风险

历史单腿及共用平仓路径以中价乘以 1 加该比例,换取更高成交概率。

配置键(仅供审计) strategy.close_rules.close_price_buffer_pct
小数比例

仅用于仍在持仓中的历史 Roll 链计算整链退出收益线。

配置键(仅供审计) strategy.close_rules.roll_chain_fee_per_trade_usd
USD

整链净收益至少覆盖估算费用乘以该倍数后才触发退出。

配置键(仅供审计) strategy.close_rules.roll_chain_fee_multiple
运行与自动化35 项

运行与自动化

高风险

observe_only 禁止项目内全部送单;automated 仍需 EXECUTE_LIVE 才可能通过最终闸。

配置键(仅供审计) settings.auto_trade.execution_policy

控制 Daemon 是否运行 Strangle 扫描、持仓管理与指派检测。

配置键(仅供审计) settings.auto_trade.enabled

两次完整 Strangle tick 之间的等待时间。

配置键(仅供审计) settings.auto_trade.tick_interval_sec

仅检查止盈和临期管理的快速循环间隔;0 表示复用完整循环间隔。

配置键(仅供审计) settings.auto_trade.close_check_interval_sec
高风险

每个美东自然日允许生成并执行的新 Strangle 组数;0 表示不设日上限。

配置键(仅供审计) settings.auto_trade.max_new_strangles_per_day

未单独配置的卡片在该分钟数后过期。

配置键(仅供审计) settings.auto_trade.approval_timeout_min
分钟

Strangle 开仓卡的有效分钟数,过期后必须重新扫描和复价。

配置键(仅供审计) settings.auto_trade.approval_timeouts.strangle_open
分钟

Covered Call 开仓卡在该分钟数后过期,避免使用陈旧的期权报价。

配置键(仅供审计) settings.auto_trade.approval_timeouts.covered_call_open
分钟

Covered Call 止盈平仓卡在该分钟数后失效,重新检查报价后再生成。

配置键(仅供审计) settings.auto_trade.approval_timeouts.covered_call_tp
分钟

Covered Call 临期管理卡在该分钟数后失效,防止按过期报价操作。

配置键(仅供审计) settings.auto_trade.approval_timeouts.covered_call_21d
分钟

历史单腿平仓卡的有效分钟数。

配置键(仅供审计) settings.auto_trade.approval_timeouts.close_position
分钟

指派记录确认卡的有效分钟数。

配置键(仅供审计) settings.auto_trade.approval_timeouts.assignment_record
分钟
高风险

仅在执行策略允许时生效;关闭后所有动作都保留为人工处理。

配置键(仅供审计) settings.auto_trade.strangle_automation.enabled

自动动作卡片发出后等待人工否决的时间;0 表示立即进入执行检查。

配置键(仅供审计) settings.auto_trade.strangle_automation.veto_window_min
分钟

允许自动执行达到整组止盈目标的去风险动作。

配置键(仅供审计) settings.auto_trade.strangle_automation.auto_tp_close

允许自动执行管理窗口内满足条件的整组平仓。

配置键(仅供审计) settings.auto_trade.strangle_automation.auto_close_21d
高风险

允许自动执行受威胁侧的防守 Roll。

配置键(仅供审计) settings.auto_trade.strangle_automation.auto_defend_roll
高风险

允许自动执行管理窗口内排名第一的整组移仓方案。

配置键(仅供审计) settings.auto_trade.strangle_automation.auto_rollout_21d
高风险

允许自动执行新增风险的 Strangle 开仓;仍受全部复价、保证金和执行策略闸门保护。

配置键(仅供审计) settings.auto_trade.strangle_automation.auto_open

每个美东自然日最多尝试的自动动作数量,防止失控循环。

配置键(仅供审计) settings.auto_trade.strangle_automation.max_auto_actions_per_day

自动动作连续失败达到该次数后关闭自动化总开关并告警。

配置键(仅供审计) settings.auto_trade.strangle_automation.demote_after_failures
高风险

批准或自动执行前重新获取报价并检查价格漂移和价差。

配置键(仅供审计) settings.auto_trade.requote.enabled

最新中价相对卡片原始中价的允许偏差,超出即拒绝送单。

配置键(仅供审计) settings.auto_trade.requote.max_mid_drift_pct
小数比例

送单前允许的 (ask-bid)/mid 上限,超出视为流动性不足。

配置键(仅供审计) settings.auto_trade.requote.max_spread_pct
小数比例

该时段压制普通人工提醒;严重保证金告警和已开放自动动作仍按规则处理。

配置键(仅供审计) settings.auto_trade.sleep_window_beijing

Daemon 每个美东交易日采集一次候选池 IV 快照的时间;留空关闭。

配置键(仅供审计) settings.auto_trade.ivr_collect_at_et

IV 快照保留天数,需覆盖 IVR 的回看窗口。

配置键(仅供审计) settings.auto_trade.ivr_history_retain_days

每天按美东时间推送盘前摘要;留空关闭。

配置键(仅供审计) settings.auto_trade.morning_summary_at_et

每天按北京时间推送上一交易日复盘;留空关闭。

配置键(仅供审计) settings.auto_trade.evening_summary_at_beijing

是否为仍在持仓中的历史单腿仓位运行止盈退出检查。

配置键(仅供审计) settings.auto_trade.enable_close_at_tp

是否为历史单腿仓位推送临期平仓或等待决策卡。

配置键(仅供审计) settings.auto_trade.enable_at21_management

检测期权指派或到期变化并记录状态。

配置键(仅供审计) settings.auto_trade.enable_assignment_detect

同类 Futu 限频告警每小时最多推送次数。

配置键(仅供审计) settings.auto_trade.rate_limit_alert_per_hour
次/小时

主循环心跳超过该分钟数未更新时告警;0 表示关闭。

配置键(仅供审计) settings.auto_trade.tick_stall_alert_min
分钟

开启后 Daemon 启动时连接失败会退出并等待 launchd 重启。

配置键(仅供审计) settings.auto_trade.require_opend_at_startup
账户与通知6 项

账户与通知

Futu 交易上下文使用的市场。

配置键(仅供审计) settings.account.market
高风险

REAL 使用真实账户,SIMULATE 使用模拟账户;送单仍受全局执行策略保护。

配置键(仅供审计) settings.account.trd_env

传给 Futu OpenD 的证券公司标识。

配置键(仅供审计) settings.account.security_firm
高风险

非美元账户金额乘以对应汇率后进入交易风控;币种代码与汇率逐行配置。

配置键(仅供审计) settings.account.fx_to_usd
币种兑美元汇率

仅用于 Web、CLI 和消息中的人民币换算,不参与交易风控。

配置键(仅供审计) settings.account.usd_to_cny
CNY/USD

实现盈亏统一扣除的每张合约往返手续费估计。

配置键(仅供审计) settings.account.fee_per_contract_round_trip_usd
USD
通知渠道10 项

通知渠道

非空时把提醒同时追加到该文件路径。

配置键(仅供审计) settings.notifications.file_log

输入新地址以启用或替换 Slack 通知;旧值不回显,留空保持不变。

配置键(仅供审计) settings.notifications.slack_webhook

非空时将支持的提醒发送到该邮箱。

配置键(仅供审计) settings.notifications.email_to

发送邮件所使用的 SMTP 服务地址。

配置键(仅供审计) settings.notifications.smtp_host

SMTP 服务端口,常见为 465 或 587。

配置键(仅供审计) settings.notifications.smtp_port

开启后连接即使用 SSL;关闭时由客户端按配置升级连接。

配置键(仅供审计) settings.notifications.smtp_ssl

SMTP 登录用户名。

配置键(仅供审计) settings.notifications.smtp_user

输入新密码以设置或替换;旧值不回显,留空保持不变。

配置键(仅供审计) settings.notifications.smtp_password

备用单向通知 Webhook;旧值不回显,留空保持不变。

配置键(仅供审计) settings.notifications.feishu_webhook

Webhook 开启签名校验时填写;旧值不回显,留空保持不变。

配置键(仅供审计) settings.notifications.feishu_webhook_secret
财富管理7 项

财富管理

总资产达到该值时完成 FI 目标;0 会隐藏 FI 模块。

配置键(仅供审计) settings.financial_freedom.target_net_value_usd
USD

用于估算安全提取覆盖率和 FI 状态。

配置键(仅供审计) settings.financial_freedom.monthly_expense_usd
USD/月

按总资产估算可持续被动收入时采用的年提取比例。

配置键(仅供审计) settings.financial_freedom.safe_withdrawal_rate
小数比例

仅用于 FI 达成时间估算,不参与 Strangle 风控。

配置键(仅供审计) settings.financial_freedom.expected_annual_return
小数比例

现金、存款和货币基金在 FI 估算中的年化收益假设。

配置键(仅供审计) settings.financial_freedom.expected_annual_return_cash
小数比例

房产、公积金等其他资产在 FI 估算中的年化收益假设。

配置键(仅供审计) settings.financial_freedom.expected_annual_return_other
小数比例

FI ETA 使用的每月固定新增资金;运行时 KV 值优先于此 YAML 回退值。

配置键(仅供审计) settings.financial_freedom.monthly_contribution_usd
USD/月

只读配置文件(YAML)

审计当前三份 YAML 的完整内容;敏感值已遮蔽。

strategy.yaml
risk:
  max_initial_margin_pct: 0.5
  margin_cap_vix_bands:
  - - 0.0
    - 0.25
  - - 15.0
    - 0.3
  - - 20.0
    - 0.35
  - - 30.0
    - 0.4
  - - 40.0
    - 0.5
close_rules:
  take_profit_pct: 0.5
  take_profit_tiers: []
  close_price_buffer_pct: 0.05
  manage_dte: 21
  at21_weekend_lookahead: true
  roll_chain_fee_per_trade_usd: 2.0
  roll_chain_fee_multiple: 2.0
strangle:
  delta_target:
  - 0.1
  - 0.2
  delta_sweet: 0.16
  dte_target: 45
  profit_target_pct: 0.5
  manage_dte: 21
  repeat_cooldown_days: 14
  close_profit_floor_usd: 5.0
  defend_target_delta: 0.16
  defend_max_per_side: 1
  defend_max_delta: 0.25
  ivr_min: 0.3
  ivp_min: 0.7
  sell_price_buffer_pct: 0.0
  roll_min_net_credit: 0.07
  buyback_fill_timeout_sec: 60
  rollout_choices: 3
  score_weights:
    ivr: 0.625
    credit: 0.375
  margin_grace_vix_threshold: 30.0
  margin_grace_count_low_vix: 1
  margin_grace_count_high_vix: 2
  preview_reuse_sec: 900
covered_call:
  enabled: true
  ivr_min: 0.2
  ivr_unlimited: 0.4
  max_concurrent_contracts_mid_ivr: 2
  delta_target:
  - 0.05
  - 0.15
  delta_sweet: 0.1
  dte_target: 45
  dte_range:
  - 22
  - 80
  max_contracts_per_symbol_per_week: 1
  profit_target_pct: 0.5
  manage_dte: 21
  symbols:
    BABA:
      reserve_stock_pct: 0.375
      reserve_release_daily_gain_pct: 0.06
universe.yaml
wheel_tickers:
- BABA
blacklist: []
cash_equivalents:
- SGOV
- BIL
- JPST
- USFR
- SHV
- TBIL
- CASH
strangle_universe:
  index:
  - SPY
  - GLD
  - IWM
  - QQQ
  - TLT
  - USO
  stock:
  - AAPL
  - TSLA
settings.yaml
account:
  market: US
  trd_env: REAL
  security_firm: FUTUSECURITIES
  fx_to_usd:
    USD: 1.0
    HKD: 0.128
  usd_to_cny: 7.2
  fee_per_contract_round_trip_usd: 6.0
notifications:
  file_log: runs/alerts.log
  slack_webhook: '[未配置]'
  email_to: ''
  smtp_host: ''
  smtp_port: 587
  smtp_ssl: false
  smtp_user: ''
  smtp_password: '[未配置]'
  feishu_webhook: '[未配置]'
  feishu_webhook_secret: '[未配置]'
auto_trade:
  enabled: true
  execution_policy: observe_only
  tick_interval_sec: 900
  close_check_interval_sec: 180
  approval_timeout_min: 30
  approval_timeouts:
    strangle_open: 10
    covered_call_open: 10
    covered_call_tp: 30
    covered_call_21d: 30
    close_position: 30
    assignment_record: 60
  requote:
    enabled: true
    max_mid_drift_pct: 0.15
    max_spread_pct: 0.5
  strangle_automation:
    enabled: false
    veto_window_min: 10
    auto_tp_close: false
    auto_close_21d: false
    auto_defend_roll: false
    auto_rollout_21d: false
    auto_open: false
    max_auto_actions_per_day: 6
    demote_after_failures: 3
  morning_summary_at_et: 09:00
  evening_summary_at_beijing: 09:00
  enable_close_at_tp: true
  enable_at21_management: true
  enable_assignment_detect: true
  rate_limit_alert_per_hour: 1
  tick_stall_alert_min: 10
  enable_margin_monitor: true
  margin_buffer_warn: 1.05
  margin_buffer_critical: 1.02
  margin_buffer_rearm: 1.07
  circuit_breaker_daily_drawdown_pct: 0.05
  max_new_strangles_per_day: 1
financial_freedom:
  target_net_value_usd: 1400000
  monthly_expense_usd: 4000
  safe_withdrawal_rate: 0.04
  expected_annual_return: 0.08
  expected_annual_return_cash: 0.018
  expected_annual_return_other: 0.03
  monthly_contribution_usd: 0