草庐IT

【期权系列】期权市场 PCR 指标的策略应用

马尔可夫宽 2024-12-13 原文

本篇文章是基于研究报告的复现作品,旨在记录个人的学习过程和复现过程中的一些思路。

感谢中信期货研究员前辈的宝贵思路。

一、期权PCR简介

相比于现货与期货,期权的交易模式与制度相对较为复杂,除了有不同到期月 份以外,还分成认购与认沽期权以及不同的执行价进行交易。众多的合约与分类的 复杂度使得期权市场投资者的交易信息能较为细化的反映期权市场投资者信息。
通过分析期权市场的投资者交易信息可能对判断后市的行情起到一定的参考作用。 期权成交与持仓信息可以反映投资者参与期权交易的倾向性,市场持续上涨 时,投资者更多的交易认购期权获取收益;担心未来市场回调时,又会持有较多的认沽期权来进行保险。
1.成交量PCR
成交量 PCR 通常作为反映期权市场投资者情绪的指标在使用,该指标代表了看跌期权成交量和看涨期权成交量的比值。一般情况认为,当成交量 PCR 指标越大时,期权市场的情绪越悲观,指标越小时,期权市场的情绪越乐观。但通过成交量 PCR 与标的价格的实际情况来看,成交量 PCR 更多的反映期权投资者追涨追跌的情绪。
从历史情况来看,成交量 PCR 围绕均值附近均匀分布,标的持续上涨时,往往伴随着成交量
PCR 的走弱;标的持续下跌时,成交 PCR 又会走强。
图 1.1 成交量PCR(全部合约)

 

2.持仓量PCR

持仓量PCR与成交量PCR类似,该指标代表的是看跌期权持仓量与看涨期权持仓量之间的比值。从历史情况来看,标的持续上涨时,通常伴随着持仓量PCR的走高,投资者担心未来市场回落,从而持有更多的认沽期权进行保险。标的持续下跌时,通常伴随着持仓量PCR的走低,投资者提前布局认购期权,以期获得未来市场反弹的收益。
持仓量PCR与成交量PCR表现有所差异,持仓量PCR较高时,代表投资者对未来的标的反转下跌的担忧,一般情况当前市场正处于上升趋势中;持仓量PCR较低时,代表投资者正提前布局认购期权,一般当前市场处于下跌趋势中。相比成 交量PCR,持仓量PCR波动更大、更分散,没有相对稳定的均值。
图 1.2 持仓量PCR(全部合约)

 

1.3成交金额PCR
与期权成交量PCR相比,成交额PCR反映的是看跌期权上消耗的资金与看涨期权上消耗的资金的比值。成交额 PCR 中包含了价格信息,对于不同执行价的期权价格也相差较大,实值期权的价格要远高于虚值期权。一般情况下,市场的主力倾向于交易平值附近的期权,而极端的投机者更喜欢价格很便宜的深度虚值期权进行“赌博”,所以成交额PCR相比成交量PCR,更能反映市场主力的选择倾向,过滤掉极端投机者的噪声数据。成交额 PCR 的整体走势与成交量 PCR差别较大,数据分布中,均值以上的波动较大,均值以下的波动较平缓,不同行情下指标的走势及大小差异较明显。
图 1.3 成交金额PCR(全部合约)

 

二、策略构建及回测

1.成交量PCR策略
通过成交量PCR的变动情况来判断标的走势,构建基于标的的多头策略。
①成交量pcr策略:指标值高于(低于)固定阈值时第二天卖出(买入)标的,阈值设置为1。
②成交量pcr双均线策略: 通过均线组合判断指标的变动方向进行择时,持续上涨时卖出标的,持续下跌时买入标的。
③成交量pcr复合策略:当指标低于固定阈值时,第二天买入标的;当指标高于固定阈值时,通过均线组合判断指标的变动方向进行择时,持续上涨时卖出标的,持续下跌时买入标的。均线策略的时间窗口为2/5。
策略初始资金2w,手续费万1.2,固定止盈止损比为4:1。
经过回测,三个策略的交易次数分别为208、426、132。可以看出PCR阈值策略的交易次数剧中,而PCR均线策略的次数最多,将阈值与均线进行结合后,策略的开仓次数明显减少。
图 2.1 成交量PCR策略交易时间节点(①/②/③)

 

 

 从三个策略的净值曲线来看,PCR均线策略在2018年中旬前的表现不如其余两个策略,之后的表现相对较优,阈值策略与复合策略的净值走势较为相似。从指标上来看,三个策略均取得不错的收益,其中复合策略的收益高于标的资产,且最大回撤小于标的与其余两个策略,由此可知复合策略在减少了开仓次数后虽然牺牲了一定的收益,但是最大回撤也得到了较大的改善。

图 2.2 成交量PCR策略净值

 表 2.1 成交量PCR策略指标计算

 2.持仓量PCR策略

通过持仓量PCR的变动情况来判断标的走势,构建基于标的的多头策略。
①持仓量pcr策略:指标值高于(低于)历史分位数水平时第二天买入(卖出)标的,分位数水平设置为0.8。
②持仓量pcr双均线策略: 通过均线组合判断指标的变动方向进行择时,持续上涨时买入标的,持续下跌时卖出标的。
③持仓量pcr复合策略:当指标高于历史分位数水平时,第二天买入标的;当指标低于历史分位数水平时,通过均线组合判断指标的变动方向进行择时,持续上涨时买入标的,持续下跌时卖出标的。均线策略的时间窗口为2/5。
策略初始资金2w,手续费万1.2,固定止盈止损比为4:1。
经过回测,三个策略的交易次数分别为109、286、72。可以看出PCR历史分位数策略的交易次数居中,而PCR均线策略的次数最多,将分位数与均线进行结合后,策略的开仓次数较之均线策略明显减少。
图 2.3 持仓量策略交易时间节点(①/②/③)

 

从三个策略的净值曲线来看,PCR均线策略整体周期的表现相对较优,历史分位数策略在2016年中期以后的开仓次数明显减少,使得策略净值曲线变化不大,进而降低了最大回撤。复合策略的净值走势与标的较为相似。从指标上来看,三个策略均取得不错的收益,其中历史分位数策略的收益低于标的资产,但最大回撤明显小于标的与其余两个策略。

图 2.4 持仓量PCR策略净值

  

表 2.2 持仓量PCR策略指标计算

3.成交金额PCR策略

通过成交金额PCR的变动情况来判断标的走势,构建基于标的的多头策略。
①持仓量pcr策略:指标值高于(低于)历史分位数水平时第二天卖出(买入)标的,分位数水平设置为0.5。
②成交金额pcr双均线策略: 通过均线组合判断指标的变动方向进行择时,持续上涨时卖出标的,持续下跌时买入标的。
③成交金额pcr复合策略:当指标低于历史分位数水平时,第二天买入标的;当指标高于历史分位数水平时,通过均线组合判断指标的变动方向进行择时,持续上涨时卖出标的,持续下跌时买入标的,均线策略的时间窗口为2/5。
策略初始资金2w,手续费万1.2,固定止盈止损比为4:1。
经过回测,三个策略的交易次数分别为313、392、231。可以看出PCR历史分位数策略的交易次数居中,而PCR均线策略的次数最多,将分位数与均线进行结合后,策略的开仓次数较之均线策略明显减少。

图 2.5 持仓量策略交易时间节点(①/②/③)

从三个策略的净值曲线来看,PCR均线策略整体周期的表现相对较优,历史分位数策略与复合策略的表现不佳。从指标上来看,历史分位数策略整体的收益不佳,只有PCR均线策略的收益要优于标的。

图 2.6 成交金额PCR策略净值

 

 

  表 2.3 成交金额PCR策略指标计算

 三、思考

通过学习研究与具体的回测检验,我们发现:

1.策略的阈值/分位数水平/时间窗口的选择对策略的收益情况有着较大的影响,虽然对历史数据回测时进行参数调优可以找出统计意义上的最优策略,但是历史数据不代表未来,使用调优后的参数进行当下的策略投资时,往往具有不确定性因素。

2.可以将成交量/持仓量/成交金额PCR进行综合构建,以期更好的择时效果。

参考资料:

期权市场 PCR 指标的策略应用.中信期货

有关【期权系列】期权市场 PCR 指标的策略应用的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  3. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  4. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  5. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  6. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  7. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  8. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

  9. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  10. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

随机推荐