python量化交易历史回测
import tushare as ts
import xlrd
import pandas as pd
import matplotlib.pyplot as plt
ts.set_token('*******************')
pro = ts.pro_api()
JJ="006928.OF"
df = pro.fund_nav(ts_code=JJ)
df.sort_values(by=['end_date'],inplace=True)#按时间排序从小到大
df = df.reset_index(drop=True)#index重新标记
df['交易时间'] = pd.to_datetime(df['end_date'],format='%Y-%m-%d')
df=df[['交易时间','unit_nav']]#只选日期,和净值
df["移动平均值"]=df['unit_nav'].rolling(60).mean()
#设置投资时间
df=df[df['交易时间']>='2019-01-13']
df=df[df['交易时间']<='2020-01-13']
#
df["每次投入资金"]=30
df["累计投入资金"]=df["每次投入资金"].cumsum()
c_rate=0.002#手续费
df["每次数量"]=df["每次投入资金"]/df['unit_nav']*(1-c_rate)
df["累计数量"]=df["每次数量"].cumsum()
df["盈亏"]=df["累计数量"]*df['unit_nav']-df["累计投入资金"]
df["收益率"]=df["盈亏"]/df["累计投入资金"]*100
dfstrategy=df.copy()
dfstrategy=dfstrategy[["交易时间","unit_nav","移动平均值"]]
dfstrategy.loc[dfstrategy['unit_nav']<=(dfstrategy["移动平均值"]*0.97),"每次投入资金"]=200
dfstrategy.fillna(0,inplace=True)
dfstrategy["累计投入资金"]=dfstrategy["每次投入资金"].cumsum()
dfstrategy["每次数量"]=dfstrategy["每次投入资金"]/dfstrategy['unit_nav']*(1-c_rate)
dfstrategy["累计数量"]=dfstrategy["每次数量"].cumsum()
dfstrategy["盈亏"]=dfstrategy["累计数量"]*dfstrategy['unit_nav']-dfstrategy["累计投入资金"]
dfstrategy["收益率"]=dfstrategy["盈亏"]/dfstrategy["累计投入资金"]*100
df=df[["交易时间","unit_nav","累计投入资金","盈亏","收益率"]]
dfstrategy=dfstrategy[["交易时间","unit_nav","累计投入资金","盈亏","收益率"]]
print(df["收益率"].max())
print(df.tail())
print("=================")
print(dfstrategy["收益率"].max())
print(dfstrategy.tail())
#path = "C://Users//fuxingyu//Desktop//%s.xlsx" %JJ
#dfstrategy.to_excel(path)
个人编程学习
python,matlab,VB
推荐阅读
获取某网页基金净值
{代码...}
叫我瞄大人阅读 1.2k
又一款眼前一亮的Linux终端工具!
今天给大家介绍一款最近发现的功能十分强大,颜值非常高的一款终端工具。这个神器我是在其他公众号文章上看到的,但他们都没把它的强大之处介绍明白,所以我自己体验一波后,再向大家分享自己的体验。
良许赞 6阅读 1.8k
FastAPI性能碾压Flask?
不止一次的听过,FastAPI性能碾压Flask,直追Golang,不过一直没有测试过,今天闲着没事测试一下看看结果。不知道是哪里出了问题,结果大跌眼镜。
二毛erma0赞 2阅读 10.2k评论 3
Python之如何优雅的重试
为了避免偶尔的网络连接失败,需要加上重试机制,那么最简单的形式就是在对应的代码片段加一个循环,循环体里使用异常捕获,连接成功时退出循环,否则就重复执行相关逻辑,此时修改之后的函数f如下
Harpsichord1207赞 3阅读 7.3k
Linux终端居然也可以做文件浏览器?
大家好,我是良许。在抖音上做直播已经整整 5 个月了,我很自豪我一路坚持到了现在【笑脸】最近我在做直播的时候,也开始学习鱼皮大佬,直播写代码。当然我不懂 Java 后端,因此就写写自己擅长的 Shell 脚本。但...
良许赞 1阅读 2.1k
基于 EKS Fargate 搭建微服务性能分析系统
近期 Amazon Fargate 在中国区正式落地,因 Fargate 使用 Serverless 架构,更加适合对性能要求不敏感的服务使用,Pyroscope 是一款基于 Golang 开发的应用程序性能分析工具,Pyroscope 的服务端为无状态服务且性...
亚马逊云开发者阅读 7.8k
ChatGPT的开源平替,终于来了!
最近这段时间,一个号称全球最大ChatGPT开源平替项目Open Assistant引起了大家的注意。这不最近还登上了GitHub的Trending热榜。[链接]根据官方的介绍,Open Assistant也是一个对话式的大型语言模型项目,可以理解...
CodeSheep赞 2阅读 1.1k
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。