如何用Python下载并分析期货持仓数据
期货持仓报告
期货持仓报告,简称COT(Commitment of Traders)报告,记录机构投资者包括商业公司和对冲基金的期货持仓数据。由美国期货交易委员会(CFTC)公布,公布时间是每周五下午2点30分(美东时间)。
我们关注的是传统格式(Legacy Format)的COT报告,汇总了期货和期权的持仓数据。
传统格式的COT报告包含以下数据:
- 商业持仓(Commercial): 产品制造商/销售商的期货持仓,划分为多头和空头,用期货来对冲价格波动的风险。
- 非商业持仓(Noncommercial): 对冲基金,投行和大型个人玩家的期货持仓,划分为多头和空头,简称"投机性头寸"。
- 多头持仓(Long): 多头合约的数量。
- 空头持仓(Short): 空头合约的数量。
- 未平仓合约(Open Interest): 流通在外未交割的合约数量。
- 无需报备头寸(Non-reportable Position): 未达到CFTC要求的未平仓合约数量,指小玩家的持仓。
非商业持仓代表了大玩家对未来价格的预期,如果它们押注价格上涨,大额买入推动价格上涨,反之亦然。但我们从均值回归的角度解读这个指标,当非商业净多头头寸创新高,后续将缺乏足够的买盘支持价格的进一步上涨,价格有可能处于周期性顶部;相反当净空头创历史新高,表明多数投资者都押注价格下跌,这时候价格可能筑底。
import os
import timeimport requests
import quandl
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns%matplotlib inline
plt.style.use("ggplot")
1. 准备数据
从Quandl下载COT报告。
Quandl是金融数据提供商,有大量的免费数据集可以使用,用户需要先申请API密钥。
为了方便用Python获取数据,先安装三方库’quandl’.
codes = pd.read_csv("./cot.csv")
codes.head()
category | symbol | name | cnname | code_future | code | |
---|---|---|---|---|---|---|
0 | currency | ICE_DX | U.S. Dollar Index | 美元指数 | CHRIS/ICE_DX1 | CFTC/098662_FO_L_ALL |
1 | currency | CME_BT | Bitcoin CME Futures | 比特币 | NaN | CFTC/133741_FO_L_ALL |
2 | currency | CME_BP | British Pound | 英镑 | CHRIS/CME_BP1 | CFTC/096742_FO_L_ALL |
3 | currency | CME_CD | Canadian Dollar | 加元 | CHRIS/CME_CD1 | CFTC/090741_FO_L_ALL |
4 | currency | CME_JY | Japanese Yen | 日元 | CHRIS/CME_JY1 | CFTC/097741_FO_L_ALL |
quandl.ApiConfig.api_key = "your api key"
quandl.ApiConfig.api_key = os.getenv("QUANDL_API")# 下载货币,指数,能源和金融期货的的COT报告
categories = ["currency", "energy", "index", "metal"]
cot_list = []t0 = time.time()for _, row in codes.loc[codes.category.isin(categories)].iterrows():try:symbol, code = row["symbol"], row["code"]df = quandl.get(code)df["symbol"] = symbolcot_list.append(df)print(f"{symbol}: download data success")except Exception as e:print(f"{symbol}: download failed {e}")time.sleep(1)# 下载完毕后先合并数据,然后保存在本地csv,方便后续使用
cot_joined = pd.concat(cot_list)
cot_joined.to_csv("./cot_history.csv", index=True)elapsed = (time.time() - t0) / 60.0
print(f"tasks completed in {elapsed:.2f} minutes")
ICE_DX: download data success
CME_BT: download data success
CME_BP: download data success
CME_CD: download data success
CME_JY: download data success
CME_SF: download data success
CME_EC: download data success
CME_AD: download data success
CME_MP: download data success
CME_NE: download data success
CME_RA: download data success
CME_BR: download data success
CME_RU: download data success
CME_CL: download data success
CME_RB: download data success
CME_QG: download data success
CME_BZ: download data success
CME_EH: download data success
CME_ES: download data success
CME_NQ: download data success
CME_YM: download data success
CBOE_VX: download data success
CME_GC: download data success
CME_SI: download data success
CME_HG: download data success
CME_PL: download data success
CME_PA: download data success
tasks completed in 1.13 minutes
usecols = ["Date", "Open Interest", "Noncommercial Long", "Noncommercial Short","Commercial Long", "Commercial Short", "symbol"
]
cot = pd
如何用Python下载并分析期货持仓数据相关推荐
- 用Python下载并分析期货持仓数据
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于Trochil蜂鸟数据 ,作者蜂鸟数据Trochil 期货持仓报告 ...
- 用python做一张图片_如何用python下载一张图片
如何用python下载一张图片 这里要用到的主要工具是requests这个工具,需要先安装这个库才能使用,该库衍生自urllib这个库,但是要比它更好用.多数人在做爬虫的时候选择它,是个不错的选择. ...
- python怎么读取csv的一部分数据_python批量读取csv文件 如何用python将csv文件中的数据读取成数组...
如何用python把多个csv文件数据处理后汇总到新csv文件你看这月光多温柔,小编转头还能看见你,一切从未坍塌. 可以用pandas读取数据,首先把文件方同一个文件价里,然后对当前文件价的所有内容循 ...
- python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?
原标题:初学者如何用"python爬虫"技术抓取网页数据? 在当今社会,互联网上充斥着许多有用的数据.我们只需要耐心观察并添加一些技术手段即可获得大量有价值的数据.而这里的&quo ...
- python excel处理重复行并统计个数_excel两个表格数据核对python-如何用python实现两个文件重复数据筛选并统计...
怎么用python读取excel表格的数据 import pandas as pd excel1_data = pd.read_excel( 文件路径) excel2_data = pd.read_e ...
- python两个表格相同数据筛选_python如何统计所有文本文件的行数 如何用python实现两个文件重复数据筛选并统计...
如何用python统计文本中重复行的数目? python比较txt文档中每行文本之间重复词的个数不想面对他离开,逃避不是一个好方法,但却是唯一的办法. 每一行弄成一个集合,分享两个集合之间的交集,计算 ...
- 利用python下载哨兵1号轨道数据
python下载哨兵一号轨道数据 最近因为项目需要,突然想起来自己曾写过这么一份脚本,就顺便修改了一下.首先明确一下我们的目标,根据已经下载的哨兵1号影像文件,下载哨兵1号对应的精密轨道数据.哨兵轨道 ...
- python下载所有股票日交易数据
python下载所有股票日交易数据 一.下载 一.下载 #使用的变量a.b.c.d.e def DownStockData(StockCode):#引用 requests文件import reques ...
- python均线选股_python选股模型均线,已知股票数据,如何用Python绘制k线日对应数据...
Q1:已知股票数据,如何用Python绘制k线日对应数据 我没遇到过 只是自己写过 有点经验 先确定时间片 然后再把tick插入就行了 Q2:使用python实现ema(指数移动平均的计算) a = ...
最新文章
- 事物与持久化_揭开Redis面纱,发布订阅、事务、安全、持久化
- 设计模式之_动态代理_03
- Angular jasmine returnValue方法的实现原理
- bean包、entity包、mode包、domain包的区别
- mysql连接代替子查询_MySQL优化之使用连接(join)代替子查询
- 算法工程师面试备战笔记2_一个完整机器学习项目的流程
- 本机不装Oracle,使用plsql连接远程Oracle的方法
- 面向对象练习——校园管理系统
- Gopher协议与ssrf
- C# 使用AForge调用笔记本摄像头拍照
- Python学习之路,简单的注册登录小屁程序
- php调用pdf虚拟打印机,window_在Win7系统中怎么安装PDF彩色虚拟打印机?,前面说过,Word不能直接将文档 - phpStudy...
- 迪士尼挖角波士顿动力,耗时3年打造漫威英雄机器人,1:1复刻效果堪比CG
- 翡翠手链的起源和发展历史
- 去应用商店给app评分
- aspose-slides-22.5-jdk16
- 数字电视知识-- 机顶盒原理技术及应用
- hdmi接口线_太厉害了!HDMI线还能这么用,以前不知道真是浪费了
- oracle导入 不是dba,IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件
- 江苏省的计算机二级考试c语言
热门文章
- php 截取小时,php截取小时和分钟,在进行和其它时间段的比较
- 使用sfdisk对 emmc进行分区
- matio/mattorch
- Slf4j之MDC应用
- fei33423 如何写述职报告,总结 ppt
- 用Power BI 拖拽轻松做销售仪表盘(一次学会条形图,矩形图,折线图,树状图,饼图,切片器)
- 服务器推送消息方法总结及实现(java)
- 与蒙牛“抢奶”后,伊利距千亿营收梦还差几步?
- dbo mysql中有没有_SQL server 中的dbo、guest
- Docker镜像仓库registry