回测专题

量化交易backtrader实践(四)_评价统计篇(4)_多个回测的评价列表

本节目标 在第1节里,我们认识了backtrader内置评价指标,了解了每个指标的大概内容;在第2节里把内置评价指标中比较常用的指标进行了获取和输出;第3节里我们探索其他backtrader中没有的评价指标,并对pyfolio, empyrical和quantstat库进行了初步的认识,以及使用quantstat可以方便的进行评价指标的可视化实践。以上的动作,都是针对一支股票和一个特定的策略进行

Python 小市值股票模型代码及回测分析

目录 一、模型介绍 二、代码详解 2.1 初始化函数 2.2 股票筛选过滤函数 2.3 止损函数 2.4 开盘时运行函数 2.5 调仓函数 三、回测结果分析 3.1 收益净值图与概述 3.2 模型收益概览 3.3 年度收益图 3.4 月度收益的时间序列 3.5 月度收益热力图 3.6 月度收益频次分布图 四、风险指标分析 4.1 滚动 Beta 指标 4.2 滚动

量化交易实操指南:从模拟回测到实盘交易的全流程揭秘!

什么是量化交易? 量化交易是一种利用数学、统计学和计算机科学方法,通过构建模型和算法来进行交易决策的方式。它的核心思想是通过系统性的分析和处理大量的历史数据、市场信息和交易规则,以发现市场中的规律和模式,并以此为依据制定交易策略。 在传统的股票投资中,投资者往往依靠自己的经验、直觉和基本面分析来做出投资决策。而量化交易则采用了科学化的方法,通过数据驱动和模型化的方式来进行交易决策。它利用大量的

Python在股票交易分析中的应用:布林带与K线图的实战回测

引言 在股票交易的世界中,技术分析是投资者们用来预测市场动向的重要工具。布林带(Bollinger Bands)作为一种动态波动范围指标,因其直观性和实用性而广受欢迎。本文将通过Python代码,展示如何使用布林带结合K线图来分析股票价格走势,并寻找可能的交易信号。 布林带指标简介 布林带由三部分组成:中轨(移动平均线),上轨(中轨加上两倍标准差),以及下轨(中轨减去两倍标准差)。它们可以帮

不吹不黑 | 聊聊为什么要用99%精度的数据回测

写在前面的话 文字并不具备精确传递信息的能力。除了程序员和律师等少数群体,很少人能保证自己说的东西能在一句话中被清晰传递的。所以,带着思考阅读从而帮助完善你的知识体系,改变你的行为,这才是您耗费时间,阅读本篇文章的意义。 因此,在阅读本篇文章之前,我希望您能放下心里已有的成见,否则就算您通篇读完,留下的也只是带有您个人偏见的理解。您获得的多少并不取决于读了多少,而取决于您以空杯的心态,思考

量化策略回测DCCV2

回测时间:20130101-20190610 手续:卖买各万分之一 滑点:买入卖出各一跳 初始资金:各品种不同,每个品种1手的资金

基于JoinQuant的算术移动平均线回测

发现了【聚宽】https://www.joinquant.com/,这个平台,开始做一些策略回测,学习代码语言已经策略表达。 def initialize(context):# 定义一个全局变量, 保存要操作的股票# 000001(股票:平安银行)g.security = '000776.XSHE'# 初始化此策略# 设置我们要操作的股票池, 这里我们只操作一支股票set_univer

开源项目实现简单实用的股票回测

1 引言 之前,尝试做股票工具一直想做的大而全,试图抓取长期的各个维度数据,然后统计或者训练模型。想把每个细节做到完美,结果却陷入了细节之中,最后烂尾了。 最近,听到大家分享了一些关于深度学习、时序模型、强化学习在股票预测方面的新论文。但是觉得这些理论与我们的实际操作还有很大的距离。目前好像更需要的是一些具体而实用的辅助工具。 这次,尝试用 50 行代码完成一个简单的股票回测工具。输

海龟策略深入研究-策略回测系列-11 品种选择检验(四)

重新构建投资组合   1)初步筛选   初步筛选从仅仅基于历史行情外,还加多了品种波动率和自相关性的要求,故总的来说其初步筛选条件为三点: 历史行情:2014年1月1日前上市调整后波动率比值>1ADF值>10%   根据初步筛选标准,剔除了不符合要求品种后,测试样本从调整前的35个缩小至27个,根据其调整后波动率比值的大小按从大到小排序,如图所示。 结合高成交量特征,一般来说,成交量高

海龟策略深入研究-策略回测系列-8 品种选择检验(一)

策略回测操作 运行run.ipynb文件 首先进入“examples\TurtleStrategy”文件夹,通过Jupyter Notebook中打开run.ipynb可以执行策略回测。   1)调用海龟回测引擎   %matplotlib inlinefrom datetime import datetimeimport numpy as npimport matplotlib.

海龟策略深入研究-策略回测系列-6 理解海龟策略代码

海龟策略文档 在运行策略回测前,至少要对策略代码有一个整体的概念,便于以后的策略调试以及改进。 v1.9.1提供了两个版本的海龟策略,分别是基于ctaTemple开发的,针对单标的的简化版,以及针对多标的的完整版。 这里只介绍完整版的海龟策略,该模块在"examples\TurtleStrategy"文件夹下,打开如图2-4所示。在这里只需关注4个文件     setting.csv:

海龟策略深入研究-策略回测系列-5 痛点解决方案以及测试数据的准备

理想解决方案   上一篇介绍了海龟策略在实现中遇到的困难。 本章主要讲其解决方案,那就是vn.py啦! vn.py1.9.1新增完整的投资组合级别的海龟策略实现,经过多次测试发现,这一次海龟策略本地化实现的完成度很高。其投资组合回测资金曲线如下。 投资品种选择了12个,分别是: 上期所的铝、铜、螺纹钢、锌郑商所的普麦、一号棉花大商所的玉米、铁矿石、焦煤、焦炭、豆粕、聚氯乙烯。 回测时

海龟策略深入研究-策略回测系列-4 本地化实现困境

海龟本地化实现困境 海龟策略如此出名,但当前国内还没有发现能够完全复制海龟策略的(至少从网络上公开的资料来看)。普遍存在的问题如下: 海龟策略运行的是日线级别数据,但还是要求K线内成交,即前一日确定第二天的入场、出场、止损位置,当价格到达指定位置时,立即发出交易委托;而不是基于股票多因子框架下以收盘价成交。原版策略的是期货指数的投资组合数据;但是国内回测要么在股票上跑,要么是基金上跑,并且

海龟策略深入研究-策略回测系列-3:原版海龟策略(下)

首先呢,还是那副图,现在介绍剩下的3个关键要素 5.逐步建仓 在突破点建立1个单位的头寸,然后按0.5*ATR的价格间隔一步步扩大头寸。(1/2的间隔以上一份订单的实际成交价格为基础的) 这个过程将继续下去,直到头寸规模达到上限,即单个合约最大4个单位头寸。 该书举了纽约商品交易所(COMEX)黄金期货指数的例子作为说明 6.止损 止损曾经在入场信号中简单提及,即价格反方向偏离2*A

海龟策略深入研究-策略回测系列-2:原版海龟策略(上)

海龟策略7大要素 原版海龟策略出现在《海龟交易法则》最后章节的附录中,有兴趣的朋友可以详细看看,在这里我们概况一下海龟策略的7大要素,如图所示。 (由于内容有点多,故拆分成上下两部分,这里只介绍到第四大要素,即入场信号) 1.品种选择 书中明确表示海龟策略选择标准是流动性高的期货品种,另外两个隐含的条件是具有历史大波动并且无人为干预的品种(例子:肉类交易厅场内交易员腐败问题)。 在国内,

量化交易入门(四十一)ASI指标Python实现和回测

老规矩先上图,看看ASI指标使用苹果数据回测后的结果如何。 一、策略运行结果 执行的结果:Starting Portfolio Value: 100000.00 Final Portfolio Value: 92514.82Annualized Return: -1.93%Sharpe Ratio: -0.27Max Drawdown: 25.34%Max Drawdown P

量化交易入门(三十五)回测框架backtrader-Strategy

在Backtrader中,Strategy类是定义交易策略的基类。我们需要继承这个类,并实现一些特定的方法来定义我们的交易逻辑。Strategy类的主要方法包括: __init__(self): 策略的初始化方法,用于定义策略的参数、指标等。next(self): 策略的核心方法,每个新的交易日都会被调用,用于根据指标和信号执行交易操作。notify_order(self, order): 订单

Python提升回测速度concurrnet.futures模块详解

默认情况,Python因为GIL的存在,只会调用一个CUP作为单个进程执行程序。即便是采用多线程,也是使用同一个CPU。但是目前电脑大多都有多核。 Python3.2之后提供了一个新的模块concurrent.futures模块可以实现多进程多线程。 concurrent.futures是对multiprocessing和threding这两个模块进一步封装的结果。 Future模式

量化交易回测可视化:matplotlib

matplotlib官方文档 matplotlib的使用需要先安装numpy。设计与matlib相似。 matplotlib(维基)是Python编程语言及其数值数学扩展包 NumPy的可视化操作界面。 matplotlib模块 matplotlib.pyplot是最常用的模块。 pyplot常用功能 绘制曲线 x = np.linspace(1,10,10)y = 2

量化交易回测可视化:plotly使用详解||Plotly Exprsess

plotly官方文档及教程 Plotly(维基、github)是一家创建于2012年的公司,开发在线数据分析和可视化工具。其主要产品有:Dash(用于构建数据分析 Web 应用的 Python 框架)、Dash DAQ 、Chart Studio、API libraries、Figure Converters 、Plotly Apps for Google Chrome、Plotly.js

量化交易入门(二十九)布林带指标实现和回测

首先我们来看一张图,这张图就是拿的苹果股票2020年1月1日到2023年12月30日的历史数据进行回测后生成的。图中绿色箭头是买入点,红色箭头是卖出点。我们看到大部分的时候是在股价较低的时候买入,在股价较高的时候卖出,好像挺不错的。  具体怎么实现,到底结果怎么样,我们来看代码和运行结果。 示例代码 import backtrader as btimport yfinance as y

量化交易入门(十八)回测历史数据获取方法

前文提到的stock.csv 文件通常包含股票的历史价格数据,每行代表一个交易日的数据。典型的数据格式如下: 日期,开盘价,最高价,最低价,收盘价,成交量2021-01-01,100.00,105.00,99.00,103.00,10000002021-01-02,103.50,107.00,102.00,105.50,12000002021-01-03,106.00,110.00,105

Python 算法交易实验68 回测对象重构

说明 从有这个想法,到勉强完工,整个过程还是持续了很长时间。主要原因有: 1 去年12月没有遵守【原则】,手工乱下了一堆单子,然后满仓了。等这些单子“解冻”估计还要一阵子,所以也没有很急。2 在做的过程中,想做一些工具层面的升级,所以会花时间做一些依赖服务。 最后觉得还是要尽快完成一版,所以才想写本篇文章。 在这个版本中,不去考虑回撤、或者平均模型分的问题。 内容 1 样例数据 假设是

数字多空策略(实盘+回测+数据)

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学,点击下方链接报名: 量化投资速成营(入门课程) Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C++语言CTP期货交易系统开发 数字货币JavaScript语言量化交易系统开发 技术宅此前分享的数字策略多为单边策略。单边策略最大的特征是在承担一定的

Backtrader 量化回测实践(2)—— K线16主要形态定义(上)

Backtrader 量化回测实践(2)—— K线16主要形态定义(上) K线图形中的趋势线和价格走势能够反映市场的整体趋势,比如是否处于上涨或下跌趋势中。 用Backtrader做策略的时候,需要考虑K线形态,作为分析依据。K线的常用形态搜集整理如下: 1、光头光脚大阳线(极端强势); 2、光头光脚大阴线(极端弱势); 3、光头阳线(高价位强势线,先跌后涨型); 4、光头阴线(低价位弱势线