将反向操作由1.python量化——alpha股票-指数期货对冲策略的股指期货,换成筛选的后T只股票的做空(融资融券业务)。
大概思路就是选择排名前T只股票做多,后T只做空。

  1. 所用库
# coding=utf-8
import math
import tushare as ts
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import talib
matplotlib.rcParams['axes.unicode_minus']=False
plt.rcParams['font.sans-serif']=['SimHei']
  1. 数据获取
ts.set_token('f3e00ef    token 码01c6811477')
pro = ts.pro_api()
df1= pro.query('daily_basic', ts_code='', trade_date='20200420',fields='ts_code,trade_date,total_mv,ps,pe,pb')#获取日期所有数据
df1_=df1#赋值一个  用于计算最后T名股票
  1. 股票筛选函数
#################################筛选股票函数######################################
def XG_function(df1,sig):     #sig=True是筛选前T只股票的参数,sig=False则是后T只
#条件选股,排名前20df1=df1[   df1['pe']>45   ] df1=df1[   df1['pb']>8     ] df1=df1[   df1['ps']>17   ] df1=df1[   df1['total_mv']<5000000   ]#排序选股df1=df1.sort_values(by="pe" , ascending=sig)df1=df1.head(100)#按由低到高排,选前100名df1=df1.sort_values(by="ps" , ascending=sig)df1=df1.head(70)df1=df1.sort_values(by="pb" , ascending=sig)df1=df1.head(20)df1=df1['ts_code']#获得一篮子股票return df1
  1. 计算前T 后T只股票的等权重收益
code='000300.SH'
star='20200430'
end="20200810"
###################计算组合的等权重收益率##########################################
def Sy_function(df1,star,end):cum=0for i in df1:df=pro.query('daily', ts_code=i, start_date=star, end_date=end,fields='')   df=df.sort_index()df.index=pd.to_datetime(df.trade_date,format='%Y-%m-%d')#设置日期索引ret=df.change/df.close.shift(-1)dd=pd.Series(1,index=df.close.index)cumqq=ret*dd.shift(1).dropna()cum=(np.cumprod(1+ret[cumqq.index[0:]])-1)/len(df1)+cum#等权重配置一篮子股票return cum,ret
  1. 计算沪深300的作为比较基准
####################计算收益率函数,如沪深300#####################################
def JZ_function(code,star,end):df12 = pro.index_daily( ts_code=code, start_date=star, end_date=end)df12=df12.sort_index()df12.index=pd.to_datetime(df12.trade_date,format='%Y-%m-%d')#设置日期索引ret12=df12.change/df12.close#将顺序颠倒aq=pd.Series(1,index=df12.close.index) SmaRet=ret12*aq.shift(1).dropna()cum12=np.cumprod(1+ret12[SmaRet.index[0:]])-1return cum12
  1. 策略统计函数(计算最大回撤等)
#############################策略的年化统计######################################
def Tongji(RET,cum):RET1 = RET*100 - (4/252)NH=cum[-2]*100*252/len(RET.index)BD=np.std(RET)*100*np.sqrt(252)SR=(NH-400/252)/BDfor i in range(len(cum)):if cum[cum.index[i]]==cum.max():MHC=(cum.max()-cum[cum.index[i:]].min())*100/cum.max()print("年化收益率:{:.2f}%:,年化夏普率:{:.2f},波动率为:{:.2f}%,最大回撤:{:.2f}%".format( NH,SR,BD,MHC))
############################################################################
  1. 调用函数
if __name__=="__main__":cum=Sy_function(XG_function(df1,sig=True),star,end)[0] cum13=Sy_function(XG_function(df1_,sig=False),star,end)[0]  cum12=JZ_function(code,star,end)RET=Sy_function(XG_function(df1,sig=True),star,end)[1]-Sy_function(XG_function(df1_,sig=False),star,end)[1] Tongji(RET,cum-cum13)plt.plot(cum12,label="沪深300",color='b')plt.plot(cum,label="股票组合",color='y')plt.plot(cum-cum13,label="alpha稳定收益",color='r')plt.title("alpha股+指期对冲策略")plt.legend()

结果:

年化收益率:83.92%:,年化夏普率:0.92,波动率为:29.66%,最大回撤:28.34%

10. 然后我们看看201905-201908 的情况

alpha年化收益率:21.39%:,年化夏普率:0.46,波动率为:46.65%


计算在震荡的行情,也是可以获利的,波动确实很大。

  1. 整体代码
##########alpha 股_融券对冲策略#############
# coding=utf-8
import math
import tushare as ts
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import talib
matplotlib.rcParams['axes.unicode_minus']=False
plt.rcParams['font.sans-serif']=['SimHei']
ts.set_token('f3ti填入token 码7')
pro = ts.pro_api()
df1= pro.query('daily_basic', ts_code='', trade_date='20200420',fields='ts_code,trade_date,total_mv,ps,pe,pb')#获取日期所有数据
df1_=df1#赋值一个  用于计算最后T名股票#################################筛选股票函数######################################
def XG_function(df1,sig):
#条件选股,排名前20df1=df1[   df1['pe']>45   ] df1=df1[   df1['pb']>8     ] df1=df1[   df1['ps']>17   ] df1=df1[   df1['total_mv']<5000000   ]#排序选股df1=df1.sort_values(by="pe" , ascending=sig)df1=df1.head(100)#按由低到高排,选前100名df1=df1.sort_values(by="ps" , ascending=sig)df1=df1.head(70)df1=df1.sort_values(by="pb" , ascending=sig)df1=df1.head(20)df1=df1['ts_code']#获得一篮子股票return df1code='000300.SH'
star='20200430'
end="20200810"
###################计算组合的等权重收益率##########################################
def Sy_function(df1,star,end):cum=0for i in df1:df=pro.query('daily', ts_code=i, start_date=star, end_date=end,fields='')   df=df.sort_index()df.index=pd.to_datetime(df.trade_date,format='%Y-%m-%d')#设置日期索引ret=df.change/df.close.shift(-1)dd=pd.Series(1,index=df.close.index)cumqq=ret*dd.shift(1).dropna()cum=(np.cumprod(1+ret[cumqq.index[0:]])-1)/len(df1)+cum#等权重配置一篮子股票return cum,ret####################计算收益率函数,如沪深300#####################################
def JZ_function(code,star,end):df12 = pro.index_daily( ts_code=code, start_date=star, end_date=end)df12=df12.sort_index()df12.index=pd.to_datetime(df12.trade_date,format='%Y-%m-%d')#设置日期索引ret12=df12.change/df12.close#将顺序颠倒aq=pd.Series(1,index=df12.close.index) SmaRet=ret12*aq.shift(1).dropna()cum12=np.cumprod(1+ret12[SmaRet.index[0:]])-1return cum12#############################策略的年化统计######################################
def Tongji(RET,cum):RET1 = RET*100 - (4/252)NH=cum[-2]*100*252/len(RET.index)BD=np.std(RET)*100*np.sqrt(252)SR=(NH-400/252)/BDfor i in range(len(cum)):if cum[cum.index[i]]==cum.max():MHC=(cum.max()-cum[cum.index[i:]].min())*100/cum.max()print("年化收益率:{:.2f}%:,年化夏普率:{:.2f},波动率为:{:.2f}%,最大回撤:{:.2f}%".format( NH,SR,BD,MHC))
############################################################################if __name__=="__main__":cum=Sy_function(XG_function(df1,sig=True),star,end)[0] cum13=Sy_function(XG_function(df1_,sig=False),star,end)[0]  cum12=JZ_function(code,star,end)RET=Sy_function(XG_function(df1,sig=True),star,end)[1]-Sy_function(XG_function(df1_,sig=False),star,end)[1] Tongji(RET,cum-cum13)plt.plot(cum12,label="沪深300",color='b')plt.plot(cum,label="股票组合",color='y')plt.plot(cum-cum13,label="alpha稳定收益",color='r')plt.title("alpha股+指期对冲策略")plt.legend()

1.python量化——alpha股票-指数期货对冲策略(1)
2.多因子选股策略
3.海龟交易策略
4.移动平均策略——单/双均线策略
5.改进的美林时钟策略(一)
5.改进的美林时钟策略(二)
6.改进的美林时钟策略(三)

python量化策略—— alpha 策略 股票-融资融券对冲(3)相关推荐

  1. python量化交易alpha策略_【邢不行|量化小讲堂系列11-Python量化入门】如何判断一个策略的好坏?(建议收藏)...

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. 个人微信:xingbuxing0807,有问题欢迎 ...

  2. 证券金融:转融通、融资融券、股票质押、借券

    那潘爷讲点东西 业务类型 标的物 标的物提供方 融入方 担保物 期末归还 用途 转融通 资金 证券 银行.基金.保险等机构 (券商作为中介) 投资者 资金 证券 本金+利息 证券+费用 做多股票 做空 ...

  3. 恒生LIGHT云金融交易测试平台,支持股票、融资融券、股票期权、基金、期货等多市场,提供免费的实盘行情和便捷的API接入,满足多金融业务品种的高仿真实训环境,进行策略实盘回测!

    金融交易测试平台,是恒生LIGHT云为开发者提供的一套支持股票.融资融券.股票期权.基金.期货等多市场,多金融业务品种的高仿真实训环境. 开发者通过开放的接口接入金融交易测试平台,一方面可以验证自身产 ...

  4. 量化交易alpha策略是什么?

    Alpha策略是指通过衡量和分离市场面临的系统性风险来获得超额回报的策略组合.alpha与一定的投资收益相比,是无风险收益的比较.alpha>0.表示获得超额收益:alpha=0.表示收益与无风 ...

  5. matlab alpha策略,不可不知的N种量化策略模型——alpha策略

    原标题:不可不知的N种量化策略模型--alpha策略 本文共2880字,预计阅读需13分钟 这是一个量化(程序化)策略全方位揭密帖! 如果你是一个拥有充足的时间,充满求知欲,渴望通过自身的努力克服重重 ...

  6. 2023年股票开户哪家手续费最低?融资融券利息率最低多少?万1融5!支持量化交易的券商

    2023年融资融券费率最低是多少?利率5%,股票万一全佣,支持量化交易 股票开户费率参考: 1.股票佣金万1.2,最低万1(含规费),信用账户一致 2.场内基金(ETF.LOF)万0.6,最低万0.5 ...

  7. 融资融券黑马选股分析系统主力意图大资金流出流入短线涨停板股票炒股软件

    软件功能原理与应用价值: 这款软件是专门通过融资融券来分析当天市场上突发性购进的股票.能通过融资购买股票的都是大财主啊! 所以我们通过这一种突然有超融资买入的个股进行筛选出来供作参考选股关注是否购买, ...

  8. 金融之期货软件搭建,股票平台搭建,融资融券平台搭建

    金融之期货软件搭建,国际期货平台搭建,期货系统搭建 期货系统平台搭建. 让你成为平台方,可以在国内国际同时操作,交易规则自定:资金全部在自己平台上. 交易平台软件 微期货交易软件开发它是将系统连接在微 ...

  9. 使用Python获取股市融资融券数据并绘制曲线

    ​融资融券:指投资者向具有融资融券业务资格的证券公司提供担保物,借入资金买入证券(融资交易)或借入证券并卖出(融券交易)的行为. 个人理解,​融资就是问证券公司借钱,融券就是问证券公司借股票. 获取数 ...

最新文章

  1. kendo 服务端排序
  2. 命令行下mysql新建用户及分配权限
  3. Java并发编程实战~Condition
  4. c 子类对象 访问父类对象受保护成员_面向对象编程(OOP)
  5. 21 年总结:文章的盘点和写作背景
  6. 网银支付_【成果巡礼】企业网银支付功能上线 上海全市法院再添便民新举措...
  7. 深度学习(三)----算法岗面试题
  8. 淘宝客系统教学系列_2.应用登录接口对接
  9. 基于Python的Fisher二分类判别模型实现
  10. 数学对于编程有多重要?
  11. Python课堂作业(用于复习)
  12. 编写一个程序实现顺序栈(假设栈中元素类型为char)的各种基本运算
  13. 十年前你绝对没有看懂的《大话西游》.
  14. python免费自学资源(视频+图文)
  15. 一个简单的Python樱花飘落动画代码
  16. 经常玩电脑正确的坐姿_使用电脑时要养成正确的坐姿
  17. Android-加速传感器或者OrientationEventListener做横竖屏切换
  18. 山下英子与家政学员亲密接触 深度解读断舍离生活美学
  19. 看PG10文档的笔记
  20. mysql查看sql语句是否走索引

热门文章

  1. vscode下载加速
  2. (二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备
  3. 【顺序结构】线性表之单链表
  4. Reflector 7 破解激活及使用(图解)
  5. (持续学习)世界上最神奇的24堂课-----第二课 思维就是能量
  6. qml----动画入门(五、简单的动画实现 SmoothedAnimation类)
  7. 雷神笔记本官网_ ThundeRobot笔记本官方网站- ThundeRobot.com
  8. python中使用ndim和shape属性获取ndarray数据的维度、长度、形状等参数
  9. ​h5文件格式详解及h5文件与图片文件之间的相互转换(python实现)
  10. Torch7入门续集(二)---- 更好的使用Math函数