Files
crypto_okx/使用说明.md
T

25 KiB
Raw Blame History

使用说明(详细版)

仓库: https://git.bz121.com/dekun/crypto_okx.git

本实例是基于 Flask 的 OKX 币本位期权 Web 控制台,可独立使用,也可挂到中控(crypto_okx_hub)做远程盯盘、条件单与远程平仓。

文档 用途
本文 操作员完整用法:交易所前置 → env → 系统设置 → 开平仓 → 复盘/统计 → 中控
部署文档.md 部署 / PM2 / SOCKS
docs/实盘说明.md 实盘 API、账户模式(站内「实盘说明」同源)
docs/规格-期权交易账户盈亏结算.md 盈亏真源与冻结规则
docs/系统分析-期权主链条.md 代码主链与模块对照

一键部署(详见部署文档):

curl -fsSL https://git.bz121.com/dekun/crypto_okx/raw/branch/main/deploy/manage.sh | bash

默认访问:http://<服务器IP>:5004 → 首页进入 期权 /options。


目录

  1. 系统能做什么
  2. 系统前:交易所准备
  3. 登录与顶栏读数
  4. 模拟资金 vs 实盘
  5. env 配置(详细)
  6. 系统设置(详细)
  7. 期权页:开仓 / 平仓 / 持仓
  8. 盈亏、对账与划转规则
  9. 期权复盘与数据统计
  10. 中控使用(详细)
  11. 推荐上手路径
  12. 常见问题与报错
  13. 风险说明

1. 系统能做什么

1.1 功能一览

模块 路由 / 入口 说明
期权 /options 期权链、买币并开仓、持仓、目标位、翻倍出场、买一平仓、卖回、面板统计
期权复盘 /options/review 本地成交同步 → 复盘笔记/配图 → 复盘统计
env 配置 /env_config 浏览器改 .env(API、预算、门控、中控 Token 等)
系统设置 /settings 导航显示、模拟/实盘、密码、期权划转、导出、备份
实盘说明 顶栏「实盘说明」 渲染 docs/实盘说明.md
中控 Bridge /api/hub/* 供中控拉快照/统计、远程全平、条件单、远程更新
关键位监控等 顶栏可开关 提醒类;在系统设置 → 导航显示中开关

当前主路径为 币本位期权(USDT 买 ETH/BTC → 用币付权利金开期权)。USDC 期权开仓路径已下线。交易模式固定为 单独期权(OKX_TRADE_MODE=options)。

1.2 三条控制面(心里要有数)

控制面 谁在用 做什么
本机面板 你在浏览器里点 开平仓、划转、看链、复盘
后台监控线程 实例进程常驻 目标位平仓、翻倍出场、条件单触发、持仓同步、卖回扫尾
中控 Hub 中控站 多实例盯盘、下条件单、远程全平、远程更新

进程必须在跑,目标位 / 翻倍 / 条件单才会自动执行。


2. 系统前:交易所准备

在填本系统任何密钥之前,先在 OKX 把账户与 API 准备好。币本位开仓会 先现货买币,再开期权,缺一不可。

2.1 账户模式(必须)

OKX App / 网页 → 交易 → 账户模式(首次切换需在官方界面手动确认):

账户模式 是否可用 说明
仅现货 / 简单模式 否 无法正常开期权
合约模式(现货和合约) 推荐 现货 cash,与程序一致
跨币种保证金 不推荐 现货常需 cross,程序按 cash 下单会报 tdMode
组合保证金 不推荐 同上

推荐固定:合约模式 → 再在本系统点「买币并开仓」。

2.2 创建 API Key

  1. OKX → 个人中心 → API → 创建 API Key。
  2. 权限勾选 交易(Trade)。
  3. 若有细分,务必打开 现货(Spot)(买 ETH/BTC 用)。
  4. 建议开 IP 白名单 = 本实例服务器出口 IP。
  5. 保存得到:API Key / Secret Key / Passphrase。

本系统 永续与期权共用同一套 OKX_API_*,不必再单独配期权 Key。

2.3 资金准备

账户 用途
交易账户 USDT 开仓时买 ETH/BTC;盈亏结算看交易户 USDT 差分
资金账户 充值/提现中转;用「期权划转」拨到交易户
标的币 ETH/BTC 开仓前若交易户里还有可卖标的币,系统会拒开(须先卖回),避免污染单笔对账

实盘建议:平时把要用的 USDT 留在交易户;持仓期间不要划转(系统也会禁止)。

2.4 交易所侧自检清单

  • 账户模式 = 合约模式
  • API 有 交易 + 现货,IP 白名单正确
  • 交易账户有足够 USDT
  • 清楚:开仓 = 买币 + 买期权;平仓 = 卖期权 + 卖回币

3. 登录与顶栏读数

  1. 打开站点 → 登录(APP_USERNAME / APP_PASSWORD,在 .env 或首次部署配置)。
  2. 顶栏账户标签示例:okx_sim(模拟)/ okx_live(实盘)。
  3. 资金条主要看:
    • 总资金 / 资金账户 / 交易账户(USDT):钱包余额(交易所或模拟钱包)
    • 合计盈亏 / 窗口统计:盈亏账本(已冻结历史 + 持仓浮盈),不是钱包余额本身

双账不要混:

看见什么 含义
顶栏钱包余额 账户里有多少 USDT,会随划转变
合计 / 复盘 / 统计盈亏 单笔冻结盈亏之和(+ 浮盈);已冻结单不因划转改写

4. 模拟资金 vs 实盘

4.1 在哪里切换

系统设置 → 模拟资金:

操作 效果
切换到模拟资金 本地 SQLite 钱包;吃 OKX 公开买卖一撮合,不向交易所发真实单
切换到实盘 走真实 API(须密钥正确且 LIVE_TRADING_ENABLED=true)
重置权益 无仓时可重置;强制重置会清仓
模拟划转 只动模拟钱包

启动默认:SIM_DEFAULT_MODE=sim 或 live(env)。运行中也可在系统设置切换。

4.2 实盘还要开的开关

项 说明
LIVE_TRADING_ENABLED=true 允许向交易所发单;关则多走本地/拒真下单
系统设置切到实盘 / SIM_DEFAULT_MODE=live 顶栏变为 okx_live,余额读交易所
API 三项已填 Key / Secret / Passphrase

实盘后:顶栏只显示交易所真实余额;模拟钱包数字不会带过去。


5. env 配置(详细)

入口:顶栏 → env 配置(/env_config),或直接改服务器 .env 后按提示重启。
页面按分组展示中文标签;未写入 .env 的项以页面「生效默认」为准(可能与旧版 .env.example 不一致,以页面为准)。

敏感项保存后勿提交 Git;git pull 不会覆盖本地 .env。

5.1 交易所与实盘

变量 中文 说明 建议
LIVE_TRADING_ENABLED 开启实盘下单 关闭时不向交易所发真实单 模拟熟悉后再开
OKX_API_KEY API Key 账户 API(期权共用) 必填(拉链/实盘)
OKX_API_SECRET API Secret 同上 必填
OKX_API_PASSPHRASE API Passphrase OKX 必填 必填
OKX_ACCOUNT_LABEL 账户备注 企业微信推送里显示 如 主账户
OKX_SHOW_PERP_FUNDS 显示 USDT 资金/交易账户 默认关;币本位开仓仍会用到交易户可用额展示 一般保持默认

代理(若服务器访问 OKX 受限,写在 .env,不一定都在 UI 白名单里):

OKX_SOCKS_PROXY=socks5h://127.0.0.1:1080

5.2 企业微信(可选)

变量 中文 说明
WECHAT_WEBHOOK 机器人 Webhook 开平仓/风控等推送
WECHAT_TIMEOUT_SECONDS 推送超时(秒) 默认 10

5.3 中控对接

变量 中文 说明
HUB_BRIDGE_TOKEN 中控 Bridge Token 首次打开 env 页会自动生成;复制到中控「添加实例」
HUB_EMBED_FRAME_ANCESTORS 允许嵌入的中控 Origin 一般留空;中控 iframe 打不开时再填中控地址(空格分隔),调试可用 *

详见 第 10 章。

5.4 期权账户(币本位核心)

保证金模式固定为 币本位(coin),无需再配 USDC 期权预算。

变量 中文 默认(生效) 说明
OKX_OPTIONS_ENABLED 启用期权模块 true 与上方 API 同源
OKX_OPTIONS_ACCOUNT_LABEL 期权账户备注 — 推送区分
OKX_OPTIONS_BUDGET_BUFFER 预算缓冲比例 1 复利/固定预算共用;预算×缓冲后再估张数
OKX_OPTIONS_COIN_COMPOUND 按交易户 USDT 复利 true true:预算≈交易户 USDT×缓冲;false:用固定预算
OKX_OPTIONS_COIN_BUDGET_USDT 固定预算(USDT) 如 10 仅复利关闭时生效
OKX_OPTIONS_COIN_MAX_USDT_ENABLED 单笔上限开关 false false=靠人工划走控规模
OKX_OPTIONS_COIN_MAX_USDT 单笔上限(USDT) 如 50 仅上限开关开启时生效
OKX_OPTIONS_COIN_SPOT_BUY_BUFFER 现货买入缓冲 1.05 按最大可开张数×卖一权利金×缓冲买币,不全额兑完
OKX_OPTIONS_MAX_ACTIVE_POSITIONS 期权持仓上限(笔) 1 1=一次一仓(对账规格前提);0=不限制
OKX_OPTIONS_DEFAULT_UNDERLY 默认标的 ETH ETH / BTC
OKX_OPTIONS_CHAIN_MAX_DTE_DAYS 期权链展示天数 14 到期日下拉范围
OKX_OPTIONS_MAX_DTE_DAYS 开仓最大剩余天数 2 开仓拒绝更远到期(与链展示独立)
OKX_OPTIONS_CHAIN_ASK_LIQ_FILTER_ENABLED 链上仅显示有卖一 true 隐藏无卖一或深度不足 1 张的行

目标平仓门控(自动目标位平仓用;手动平仓不强制)

变量 中文 默认 说明
OKX_OPTIONS_CLOSE_GATE_MODE 门控模式 premium premium=可回收≥权利金×倍数;net_pnl=净盈亏折 U≥阈值
OKX_OPTIONS_CLOSE_RECYCLE_MULT_COIN 门控权利金倍数 1.05 仅 premium
OKX_OPTIONS_CLOSE_NET_PNL_MIN_USDT 门控净盈亏下限(U) 0 仅 net_pnl
OKX_OPTIONS_CLOSE_HOLD_SECONDS 门控持续秒数 20 条件达标后需持续满足的秒数

5.5 登录与其它(常在 .env)

变量 说明
APP_USERNAME / APP_PASSWORD 站点登录
FLASK_SECRET_KEY Session 密钥,务必改掉默认值
SIM_DEFAULT_MODE sim / live 启动默认
OKX_TRADE_MODE 当前为 options(单独期权)

保存后:按页面提示 保存并重启(或 PM2 重启),再硬刷新浏览器。

5.6 预算怎么理解(举例)

假设交易户 100 USDT,复利开、缓冲 1、现货缓冲 1.05、默认「按可用余额打满」:

  1. 可用预算 ≈ 100 × 1 = 100 USDT(若开了单笔上限则再封顶)。
  2. 按卖一权利金估算最多可开张数。
  3. 买币金额 ≈ 张数对应权利金 × 1.05(多买一点防滑点,不是把 100U 全换成币)。
  4. 用买到的币支付权利金开期权;多余币开仓后可能卖回一部分。

复利关闭时:把 OKX_OPTIONS_COIN_BUDGET_USDT 设成你想每笔用的固定 USDT。


6. 系统设置(详细)

入口:/settings。各页签如下。

6.1 导航显示

控制顶栏入口与设置内子块是否显示(存在本机偏好,即时生效)。常见项:

  • 期权、期权复盘、数据统计、风控说明、实盘说明、env 配置
  • 关键位监控、看板、流水等(按需开)

6.2 模拟资金

见 第 4 章。实盘前请先在此确认当前是模拟还是实盘。

6.3 账户密码

修改登录密码(若导航里打开了该页签)。

6.4 数据导出

导出关键位当前/历史等 CSV(与期权成交主账无关时也可作备份辅助)。

6.5 备份恢复

本机备份/恢复实例数据。中控也可拉备份列表与下载(含 .env,注意保密)。

6.6 期权划转

币本位下在 资金账户 ↔ 交易账户 之间划转:

币种 常见用途
USDT 给交易户加开仓子弹 / 把利润转回资金户
ETH / BTC 异常残留时人工处理(正常应走自动卖回)

规则:

  • 有期权持仓,或平仓后待卖回 → 划转按钮灰色,API 也会拒绝。
  • 无持仓、无待卖回 → 可划转;划转后顶栏余额刷新。
  • 划转只影响下一笔开仓前的 trading_usdt_before,不会改写已冻结历史盈亏。

USDC 兑换类入口已下线。


7. 期权页:开仓 / 平仓 / 持仓

路由:/options。

7.1 界面结构

  • 左侧:标的、到期、列表/T 型链、买入弹窗。
  • 右侧持仓区页签:当前持仓 | 当前委托 | 数据统计 | 期权历史。
  • 若中控有活跃条件单:顶部会出现占用提示,禁止手动开仓。
  • 交易户有可卖残留币时:出现 重试卖回。

7.2 开仓步骤

  1. 选标的 ETH / BTC、到期日(受「链展示天数」「开仓最大剩余天数」约束)。
  2. 列表或 T 型查看;可筛看涨/看跌、实值/虚值;「链上仅显示有卖一」开启时无深度行会隐藏。
  3. 点某行 买入 → 下单弹窗:
    • 卖一/买一、估张数、估权利金、盈亏平衡等
    • 尺寸模式(默认 按可用余额打满)
    • 可选:目标位(指数)、翻倍出场(倍数,默认 1)
    • 备注
  4. 确认 买币并开仓 → 系统:快照交易户 USDT → 现货买币 → IOC 限价买期权 @ 卖一。
  5. 成功后可到「当前委托 / 当前持仓」查看;失败买币会尝试回滚。

尺寸模式

模式 含义 建议
按可用余额打满 按预算(复利或固定)×缓冲算张数 默认,日常用这个
指定张数 手动填张数 试单、精确张数时用
指定币数量 按币量反推张数 进阶;优先熟悉打满/张数即可
全仓复利(UI) 与「按交易户复利」env 相关的展示分支 以 env OKX_OPTIONS_COIN_COMPOUND 为准

7.3 开仓会被拒绝的常见原因

  • 交易户仍有可卖 ETH/BTC(先点重试卖回或扫尾)
  • 已有持仓且持仓上限=1
  • 中控条件单占用中
  • 无卖一深度 / 深度不足
  • 到期超过 OKX_OPTIONS_MAX_DTE_DAYS
  • 实盘未开 LIVE_TRADING_ENABLED 或 API/账户模式不对
  • 交易户 USDT 不足买币

7.4 持仓上可做的事

操作 说明
买一平仓 手动限价全平/按深度可平部分;不强制走目标门控
目标位 设定/取消指数目标;触达后须过门控(倍数+持续秒数)才自动平
翻倍出场 买一可回收 ≥ 开仓权利金 × (1+倍数) 时自动买一平;可与目标位并行
重试卖回 期权已平但币没卖完时,把残留 ETH/BTC 卖回 USDT,才能冻结本单盈亏

说明:

  • 无单独「止损价」;不设出场则可能拿到期。
  • 门控本身不会在未设目标时平仓;它是目标位自动平的附加条件。
  • 手动平仓可在流动性允许时直接平。

7.5 平仓后发生什么

卖出期权(买一限价)
  → 触发卖回残留标的币
  → 卖回成功:拍交易户 USDT after
  → 本单已实现 U = after − before,冻结
  → 复盘/统计读冻结值

卖回失败时本单处于 待结算:已实现不进统计;请用 重试卖回,或等监控扫尾。


8. 盈亏、对账与划转规则

完整规格见 docs/规格-期权交易账户盈亏结算.md。操作员只需记住:

8.1 一句话

一笔单的已实现盈亏 = 卖回完成后的交易户 USDT − 开仓前(买币前)的交易户 USDT。冻结后永不改。

8.2 生命周期

空仓且无残留币
  → 开仓前拒「有可卖币」;快照 before
  → 买币 → 开期权(持仓中禁划转)
  → 平期权 → 卖回币
  → 快照 after,冻结盈亏
  → 允许划转;准备下一笔

8.3 面板数字怎么读

数字 跟不跟盘 说明
持仓浮盈 跟盘 按买一回收估算
合计盈亏 部分跟盘 Σ已冻结 + 当前浮盈
复盘/统计已实现 冻结后固定 只认 settled
顶栏钱包 跟划转 与单笔盈亏账分离

一次一仓(持仓上限默认 1)是钱包差分能和单笔盈亏对齐的前提。不要在持仓中从外部乱划资金。


9. 期权复盘与数据统计

9.1 复盘 /options/review

  1. 同步:把本地已平 options_trades 同步进复盘表。
  2. 交易记录:筛选、点开一笔。
  3. 复盘表单:写笔记、上传多周期图等并保存。
  4. 复盘记录 / 统计:看已复盘条目与汇总。

盈亏列:

  • 已冻结 → 显示冻结 USDT;
  • 有 before 但未卖回结算 → 显示待结算,不会用假数字充数;
  • 很老的无快照历史单 → 遗留口径,不强制改写。

9.2 面板「数据统计」与顶栏窗口

  • 窗口常见:今日 / 7 日 / 30 日 / 全部。
  • 已实现只统计已冻结单;待卖回不进已实现。
  • 合计通常 = 净已实现 + 持仓浮盈。

中控统计窗口参数与此同源(见下章)。


10. 中控使用(详细)

中控仓库一般为独立项目 crypto_okx_hub。本实例扮演 客户端(Bridge)。

10.1 接入步骤

  1. 部署并启动本实例,浏览器登录。
  2. 打开 env 配置 → 中控对接。
  3. 若 HUB_BRIDGE_TOKEN 为空,首次打开会 自动生成 并写入 .env。
  4. 点复制,到中控 添加实例:填写
    • 实例访问地址(如 http://IP:5004)
    • Bridge Token(与上面一致)
  5. 中控探测 GET /api/hub/version:应显示在线与版本。
  6. 若中控用 iframe 嵌入本机页面打不开:再填 HUB_EMBED_FRAME_ANCESTORS 为中控 Origin。
  7. 嵌入登录走 /hub_sso(中控签发短时 token)。

Token 校验:请求头 X-Hub-Token 或 Authorization: Bearer <token> 必须与实例一致;否则一律「未授权」。

10.2 中控上能做什么

能力 说明
快照 资金、权利金占用、持仓摘要、流动性/残档、条件单占用、行情
统计 窗口已实现 + 浮盈等 KPI(today / 7d / 30d / all)
远程全平 指定 inst_id,仅买一限价全平(不支持市价、不支持指定张数)
条件单 创建 / 列表 / 取消(未开仓前)/ 开仓后改出场
远程更新 git pull + 进程重启(依赖 /api/hub/update)
备份下载 列表与下载(含敏感 .env,权限要收紧)

10.3 条件单(中控主打自动化)

创建时常见字段

字段 含义 规则
hub_order_id 中控侧唯一 ID 必填;重复提交会去重成功
underlying 标的 如 ETH
opt_type P / C 必填
trigger_px 触发指数价 > 0
deviation_pct 触发带百分比 带 = 触发价 × (1±pct/100)
min_expiry_hours 选合约最短剩余小时 > 0
target_index 和/或 翻倍出场 出场 至少配置一种
profit_exit_mult 翻倍倍数 默认 1.0

方向约定(中控传入的 trigger_side 会被忽略):Put 看上穿、Call 看下穿。

创建前守卫

  • 本机已有期权持仓 → 拒
  • 触及持仓笔数上限 → 拒
  • 已有活跃条件单 → 拒

生命周期(操作员可见)

armed(待命)
  → triggering(触发开仓中)
  → open(已持仓,监控出场)
  → leave_up / leave_down / cancel / timeout / closed 等结束态
  • 未触发的 armed 单会在策略时间点(如 周四 23:00,按应用时区)自动过期取消。
  • 活跃期间:本机期权页显示 中控条件单占用,禁止手动开仓。
  • 已 open 不能「取消单」了事:应改出场或远程/本地平仓。
  • 开仓成功后走与手动相同的买币开仓链路,盈亏同样卖回后冻结。

触发后选约

在触发带内选取满足最短到期时间的合适实值合约,再执行币本位开仓;随后挂目标位和/或翻倍出场,由监控线程盯盘。

10.4 中控远程平仓注意

  • 只接受全平;不要指望中控传张数或市价。
  • 买一无效或严重残档会被拒绝(与本机一致)。
  • 平完后仍可能要在本机看是否出现 重试卖回(卖回失败时)。

10.5 中控远程更新

中控「客户端远程更新」依赖:

  • GET /api/hub/version
  • POST /api/hub/update

若版本列显示非 JSON / 404:先在该实例服务器手动 git pull 并重启一次,再在中控刷新。

10.6 中控日常操作建议

  1. 本机 env 配好 Token、API、预算、持仓上限=1、门控。
  2. 中控确认实例在线、快照资金与持仓正常。
  3. 需要自动化时用条件单;需要手工精细选约时用本机面板(确认无条件单占用)。
  4. 远程平仓后核对:持仓是否清空、卖回是否完成、统计是否出现冻结盈亏。
  5. 多实例时每个实例 Token 独立,勿共用。

11. 推荐上手路径

A. 全新实例(先模拟)

  1. 按 部署文档.md 部署,打开站点并登录。
  2. 系统设置 → 模拟资金:确认 模拟。
  3. env 配置:填 API(模拟不下真单,但拉链/行情通常仍要能访问 OKX;必要时配 SOCKS)。
  4. 期权账户:复利、缓冲 1、现货缓冲 1.05、持仓上限 1、门控秒数 20 —— 与默认对齐即可。
  5. 在 期权 页用「打满」或「1 张」走通:开仓 → 看持仓浮盈 → 手动买一平 → 确认卖回 → 看统计/复盘数字。
  6. 需要中控时:复制 Bridge Token → 中控添加实例 → 试快照与条件单(仍建议先模拟)。

B. 切实盘

  1. 完成 第 2 章 交易所清单。
  2. env:LIVE_TRADING_ENABLED=true,密钥正确;系统设置切 实盘。
  3. 交易户转入计划使用的 USDT。
  4. 小预算试一笔完整闭环(含卖回与复盘)。
  5. 再按需放大固定预算或开启复利;保持一次一仓直到你清楚对账含义。

C. 日常交易习惯

  1. 开仓前看:无残留币、无条件单锁、交易户 USDT 够。
  2. 默认打满;设好目标位和/或翻倍。
  3. 平仓后确认卖回完成再划转资金。
  4. 当日结束看面板统计 + 复盘是否与交易户变动大致可对上。

12. 常见问题与报错

现象 常见原因 处理
50123 无 Crypto 交易权限 API 无现货/交易权限 编辑 Key,勾选交易+现货
51010 当前账户模式不能完成请求 非合约模式等 改为 合约模式
Parameter tdMode error 跨币种/组合下仍用 cash 改回合约模式
开仓提示先卖回 / 有币拒开 交易户有可卖 ETH/BTC 点 重试卖回
划转按钮灰色 持仓中或待卖回 先平仓并卖回完成
下单弹窗总是「指定张数」 旧前端缓存或模式被归一错 硬刷新;拉新版本(默认应为打满)
统计有单但已实现为 0/空 未卖回、未冻结 重试卖回,等 settled
中控未授权 Token 不一致或未配置 核对 HUB_BRIDGE_TOKEN
中控版本非 JSON/404 旧代码无 hub 接口 本机 git pull 重启后再探测
条件单占用无法手动开 设计如此 取消未触发单,或等持仓结束
目标位到了却不平 未过门控持续秒数/倍数 看门控 env;或手动买一平

13. 风险说明

  • 期权杠杆高,实盘盈亏自负。
  • 勿把 .env、API 密钥、中控 Token、备份包发到公网或提交 Git。
  • 中控备份下载可能含密钥,中控侧权限与传输需同等重视。
  • 请遵守当地法规与 OKX 用户协议;本说明只描述产品用法,不构成投资建议。

附录:相关文档与默认速查

项 当前常用默认
持仓上限 1(一次一仓)
预算缓冲 1
现货买入缓冲 1.05
门控持续秒数 20
门控模式 premium × 1.05
下单尺寸默认 按可用余额打满
保证金 币本位 coin(固定)

更深的模块与数据流:docs/系统分析-期权主链条.md。