一些背景

我虽然已经使用Bolt开发了期权相关的页面, 但是在实际交易中, 还是习惯使用Google表格来整理期权数据, 主要有以下几个原因:

  1. 目前还没有把后端系统接入到QMT, 只能手动导入数据, 所以并没有什么自动化的优势.
  2. 目前我做期权, 依然还是处于比较新手的阶段, 还在探索比较合适的工具, 这个时候去研究展示页面我认为收益不高
  3. Google表格的界面非常友好, 可以很方便地进行数据的查看和编辑, 而且我能慢慢整理出自己想要的究竟是什么
  4. 我也使用了一下飞书的文档, 它的自定义函数支持我是没看懂, 考虑到实用性和扩展性, 还是选了Google表格

我的Google表格的地址如下, 如果想修改, 读者可以直接复制一份到自己的Google账号下进行修改

https://docs.google.com/spreadsheets/d/1IiRv47a8lwmZt84KsiZnTKOTp4HDsqJUgsyUxbWHGlU/edit?gid=1506563050#gid=1506563050

期权持仓的获取

我用的是国金的金太阳来看我的持仓, 它是通达信的一个定制版本, 也提供了数据导出的功能

1760454197980.png

我就用它的导出功能, 导出成Excel, 然后再复制到Google表格中

1760455027983.png

持仓收益整理

我希望尽量记录自己的仓位变化情况, 正好也用Google表格以及图表进行记录和查看

1760456434235.png

Google表格的整理(内置函数)

1760455185669.png

这张图中. 有几个部分我用了Google表格的内置函数来实现

根据到期日进行过滤

比如, 整个tab中, 我首先进行过滤, Q2这个单元格对应的到期日, 这里是20251022, 而后基于合约名称进行排序

1
=sort(filter('持仓'!A2:N, '持仓'!N2:N = Q2), 2, true)

获取未平仓的CALL

而后, 我用这个公式来获取未平仓的CALL, 如下, 它的规则是:

  1. 当我发现期权名称中包含字 – 为看涨期权
  2. 可用量大于0 – 说明还有未平仓的
  3. 开仓价格为负数 – 说明当时是在卖出
  4. 并且不是备兑的时候 – 非备兑
1
=FILTER(B2:O20, regexmatch(C2:C20,".*购.*"), F2:F20>0, G2:G20<0, NOT(D2:D20="备兑"))

未平仓的PUT也是类似的, 读者可以自己去表格中查看公式

调用自定义的函数

针对这些可能有行权风险的义务仓, 我还编写了一些自定义的函数, 来帮助我进行一些计算. 比如, 当前标的价格, 计算合约是实值还是虚值

函数代码编写

可以从这个位置打开来查看脚本

1760456135053.png

里面的代码我是求助Gemini来做的, 它比自己写快太多了, 还有注释, 好评!

1760456203388.png

表格中调用函数

我可以直接调用写好的函数来计算得到所有期权的状态, 方便我评估风险, 哪些属于实值的义务仓需要在到期前尽快平掉或是移仓

1
=ANALYZE_OPTION_STATUS(C:C, R2*1000)

总结

我说真的, 不管是用自己的程序还是用Google表格整理都不是特别方便. 但是我用了券商的软件包括通达信还是汇点, 他们的对于已持有的期权仓位的分析都非常有限, 只能看到一些基本的信息. 甚至连按照月份来分类都没有, 只能看到一个大概的持仓. 当我做的期权越来越多的时候, 这些信息就显得非常不够用了.

如果是机构交易者应该也是要有自己的系统来管理这些数据的, 但是对于个人投资者来说, 我目前还没找到一个特别好的工具. 如果有推荐的期权工具也欢迎大家留言告诉我.