import akshare as ak
import pandas as pd
stock_code =ak.stock_zh_a_spot_em()  #获得股票所有代码的函数
stock_code

fuxing_code = stock_code[stock_code['名称'] == '复星医药']
fuxing_code
from datetime import datetimeimport backtrader as bt  # 升级到最新版
import matplotlib.pyplot as plt  # 由于 Backtrader 的问题,此处要求 pip install matplotlib==3.2.2
import akshare as ak  # 升级到最新版
import pandas as pdplt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
#plt.figure().set_size_inches(6,8)#6,8分别对应宽和高
plt.rcParams['figure.figsize'] = (13,13/(16/9)) #6,8分别对应宽和高# 利用 AKShare 获取股票的后复权数据,这里只获取前 6 列
stock_hfq_df = ak.stock_zh_a_hist(symbol="600196", adjust="hfq").iloc[:, :6]
# 处理字段命名,以符合 Backtrader 的要求
stock_hfq_df.columns = ['date','open','close','high','low','volume',
]
# 把 date 作为日期索引,以符合 Backtrader 的要求
stock_hfq_df.index = pd.to_datetime(stock_hfq_df['date'])class MyStrategy(bt.Strategy):"""主策略程序"""params = (("maperiod", 20),)  # 全局设定交易策略的参数def __init__(self):"""初始化函数"""self.data_close = self.datas[0].close  # 指定价格序列# 初始化交易指令、买卖价格和手续费self.order = Noneself.buy_price = Noneself.buy_comm = None# 添加移动均线指标self.sma = bt.indicators.SimpleMovingAverage(self.datas[0], period=self.params.maperiod)def next(self):"""执行逻辑"""if self.order:  # 检查是否有指令等待执行,return# 检查是否持仓if not self.position:  # 没有持仓if self.data_close[0] > self.sma[0]:  # 执行买入条件判断:收盘价格上涨突破20日均线self.order = self.buy(size=100)  # 执行买入else:if self.data_close[0] < self.sma[0]:  # 执行卖出条件判断:收盘价格跌破20日均线self.order = self.sell(size=100)  # 执行卖出cerebro = bt.Cerebro()  # 初始化回测系统
start_date = datetime(1991, 4, 3)  # 回测开始时间
end_date = datetime(2020, 6, 16)  # 回测结束时间
data = bt.feeds.PandasData(dataname=stock_hfq_df, fromdate=start_date, todate=end_date)  # 加载数据
cerebro.adddata(data)  # 将数据传入回测系统
cerebro.addstrategy(MyStrategy)  # 将交易策略加载到回测系统中
start_cash = 1000000
cerebro.broker.setcash(start_cash)  # 设置初始资本为 100000
cerebro.broker.setcommission(commission=0.002)  # 设置交易手续费为 0.2%
cerebro.run()  # 运行回测系统port_value = cerebro.broker.getvalue()  # 获取回测结束后的总资金
pnl = port_value - start_cash  # 盈亏统计print(f"初始资金: {start_cash}\n回测期间:{start_date.strftime('%Y%m%d')}:{end_date.strftime('%Y%m%d')}")
print(f"总资金: {round(port_value, 2)}")
print(f"净收益: {round(pnl, 2)}")
#
cerebro.plot(style='candlestick')  # 画图
初始资金: 1000000
回测期间:19910403:20200616
总资金: 1038230.14
净收益: 38230.14

量化初级 -- akshare获得股票代码,最简策略相关推荐

  1. 无限易量化策略模板 极简 策略开发

    无限易极简策略模板,仅输出行情最新价. # encoding: UTF-8""" 作者:Leo 微信:470770753 """from _ ...

  2. 一个初级程序员学习新技术的策略

    一个初级程序员学习新技术的策略 我是一名初级程序员,工作一年多.还记得刚毕业,踏入社会的时候,面临着很多工作上尴尬和困惑.首当其冲的便是在学校学的知识并不够用,甚至并不管用.于是学习新技术成了重点解决 ...

  3. 【邢不行|量化小讲堂系列20-Python量化入门】10年400倍策略分享(附视频逐行代码讲解)

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总]请点击此处 [必读文章]EOS期现 ...

  4. 【Python 量化交易】什么是择时策略

    量化金融:什么是择时策略? 什么是市场择时? 市场择时概要 择时成本 损失机会的代价 交易成本的代价 真实例子 什么是市场择时? 市场择时,也可以叫做市场选时,是一种投资或者交易的策略.是一种基于某种 ...

  5. 量化交易:大盘拟合稳定突破策略

    作者: 阿布 阿布量化版权所有 未经允许 禁止转载 abu量化系统github地址(欢迎+star) 本节ipython notebook 上一节讲解的是A股市场的回测,本节讲解港股市场的回测示例. ...

  6. 量化股票Akshare是谁创建的?

    量化股票Akshare是谁创建的?AKShare 起源于2019年10月,主要用于财经数据科学研究. AKShare是基于Python金融数据接口数据库的目的是实现金融产品的基本数据,如股票.期货.期 ...

  7. 量化投资:第3节 滑点策略与交易手续费

    作者: 阿布 阿布量化版权所有 未经允许 禁止转载 abu量化系统github地址(欢迎+star) 本节ipython notebook 上一节使用AbuFactorBuyBreak和AbuFact ...

  8. 量化交易 聚宽 动量与反转策略

    量化交易 聚宽 动量与反转策略 # 导入函数库 from jqdata import *# 初始化函数,设定基准等等 def initialize(context):# 设定沪深300作为基准set_ ...

  9. python中shift函数rolling_【邢不行|量化小讲堂系列18-Python量化入门】简易波动指标(EMV)策略实证...

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

最新文章

  1. 结构型模式---适配器模式
  2. 线上学python哪家好-Python线下培训好还是线上培训好
  3. 数学是发明还是发现?(一)
  4. 漫话:如何给女朋友解释鸿蒙OS是怎样实现跨平台的?
  5. 2018年12月份GitHub上最热门的Java开源项目
  6. SpringBoot整合kafka之kafka分区实战
  7. 计算机专业在沈阳有什么发展,985 计算机专业在全国 TOP10 在沈阳
  8. python之路--面向对象之封装
  9. python编译安装没有c扩展_pybind11—python C/C++扩展编译
  10. 2018年最令人惊讶的WordPress统计数据
  11. kuangbin14数论解析
  12. VS Code安装,配置keil安装,Proteus8.6
  13. lenovo G50-80bios设置U盘启动选项及win10永久激活及win10下载
  14. 作为一个iOS攻城狮不得不了解的网络知识
  15. 柴静《看见》摘抄及小评
  16. 曾拯救Apple Watch的苹果工程师如今后继无人,美国制造业回流的人才之痛
  17. 性能测试和优化实录(mybatisplus异步写库@Async引起的对象无法释放问题)
  18. 转载:windows指令
  19. 一文教你快速搞懂 FOC ramp function 斜坡函数的作用和实现
  20. K-邻近算法及距离计算公式

热门文章

  1. 关于计算机设计的英语作文,关于电脑的英语作文
  2. Ubuntu安装中文出现Transaction failed:Package dependencies cannot be resolved
  3. 组合总和 Ⅳ(超详细讲解)
  4. D. Equalize Them All
  5. Ubuntu 20.04下搭建奥比中光-Astra(详细教程)
  6. python模拟蚂蚁森林能量产生过程代码_用Python实现定时自动化收取蚂蚁森林能量,再也不用担心忘记收取了...
  7. 转:目标50行代码之内完成3d编辑器功能
  8. 《人性的弱点》第一章 待人接物的三大原则:读后感
  9. Go-Micro微服务框架使用
  10. Mac重装OS X系统教程