Python量化之期货期权无风险套利测试

论坛 期权论坛 期权     
穿白衬衣黑人   2020-7-24 08:58   28793   1
  基于天勤量化平台监控套利机会
  利用期权平价关系式:
  1,K+C < F,即执行价K+权利金C<期货价格,此时买入看涨期权+卖空期货,左边等于低价买入期货,右边高价卖出期货,形成锁仓利润
  2,K - P > F,即执行价K-权利金P>期货价格,此时买入看跌期权+买入期货,左边等于高价卖空期货,右边低价买入期货,形成锁仓利润
  3,K + C - P < F,即执行价K+权利金C-权利金P<期货价格,此时买入看涨期权+卖出看跌期权+卖空期货,左边等于低价买入期货,右边高价卖出期货,形成锁仓利润
  4,K + C - P > F,即执行价K+权利金C-权利金P>期货价格,此时买入看跌期权+卖出看涨期权+买入期货,左边等于高价卖空期货,右边低价买入期货,形成锁仓利润
  由于下单成交都是以对手价执行,所以以对手价计算上述关系式,关系式成立立即以对手价下单,便可获得无风险利润
  监控代码如下:
  1. #!/usr/bin/env python
  2. #  -*- coding: utf-8 -*-

  3. from tqsdk import TqApi

  4. api = TqApi()

  5. quote_C = api.get_quote('CZCE.MA009C1975')
  6. quote_P = api.get_quote('CZCE.MA009P1975')
  7. quote_F = api.get_quote(quote_C.underlying_symbol)
  8. while True :
  9.     api.wait_update()
  10.     Cb = quote_C.strike_price + quote_C.ask_price1 #K+C
  11.     Pb = quote_P.strike_price - quote_P.ask_price1 #K-P
  12.     CbPs_Fs = quote_P.strike_price + quote_C.ask_price1 - quote_P.bid_price1 #K+C-P
  13.     PbCs_Fb = quote_P.strike_price + quote_C.bid_price1 - quote_P.ask_price1 #K+C-P
  14.     Fb = quote_F.ask_price1 #期货买入价
  15.     Fs = quote_F.bid_price1 #期货卖出价
  16.     print('K+C<F:多看涨期权+空期货', Cb, Fs, Cb<Fs)
  17.     print('K-P>F:多看跌期权+多期货', Pb, Fb, Pb>Fb)
  18.     print('K+C-P<F:多看涨期权+空看跌期权+空期货', CbPs_Fs, Fs, CbPs_Fs<Fs)
  19.     print('K+C-P>F:多看跌期权+空看涨期权+多期货', PbCs_Fb, Fb, PbCs_Fb>Fb)
  20. 上述代码以执行价为1975的豆粕期权为例,运行发现似乎没有套利机会,输出监控结果都是False

  21. K+C<F:多看涨期权+空期货 1985.0 1829.0 False
  22. K-P>F:多看跌期权+多期货 1819.0 1830.0 False
  23. K+C-P<F:多看涨期权+空看跌期权+空期货 1832.5 1829.0 False
  24. K+C-P>F:多看跌期权+空看涨期权+多期货 1828.0 1830.0 False
  25. K+C<F:多看涨期权+空期货 1985.0 1829.0 False
  26. K-P>F:多看跌期权+多期货 1819.0 1830.0 False
  27. K+C-P<F:多看涨期权+空看跌期权+空期货 1832.5 1829.0 False
  28. K+C-P>F:多看跌期权+空看涨期权+多期货 1828.0 1830.0 False
  29. K+C<F:多看涨期权+空期货 1985.0 1829.0 False
  30. K-P>F:多看跌期权+多期货 1819.0 1830.0 False
  31. K+C-P<F:多看涨期权+空看跌期权+空期货 1832.5 1829.0 False
  32. K+C-P>F:多看跌期权+空看涨期权+多期货 1828.0 1830.0 False
  33. K+C<F:多看涨期权+空期货 1985.0 1829.0 False
  34. K-P>F:多看跌期权+多期货 1819.0 1830.0 False
  35. K+C-P<F:多看涨期权+空看跌期权+空期货 1832.5 1829.0 False
  36. K+C-P>F:多看跌期权+空看涨期权+多期货 1828.0 1830.0 False
  37. K+C<F:多看涨期权+空期货 1985.0 1829.0 False
  38. K-P>F:多看跌期权+多期货 1819.0 1830.0 False
  39. K+C-P<F:多看涨期权+空看跌期权+空期货 1832.5 1829.0 False
  40. K+C-P>F:多看跌期权+空看涨期权+多期货 1828.0 1830.0 False
  41. K+C<F:多看涨期权+空期货 1985.0 1829.0 False
  42. K-P>F:多看跌期权+多期货 1819.0 1830.0 False
  43. K+C-P<F:多看涨期权+空看跌期权+空期货 1832.5 1829.0 False
  44. K+C-P>F:多看跌期权+空看涨期权+多期货 1828.0 1830.0 False
  45. K+C<F:多看涨期权+空期货 1985.0 1829.0 False
  46. K-P>F:多看跌期权+多期货 1819.0 1830.0 False
  47. K+C-P<F:多看涨期权+空看跌期权+空期货 1832.5 1829.0 False
  48. K+C-P>F:多看跌期权+空看涨期权+多期货 1828.0 1830.0 False
复制代码

 看来想要低买高卖锁定无风险利润不太容易,若偶尔能出现套利机会还是不错的,若一直长时间都没有机会,可能确实真没机会,或者监控更多品种能有更多机会。
  可能还有一种办法,先成交一边,等另一边波动形成套利机会时再立即成交另一边,此时就需要其他技术手段监控两边价格的波动方向了
  做Python量化的可以一块交流

分享到 :
0 人收藏

1 个回复

倒序浏览
2#
穿白衬衣黑人  8级牛人 | 2020-7-24 08:59:19 发帖IP地址来自 澳大利亚
来自:诸神黄昏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1939
帖子:550
精华:1
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP