1引言目前基于Python的量化框架有很多,开源框架有zipline、vnpy、pyalgotrader和backtrader等,而量化平台有Quantopian(国外)、聚宽、万矿、优矿、米筐、掘金等,这些量化框架或平台各有优劣。就个人而言,比较偏好用backtrader,因为它功能十分完善,有完整的使用文档,安装相对简单(直接pip安装即可)。优点是运行速度快,支持pandas的矢量运算;
我们把量化小工具的基础版本称为V0,该版本的股票行情页面中的股票名称只有4个,分别为开山股份、浙大网新、水晶光电、高鸿股份,如果同学们要添加自选股,只能在代码中添加。接下来我们把A股市场中全部的股票都添加到下拉框中去。此处使用Tushare Pro的stock_basic()接口,该接口获取上市的所有股票基础信息数据,包括股票代码、名称、上市日期、退市日期等。输入参数说明如下:is_hs:是否沪深
1引言大部分量化策略都可以归类为均值回归与动量策略。事实上,只有当价格是均值回归或趋势的,交易策略才能盈利。否则,价格是随机游走的,交易将无利可图。均值回归是金融学的一个重要概念,指价格无论高于或低于价值中枢都会以很高的概率向价值中枢回归的趋势。古语“盛极而衰,否极泰来”,就暗含着均值回归的思想。如果说要为均值回归寻找一个比较合理的理论解释,不妨借鉴一下索罗斯的“反身性理论”。索罗斯认
转载 2023-08-05 21:05:10
368阅读
1评论
写在前面在本文中,我们将介绍使用PyTorch构建一个深度学习模型,并将其集成到backtrader框架中。具体地,我们将使用PyTorch来实现一个长短期记忆神经网络(LSTM)模型,并将其应用于股票价格预测。由于backtrader目前没有原生支持深度学习的模块,因此我们需要自己先实现一个深度学习模型,对其先进行训练与测试,然后将保存的模型与backtrader集成,以便进行。1前言B
目录一、line_profiler二、memory_profiler三、timeit四、pyheat五、heartrate六、Pycharm自带的Profiler工具七、objgraph工具八、profile和cProfile 一、line_profilerPython代码优化工具——line_profile二、memory_profilerPython代码优化工具——memory_profil
1引言关于backtrader,前两篇推文《【手把手教你】入门量化最强神器backtrader(一)》和《【手把手教你】入门量化最强神器backtrader(二)》分别介绍了整个框架的组成部分和系统的运行,以及策略模块交易日志的编写和策略参数的寻优。本文在这两篇文章的基础上,着重介绍backtrader的Analyzers模块,并对策略的业绩评价指标进行可视化分析。Analyzers模
 一、什么是RSI策略?双均线策略的思想主要是根据长短周期 MA 指标的关系来判断买卖时机。基于 RSI 指标的策略主要是根据买卖双方力量之间的对比来判断买卖点。RSI 指标是通过一段时间价格变动情况来计算市场买卖力量的对比,从而推测未来价格变动的技术指标。当RSI大于80时,称为处于超买区,意味着未来价格可能会出现下跌;当RSI小于20时,称为处于超卖区,意味着未来价格可能会出现上涨。
转载 2023-06-12 17:28:00
426阅读
PyUnit(unittest) 是 Python 自带的单元测试框架,用于编写和运行可重复的测试。PyUnit 是 xUnit 体系的一个成员,xUnit 是众多测试框架的总称,PyUnit 主要用于进行白盒测试和回归测试。通过 PyUnit 可以让测试具有持久性,测试与开发同步进行,测试代码与开发代码一同发布。使用 PyUnit 具有如下好处:可以使测试代码与产品代码分离。
通过Tushare和backtrader实现量化投资(tushare ID=418443)一.Tushare介绍二.安装Tushare三.backtrader介绍和安装四.编写代码1、初始化tushare,获取指定股票代码的股票历史数据。2、加载数据3、加载backtrader引擎,初始化投资金额4、增加策略5、布林线规则策略的具体实现6、输出结果并打印图形五.运行结果 一.Tushar
转载 2023-09-21 11:29:07
523阅读
2评论
一、OHLCV:当天的开盘价(Open)、最高价(High)、最低价(Low)和收盘价(Close)。如果再加上这一个小时总的成交量(Volumn),就得到了 OHLCV 数据。使用 Zipline 进行策略,或者用 Pyfolio 进行投资组合分析。Quantopian,就提供了基于 Zipline 的标准环境。国内也有诸如 BigQuant、果仁网等类似平台,提供不同市场和金融产品的交
转载 2024-02-14 19:54:27
77阅读
Q:两个有序数组合并成一个有序数组def merge_sort(a, b): ret = [] i = j = 0 while len(a) >= i + 1 and len(b) >= j + 1: if a[i] <= b[j]: ret.append(a[i]) i += 1
作者 | liuchungui我们的程序是用Python写的,因为使用Jupter Notebook显示结果非常方便。但是,最近在一次运行整个代码时,整整花了20分钟才出现结果。于是,我们打算好好优化一下。最终,性能提升10倍以上,耗时在1分29秒左右。优化流程我们优化主要分成两部分,第一部分是程序内部逻辑,第二部分是Python提速。所以,我们整个流程可以分成下面三步:第一步,
转载 2023-11-21 16:44:09
80阅读
本次场外篇来介绍下传说中的backtraderbacktrader属于功能相对完善的本地版Python量化框架。既然业界好评如云,我们作为量化交易者理应集所有好用的工具于一身,就让我们来体验一下这个框架。backtrader的使用方法在官方文档上介绍的挺详细的。大体分为两步:创建一个策略,创建一个策略类,这个类要继承自backtrader.Strategy,然后就可以自定义里面的方法。策略类中
测试代码1.单元测试和测试用例 Python标准库中的模块unittest提供了代码测试工具。单元测试用于核实函数的某个方面没有问题;测试用例是一组单元测试,这些单元测试一起核实函数在各个情况下的行为都符合要求。良好的测试用例考虑了函数可能受到的各种输入,包含针对所有这些情形的测试。2.测试函数 直接看一个例子,下面是一个简单的函数,它接受包含中间名的外国姓名并返回整洁的姓名:def get_fo
转载 2024-02-19 18:38:26
62阅读
编写函数或类时,还可以为其编写测试。通过测试,可确定代码面对各种输入都能够按要求的那样工作。程序员都会犯错,因为每个程序员都必须经常测试其代码,在用户发现问题前找出它们。测试函数被测试的代码,下面是一个简单的函数name_function.py,它接受名和姓返回整洁的姓名:def get_formatted_name(first, last): """接受名和姓返回整洁的姓名""" full_na
对量化交易感兴趣的同学,对于系统肯定不陌生。以quantopian为蓝本的平台,国内已经一抓一把,那为什么还需要从头实现一个系统?而且,什么是“搭积木式实现策略”呢?对比现存的量化平台,实现如下价值:1,市面上量化系统引擎是黑盒(当然大部分是zipline——代码是开源的,但可读性一般),从头实现可以做到知其然更知其所以然。2,拥有自己的,代码易读性的系统,不用担心策略泄漏。3,提供一个构
backtrader是基于Python的量化框架,功能丰富,操作方便。其优点是运行速度快,支持pandas的矢量运算;内置多种技术指标计算,还支持股票分析技术指标库talib;支持参数自动寻优运算;支持多品种(股票、期货、期权、外汇和数字货币)、多策略、多周期(Ticks、秒、分、日、周、月和年)的和交易;支持PyFlio、empyrica分析模块库、alphalens多因子分析模块库等;
Python 测试代码通过测试,可确定代码面对各种输入都能够按要求的那样工作序员都会犯错,因此每个程序员都必须经常测试其代码,在用户发现问题前找出它们。1、测试函数:要学习测试,得有要测试的代码首先再当前目录下创建一个name_fun.py的文件,内容如下:def get_test_name(first, last): """测试名字的代码""" full_name = first
海龟交易法作为最早的量化交易法,已经被利用了很多年了,我发现网络上有很多利用python进行海龟交易法的代码教程,而且都是先通过akshare库再通过均线组合的方式实现,但是其中大多会报错,小编找了很多很多,但是最后还是差强人意,因此有了下面的这些。希望对您有所帮助。我注释了一些需要注意的地方,其实这个均线策略是可以修改的,比如把10日和20日均线改成100日和200日,小编认为均线的具体选择
自己手工计算指标。 因为对前面计算指标的程序的准确性还有疑问,我决定再验证一次。验证的方法是找一个带数据的完整的程序,先实现其程序,再用它的数据和我的程序计算,对比一下二者的结果。在知乎上找到一篇,https://zhuanlan.zhihu.com/p/55425806 是用贵州茅台,工商银行和中国平安三只股票做回。我照着其程序写了,计算结果
  • 1
  • 2
  • 3
  • 4
  • 5