量化初级 -- akshare获得股票代码,最简策略
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获得股票代码,最简策略相关推荐
- 无限易量化策略模板 极简 策略开发
无限易极简策略模板,仅输出行情最新价. # encoding: UTF-8""" 作者:Leo 微信:470770753 """from _ ...
- 一个初级程序员学习新技术的策略
一个初级程序员学习新技术的策略 我是一名初级程序员,工作一年多.还记得刚毕业,踏入社会的时候,面临着很多工作上尴尬和困惑.首当其冲的便是在学校学的知识并不够用,甚至并不管用.于是学习新技术成了重点解决 ...
- 【邢不行|量化小讲堂系列20-Python量化入门】10年400倍策略分享(附视频逐行代码讲解)
引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总]请点击此处 [必读文章]EOS期现 ...
- 【Python 量化交易】什么是择时策略
量化金融:什么是择时策略? 什么是市场择时? 市场择时概要 择时成本 损失机会的代价 交易成本的代价 真实例子 什么是市场择时? 市场择时,也可以叫做市场选时,是一种投资或者交易的策略.是一种基于某种 ...
- 量化交易:大盘拟合稳定突破策略
作者: 阿布 阿布量化版权所有 未经允许 禁止转载 abu量化系统github地址(欢迎+star) 本节ipython notebook 上一节讲解的是A股市场的回测,本节讲解港股市场的回测示例. ...
- 量化股票Akshare是谁创建的?
量化股票Akshare是谁创建的?AKShare 起源于2019年10月,主要用于财经数据科学研究. AKShare是基于Python金融数据接口数据库的目的是实现金融产品的基本数据,如股票.期货.期 ...
- 量化投资:第3节 滑点策略与交易手续费
作者: 阿布 阿布量化版权所有 未经允许 禁止转载 abu量化系统github地址(欢迎+star) 本节ipython notebook 上一节使用AbuFactorBuyBreak和AbuFact ...
- 量化交易 聚宽 动量与反转策略
量化交易 聚宽 动量与反转策略 # 导入函数库 from jqdata import *# 初始化函数,设定基准等等 def initialize(context):# 设定沪深300作为基准set_ ...
- python中shift函数rolling_【邢不行|量化小讲堂系列18-Python量化入门】简易波动指标(EMV)策略实证...
引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. 个人微信:xingbuxing0807,有问题欢迎 ...
最新文章
- 结构型模式---适配器模式
- 线上学python哪家好-Python线下培训好还是线上培训好
- 数学是发明还是发现?(一)
- 漫话:如何给女朋友解释鸿蒙OS是怎样实现跨平台的?
- 2018年12月份GitHub上最热门的Java开源项目
- SpringBoot整合kafka之kafka分区实战
- 计算机专业在沈阳有什么发展,985 计算机专业在全国 TOP10 在沈阳
- python之路--面向对象之封装
- python编译安装没有c扩展_pybind11—python C/C++扩展编译
- 2018年最令人惊讶的WordPress统计数据
- kuangbin14数论解析
- VS Code安装,配置keil安装,Proteus8.6
- lenovo G50-80bios设置U盘启动选项及win10永久激活及win10下载
- 作为一个iOS攻城狮不得不了解的网络知识
- 柴静《看见》摘抄及小评
- 曾拯救Apple Watch的苹果工程师如今后继无人,美国制造业回流的人才之痛
- 性能测试和优化实录(mybatisplus异步写库@Async引起的对象无法释放问题)
- 转载:windows指令
- 一文教你快速搞懂 FOC ramp function 斜坡函数的作用和实现
- K-邻近算法及距离计算公式
热门文章
- 关于计算机设计的英语作文,关于电脑的英语作文
- Ubuntu安装中文出现Transaction failed:Package dependencies cannot be resolved
- 组合总和 Ⅳ(超详细讲解)
- D. Equalize Them All
- Ubuntu 20.04下搭建奥比中光-Astra(详细教程)
- python模拟蚂蚁森林能量产生过程代码_用Python实现定时自动化收取蚂蚁森林能量,再也不用担心忘记收取了...
- 转:目标50行代码之内完成3d编辑器功能
- 《人性的弱点》第一章 待人接物的三大原则:读后感
- Go-Micro微服务框架使用
- Mac重装OS X系统教程