量化交易

2022/10/29 Finance 共 4501 字,约 13 分钟

量化交易

基本知识

回测指标

beta值相当于业绩评价基准收益的总体波动性。常被用于衡量某一策略的系统性风险。如果beta值大于1,策略波动大于市场,否则,策略波动小于市场。 还有Alpha值,代表实际收益和按照beta系数计算的期望收益之间的差额,代表策略多大程度上跑赢了预期的收益率。可以理解为超额收益率。

计算这两个值要选一个基准,一般是沪深300指数。

夏普比率代表每多承担一份风险,可以获得几份回报,即单位风险所获得的超额回报,该比率越高,策略承担单位风险得到的超额回报越高,所以夏普比率越高越好。夏普指数代表投资人每多承担一分风险,可以拿到几分超额报酬;若为正值,代表基金报酬率高过波动风险;若为负值,代表基金操作风险大过于报酬率。这样一来,每个投资组合都可以计算Sharpe Ratio。夏普比率没有基准点,因此其大小本身没有意义,只有在与其他组合的比较中才有价值。

统计学知识

数据的离散度

极差:最大值与最小值之差。

平均绝对偏差:数据与平均值的差的绝对值的平均值。

方差:数据与均值之差的平方的平均值(但除以n-1而不是除以n)。

标准差:方差的平方根。

考虑分红配股的收益

除息价=股息登记日的收盘价-每股红利现金额

除权价=股权登记日的收盘价/(1+每股送红股数或转增股数)

除权除息价=(股息登记日的收盘价-每股红利现金额)/(1+每股送红股数或转增股数)

网格交易

https://juejin.cn/post/6844903998793728007

风险指标

参考

实战

PyPI:https://pypi.org/project/qstock/1.3.4/

关于 qstock 更详细的使用方法,请参考微信公众号Python金融量化 qstock 专题系列文章:

【qstock开源了】数据篇之行情交易数据
【qstock数据篇】行业概念板块与资金流
【qstock量化】数据篇之股票基本面数据
【qstock量化】数据篇之宏观指标和财经新闻文本
【qstock量化】动态交互数据可视化
【qstock量化】技术形态与概念热点选股池
【手把手教你】使用qstock实现量化策略选股
【手把手教你】使用qstock进行量化回测
 基于qstock的量化复盘与自动盯盘

脚本API

参考: https://github.com/LeekHub/leek-fund/blob/master/development.md

最新净值和估算

分时图

分时图 当日的基金净值变化,给code即可。是个图片

https://image.sinajs.cn/newchart/v5/fund/nav/ss/320007.gif 这个不算当日的,不行。是月维度的。
或者
https://j4.dfcfw.com/charts/pic6/510300.png 这个只能基金不能股票, etf也可以。 

分时图获取每分钟的净值,最高价。分时图
最低价。
成交量,如 114264(单位:股)。
成交金额,如 48676336.00(单位:元)。均价或收盘价,如 4.260。
这是东方财富的子域名。 可以国债etf获取1.511130

https://push2his.eastmoney.com/api/qt/stock/trends2/get?secid=0.000725&fields1=f1%2Cf2%2Cf3%2Cf4%2Cf5%2Cf6%2Cf7%2Cf8%2Cf9%2Cf10%2Cf11%2Cf12%2Cf13%2Cf14&fields2=f51%2Cf53%2Cf54%2Cf55%2Cf56%2Cf57%2Cf58&iscr=0&iscca=0&ut=f057cbcbce2a86e2866ab8877db1d059&ndays=1

获取最新净值

  • 东方财富的基金数据获取接口 https://fundmobapi.eastmoney.com/FundMNewApi/FundMNFInfo?pageIndex=1&pageSize=500&appType=ttjj&plat=Android&product=EFund&Version=1&deviceid=4252d0ac69bb50&Fcodes=006751,006752
    • 获取最新净值,和基金名称,可用。
    • 基金行,股票不行
  • 东方财富基金历史数据获取接口 http://fund.eastmoney.com/f10/F10DataApi.aspx?type=lsjz&code=005176&page=1&per=49 返回是格式化的,不是json

https://github.com/LeekHub/leek-fund/blob/master/development.md

股票的分时图 是图片,可用。

https://webquotepic.eastmoney.com/GetPic.aspx?imageType=r&nid=0.399006

参考 https://www.cnblogs.com/dion-90/articles/8586565.html

参考

  • 某一股票k线

https://push2his.eastmoney.com/api/qt/stock/kline/get?fields1=%s&fields2=%s&klt=%s&fqt=%s&secid=%s.%s&end=%s&lmt=%s

  • 某一行业k线

https://push2his.eastmoney.com/api/qt/stock/kline/get?fields1=%s&fields2=%s&klt=%s&fqt=%s&secid=%s.%s&end=%s&lmt=%s

fields1: f1,f3 (代码,名称)
fields2: f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61 (日期,开盘,收盘,最高,最低,成交量,成交额,振幅,涨跌幅,涨跌额,换手率)
klt: k线类型 (101日线 102周线 103月线 104季线 105半年线 106年线)
fqt: 复权类型 (0不复权 1前复权 2后复权)
secid: 股票/行业代码 如股票 0.002594 (0深股 1沪股) 如行业 90.BK0733 (90是固定值)
end: 20500101 (非固定值 可以更大或者再小一点 也不知道干啥的)
lmt: 965 (limit)

获取比亚迪的每天的k线图

https://push2his.eastmoney.com/api/qt/stock/kline/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61&klt=101&fqt=1&secid=0.002594&end=20500101&lmt=5

https://push2.eastmoney.com/api/qt/ulist.np/get?fltt=2&invt=2&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,f50,f51,f52,f53,f54,f55,f56,f57,f58,f59,f60&secids=1.511130,1.513010,1.518880

f15是最高价
f16是最低价
f14是名称
f12是code
f2是当前价格
f3是涨跌幅
  • 行业列表

https://push2.eastmoney.com/api/qt/clist/get?np=%s&pn=%s&pz=%s&fs=%s&fields=%s

  • 某一行业下的股票列表

https://push2.eastmoney.com/api/qt/clist/get?np=%s&pn=%s&pz=%s&fs=%s&fields=%s

np: 1 (jsonArray格式)
pn: 1 (offset)
pz: 965 (limit)
fs: 股票/行业代码 如股票 b:BK0477 (b:是固定值) 如行业 m:90+t:2 (固定值)
fields: f12,f14 (代码,名称)

现在有了分时图、k线图、

给一个股票代码 code,

  • 返回分时图
  • 如果有大跌则通知
  • 如果2:30到2:45期间有拉升相比最低价超过1%,则通知

github创建react应用。 https://github.com/gitname/react-gh-pages

import easyquotation

# quotation = easyquotation.use('sina')


def get_now_price(stock_id):
    data_dict = quotation.real(stock_id)

    if data_dict:
        now_price = data_dict[stock_id]['now']
        return now_price
    print("error")
    return -1
if __name__ == '__main__':
    # 分时图, 不能国债etf
    # quotation = easyquotation.use("timekline")
    # data = quotation.real([''], prefix=True)
    # k线图, 不能国债etf.
    # quotation = easyquotation.use("daykline")
    # data = quotation.real(['1.511130'])
    # print(data)

    # 行情, 可以国债etf
    quotation = easyquotation.use("sina")
    data = quotation.stocks(['511130'], prefix=True)
    print(data)

qstock

参考

安卓自动化交易

mac安装模拟器。 https://cn-sec.com/archives/1507705.html

数据获取

Qstock. 日线分钟线都有。

通达信,日线分钟线都有。

yfinance,日线也是免费的。 分钟线不确定. 不确定A股是否可用。

tushare可用,分钟线要积分。

Efinance,都有,主线流入也有。

backtrader回测

https://textdata.cn/blog/backtrader_demo/

Search

    Table of Contents