# -*- coding: utf-8 -*-
"""
Created on Tue Aug  4 16:52:23 2020@author: 四屏
"""from datetime import datetime
%matplotlib inline
import backtrader as bt
import matplotlib.pyplot as plt
import akshare as akplt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = Falsestock_hfq_df = ak.stock_zh_a_daily(symbol="sh600000", adjust="hfq")  # 利用 AkShare 获取后复权数据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):""":return::rtype:"""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(2000, 1, 1)  # 回测开始时间
end_date = datetime(2020, 8, 4)  # 回测结束时间
data = bt.feeds.PandasData(dataname=stock_hfq_df, fromdate=start_date, todate=end_date)  # 加载数据
cerebro.adddata(data)  # 将数据传入回测系统
cerebro.addstrategy(MyStrategy)  # 将交易策略加载到回测系统中
start_cash = 26000
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')  # 画图

akshare双均线backtrader相关推荐

  1. Tushare + Backtrader实现双均线策略 以工商银行为例

    参看文章: Welcome - Backtrader 6.如何用backtrader实现双均线策略?以工商银行为例_云金杞-CSDN博客 Python量化交易学习笔记(53)--backtrader的 ...

  2. 6、如何用backtrader实现双均线策略?以工商银行为例

    在第五讲中,我们配置好了backtrader的运行,在这一讲中,我将会和一步步分享下,如何使用backtrader,验证下双均线交易策略(均线金叉做多,均线死叉做空)在工商银行上的表现. 一.交易策略 ...

  3. SMA、EMA与双均线策略

    什么是MA MA是移动平均线(Moving Average)的缩写,是一种简单的技术分析工具,通过创建一个不断更新的平均价格来分析股票价格趋势,或者用来确定其支撑和阻力水平.这是一种滞后指标,因为它基 ...

  4. 量化投资01----股票_贵州茅台600519_双均线策略回测

    贵州茅台 SH600519 双均线策略回测(5日均线.30日均线,金叉买入,死叉卖出) 交易从 2010年开始,2019年底结束. 10万初始资金 尽量买入(按手),尽量卖出,均以开盘价 未计算手续费 ...

  5. 双均线策略构建及回测

    # python构建双均线策略 # 均线策略中最常见的一种方法是根据长期均线和短期均线的交叉情况来确定交易信号,即:当短期均线从下往上穿越长期均线时,形成金叉,做多: # 反之,当长期均线从上往下穿越 ...

  6. 量化策略初探——使用tushare进行沪深300ETF双均线策略

    使用tushare采集沪深300ETF数据,并对沪深300ETF采用简单移动平均.指数移动平均.进行双均线策略,最后使用backtrader进行回测. 一.基本概念 双均线策略:运用两条不同周期的移动 ...

  7. python 量化交易_Python量化交易,tushare与talib学习示例演示,双均线(DMA)买卖策略...

    本篇文章为tushare与talib的学习示例,通过双均线策略演示如何使用talib与tushare.下面我们对代码进行详细解析. 引入3个包,分别是talib,tushare和pandas impo ...

  8. PyQt5_pyqtgraph双均线组合工具

    目录 双线组合概念 双线组合交易原则 交易原则翻译为代码逻辑 策略代码实现 运行工具代码 执行 验证策略思想 优化策略 数据 双线组合概念 双线组合又称两条均线组合,是由一条时间周期较短的均线和一条时 ...

  9. Python双均线策略回测(2021-10-12)

    Python双均线策略回测 1.择时策略简介 根据百度百科的解释,择时交易是指利用某种方法来判断大势的走势情况,是上涨还是下跌或者是盘整.如果判断是上涨,则买入持有:如果判断是下跌,则卖出清仓,如果是 ...

最新文章

  1. 《用户体验设计 本质、策略与经验》一导读
  2. ETL 工具下载全集 包括 Informatica Datastage Cognos( 持续更新)
  3. C语言-什么是尾递归
  4. SVM中为何间隔边界的值为正负1
  5. spring源码分析之spring jmx
  6. matlab vision工具箱使用手册,matlab-Computer Vision System ToolBox的系统对象使用
  7. 如何开发 Servlet 程序
  8. 上传文件显示进度条_文件上传带进度条进阶-断点续传
  9. 2016年下半年勒索软件数量翻倍
  10. phpstudy快速搭建网站步骤(手把手教你搭建)
  11. HTML+CSS美食静态网页设计——简单我的家乡吉林
  12. 重心模型选址代码_如何规划选址体系,让选址像流水线更简单?
  13. 进阶篇:4.1)DFA设计指南:简化产品设计(kiss原则)
  14. 自定义UpsertStreamTableSink
  15. PlatformIO IDE搭建统一的物联网嵌入式开发环境
  16. 「项目管理」如何使用甘特图分解项目?
  17. macOS输入法导致系统卡住鼠标圈圈问题/风火轮
  18. windows下 编写的Qt程序连接远程MySQL数据库
  19. 网络与信息安全工程师职位要求
  20. ogm session_Hibernate OGM:降低进入NoSQL的障碍

热门文章

  1. Ubuntu搭建联盟链,实现节点之间数据同步
  2. Android MotionEvent中getX()、getRawX()和getTop()的区别
  3. 与Linus Torvalds“并列”,虚拟化天才程序员法布里斯贝拉
  4. Linux ln命令、软链接和硬链接的区别
  5. Angular5 *ngIf 和 hidden 的区别
  6. 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
  7. [dp]最长单调递增子序列LIS
  8. Jquery 学习之基础一
  9. java9-1.类,抽象类,接口的综合小练习
  10. [Objective-C]编程艺术 笔记整理