量化投资分析平台 迅投 QMT(四)获取标的期权的代码

量化投资分析平台 迅投 QMT

  • [迅投 QMT](https://www.xuntou.net/?user_code=7NYs7O)
    • 我目前在使用
    • 有了底层标的如何获取期权的交易代码呢?
    • 上代码
        • 历史帖子

迅投 QMT

我目前在使用

两个月前(2024年4月)迅投和CQF有一个互动的活动,进行了平台的一个网上路演,刚好我也去听了,感觉还是挺不错的。后来与“客服麻瓜”进行了对QMT的深入了解和使用,最后决定买了他们的服务。注册就可以进行试用,但是是有期限的。如果只是单方面的研究的话,还是建议用稍微便宜些的平台,我主要是需要期权的实时数据进行分析和交易。

有了底层标的如何获取期权的交易代码呢?

我们知道期权交易是有时效性的,目前A股开放的可交易期权都是欧式期权,也就是说只有到了交割日才能行权。这样对于我们交易者来讲还是比较友好的,计算起来更方便些。目前A股的期权的时效是当月、隔月、季度、半年,四个周期。按照今天2024年6月5日来看,沪深300ETF的期权的交割月是6月、7月、9月、和12月。如果到了7月,就是7月、8月、10月、和次年1月。说实话,的确挺烦人的,烧脑的逻辑。那我今天呢就给大家展示一下我实现的方式。

上代码

  1. 首先我们先把日期锁定为本月到次年上月,按照2024年6月距离,就是到2025年的5月;然后按照月份进行获取期权数据;最终把底层标的的期权交易代码全部获取出来。
def obtain_annual_opt_tickers(ticker_: str):current_month = str(dt.now().strftime('%Y%m%d'))   # 当月one_year_later = dt.now() + relativedelta(years=1)   # 次年上月计算one_year_later = str(one_year_later.strftime('%Y%m%d'))   # 次年上月转string格式#通过pandas的date_range()函数获取未来12个月所有的日期,频率为"M"month月份dates = pd.date_range(start=current_month, end=one_year_later, freq='M')# Convert the dates to the required format (YYYYMM)expiration_months = [date.strftime('%Y%m') for date in dates]   # 将获取到的12个月打包列表并设置格式为yyyymmoption_tickers = []for month in expiration_months:option_tickers.append(xtdata.get_option_list(ticker_, month, isavailavle=True)   # 这里ticker_参数为标的资产,举例'510050.SH')# Flatten the list 因为这里我们会收到套娃的列表,需要处理,扁平处理flattened_option_tickers = [item for sublist in option_tickers for item in sublist]return flattened_option_tickersobtain_annual_opt_tickers('510050.SH')[-5:]'>>> ['10007156.SHO', '10007229.SHO', '10007230.SHO', '10007245.SHO', '10007246.SHO']'
'>>> 这样我们就获取到目前底层标的资产所有的期权交易代码的ticker了'
  1. 拿到所有期权交易代码ticker后我们来进行遍历,把所有的标的资产期权信息做成一个dataframe,为后续做准备。
@cache
def option_details(ticker_: str):flat_opt_tickers_list = obtain_annual_opt_tickers(ticker_)df_opt_details_ = pd.DataFrame()for tick_ in flat_opt_tickers_list:xtdata.download_history_data(tick_, period='1d')opt_detail_ = pd.DataFrame([xtdata.get_option_detail_data(tick_)])df_opt_details_ = pd.concat([df_opt_details_, opt_detail_], axis=0)   # 纵向拼接time.sleep(1/25)df_opt_details_ = df_opt_details_.reset_index(drop=True)   # 重置引索,避免后面出问题# add exchange ID to the instrument ID for latter usenew_instID = df_opt_details_['InstrumentID'] + '.' + df_opt_details_.ExchangeID.unique()[0]df_opt_details_['InstrumentID'] = new_instID   # 重新定义'InstrumentID'# retain only useful columnsdf_opt_details_ = df_opt_details_[['InstrumentID', 'InstrumentName', 'OpenDate', 'CreateDate', 'ExpireDate', 'PreClose', 'UpStopPrice', 'DownStopPrice', 'LongMarginRatio', 'ShortMarginRatio', 'VolumeMultiple', 'MaxMarketOrderVolume', 'MinMarketOrderVolume', 'MaxLimitOrderVolume', 'MinLimitOrderVolume', 'OptUnit', 'MarginUnit', 'OptExercisePrice', 'OptUndlRiskFreeRate', 'OptUndlHistoryRate', 'optType']].reset_index(drop=True)# construct a new column for days to expiry for volatility use# 重新定义交割日格式,为了计算剩余交割天数使用df_opt_details_['ExpireDate'] = pd.to_datetime(df_opt_details_['ExpireDate'], format='%Y%m%d')# 增加新列,到期交割日天数,后面会使用到,很重要的数据,BSM模型也会用到df_opt_details_['days_to_expiry'] = (df_opt_details_['ExpireDate'] - dt.now()).dt.daysreturn df_opt_details_option_details('510050.SH')
'>>> 我就不截完整图了,太大了,意思一下,大家知道是什么就好。'

期权信息截图
这样我们就获取到所有的底层标的期权的交易代码和期权完整信息了。

下一贴我来跟大家讲一讲我对期权的理解,普及一些期权这类衍生品的相关知识。

希望大家能够给予一键三连啥的,您的鼓励就是我最大的动力!

历史帖子

量化投资分析平台 迅投 QMT(一)激活python迅投对接端口
量化投资分析平台 迅投 QMT(二)服务器端订阅下载数据
量化投资分析平台 迅投 QMT(三)字典数据下载后读取成Dataframe形式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/342187.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5G+北斗智能手持终端在哪些行业中发挥作用

在当今科技融合发展的浪潮中,5G北斗智能手持终端正逐步成为驱动各行各业智能化升级的关键力量。这一融合创新技术不仅重塑了传统的通信与定位方式,而且在多个核心领域展现了其变革性的应用价值。 5G北斗智能手持终端因其独特的技术组合,在多个…

人工智能芯片封装技术及应用趋势分析

简介人工智能(AI)、物联网(IoT)和大数据的融合正在开创全新的智能时代,以智能解决方案改变各行各业。人工智能芯片在支持人工智能学习和推理计算方面发挥着非常重要的作用,可实现各行各业的多样化应用。 本…

【1990年-2022年】地级市人均GDP数据集(excel+shp)

数据简介:人均国内生产总值(Real GDP per capita)是人们了解和把握一个国家或地区的宏观经济运行状况的有效工具,即“人均GDP”,常作为发展经济学中衡量经济发展状况的指标,是最重要的宏观经济指标之一。 将…

首批Milvus Cloud获得亚马逊云科技生成式 AI 合作伙伴能力认证

Milvus Cloud正式宣布通过亚马逊云科技生成式 AI 能力认证!这一认证不仅肯定了 Zilliz 在人工智能和非结构化数据领域的卓越能力,也标志着 Zilliz 在推动 AI 技术创新和应用的道路上迈出了重要一步。 亚马逊云科技生成式 AI 能力认证,可以通过认证帮助合作伙伴更好地利用亚马…

手持终端RFID电子标签读写器超高频手持机

RFID手持机具备RFID读写功能,可以对RFID标签进行识读,是有特定功能的PDA(便携式移动终端)。 作为现代化信息管理工具的重要组成部分,其强大的功能和便捷的操作性正在越来越多的领域得到应用。从物流仓储到零售管理,从生产制造到医…

【全开源】小区入户安检系统(FastAdmin + Uni-APP)

守护家的每一道防线 一款基于FastAdmin Uni-APP开发的小区入户安检系统(前端可发布为小程序、H5、App)。可针对不同行业自定义安检项目,线下安检,线上留存(安检拍照/录像),提高安检人员安检效率。 一、引言&#xff…

Java(十)——内部类

文章目录 内部类静态内部类实例内部类匿名内部类局部内部类 内部类 Java内部类是一种特殊的类定义方式,它允许在一个类的内部定义另一个类。 内部类可以访问其所在外部类的成员变量和成员方法,这使得它非常适用于封装与外部类紧密相关的私有逻辑。 内…

【软件测试】6.设计测试用例的设计方法

目录 1.基于需求的设计方法 2.具体的设计方法 2.1等价类 2.2边界值 2.3正交法 2.4判定表法 2.5场景法 2.6 错误猜测法 1.基于需求的设计方法 基于需求的设计方法也是总的设计测试用例的方法,在工作中,我们需要参考需求文档/产品规格说明书来设计…

zoomeye api报错 request invalid, validate usage and try again

项目场景: 调用zoomeye的api接口进行数据拿取 问题描述 之前接口一直通着今天突然报错,以下为源代码 pip install zoomeye from zoomeye.sdk import ZoomEye zm ZoomEye(api_key"34A8B452-D874-C63E0-8471-F3D4f89766f") zm.dork_search(a…

Unity VR 零基础开发之 Pico4 MR

一、新建Unity2021.3.37 3D工程 二、切换到Android安卓平台 1、点击Unity编辑器左上角的Flie后,选择Build Setting选项。 2、弹出弹窗后,点击Android选项,然后再点击Switch Platform按钮切换成安卓平台。 3、切换完成后Android选项后面会显示…

Linux进程替换 自主shell程序

本篇将要讲解有关进程中最后一个知识点——进程替换,其中主要介绍有关进程替换的六个函数,直接从函数层面来理解进程替换(在使用函数的过程中,也会对进行替换进行解释)。本篇主要围绕如下的进程替换函数: 以…

体验式营销+旅行文化:品牌海外推广的创新之路

在全球化的时代背景下,体验式营销作为一种新兴的营销方式,以其独特的参与性、互动性和情感共鸣,成为品牌与消费者建立深层次联系的有效手段。而将体验式营销与旅行文化相结合,能够为海外消费者提供独特的品牌体验。本文Nox聚星将和…

HTML+CSS+JS 动态登录表单

效果演示 实现了一个登录表单的背景动画效果,包括一个渐变背景、一个输入框和一个登录按钮。背景动画由多个不同大小和颜色的正方形组成,它们在页面上以不同的速度和方向移动。当用户成功登录后,标题会向上移动,表单会消失。 Code <!DOCTYPE html> <html lang=&q…

独著出书的出版流程是怎样的?

独著出书的出版流程一般包括以下几个步骤&#xff1a; 1. 准备书稿&#xff1a;确保书稿内容完整、准确&#xff0c;并符合出版社的要求。 2. 选择出版社&#xff1a;根据书稿的主题和内容&#xff0c;选择合适的出版社。可以考虑出版社的专业性、声誉和出版范围等因素。 3.…

Qt如何让按钮的菜单出现在按钮的右侧

直接上代码&#xff0c;我们用到了一个eventfilter的函数功能。这个函数比较厉害和重要&#xff0c;大家务必经常拿出来看看。 void MainWindow::initMenu() { QMenu* menuLiXiang new QMenu; QAction* actXiangMuZhangCheng new QAction("项目章程"); …

计算机网络学习记录 应用层 Day6

你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner &#x1f339; 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 &#x1f604; (^ ~ ^) 想看更多 那就点个关注吧 我…

若依前后端分离Spring Security新增手机号登录

备忘贴 转自&#xff1a;【若依RuoYi短信验证码登录】汇总_数据库_z_xiao_qiang-RuoYi 若依 配置Security: 按照Security的流程图可知&#xff0c;实现多种方式登录&#xff0c;只需要重写三个主要的组件&#xff0c;第一个用户认证处理过滤器&#xff0c;第二个用户认证tok…

vue3引入cesium和olcs

首先引入包 pnpm i olcs; pnpm i -D vite-plugin-cesium pnpm i -S cesium在vite.config.js中配置&#xff0c;参考这位大佬的笔记 添加链接描述 import { defineConfig } from vite import vue from vitejs/plugin-vue import cesium from vite-plugin-cesium; // https://…

操作系统入门系列-MIT6.828(操作系统工程)学习笔记(三)---- xv6初探与实验一(Lab: Xv6 and Unix utilities)

系列文章目录 操作系统入门系列-MIT6.S081&#xff08;操作系统&#xff09;学习笔记&#xff08;一&#xff09;---- 操作系统介绍与接口示例 操作系统入门系列-MIT6.828&#xff08;操作系统工程&#xff09;学习笔记&#xff08;二&#xff09;----课程实验环境搭建&#x…