自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

云金杞

Quant\Econometrician\Programmer\MFIn\CIIA\FRM\CFP

  • 博客(838)
  • 资源 (9)
  • 问答 (2)
  • 收藏
  • 关注

原创 60、【backtrader期货策略】如何用backtrader回测期货tick数据?(2022-01-02修改)

原生的backtrader并不支持tick数据的回测,论坛里面也有一些使用者讨论如何用backtrader回测tick数据,其实,最近也一直有在思考这个问题,这篇文章就分享下,如何做。在开始之前,先分析下,这么做的一些缺点。高频回测的测不准原理对于中低频的趋势交易策略,如果交易量不是很大的话,单个交易策略对市场的影响微乎其微,可以只考虑市场什么情况,在这种情况下,考虑交易成本之后,回测有一定的可靠性。高频的交易,本身可能对这个市场就有很大的影响,自身的行为就可能导致市场行为发生改变,使用历史数据回测,

2021-05-13 21:46:52 2857 9

原创 【答读者问7】如何加载分钟数据到backtrader

答读者问为免费文章,不计入专栏里面。本文可以在下面地址免费阅读。在教程与股票的案例中,大部分使用的都是日线,并且数据文件都是csv与pandas,backtrader可以支持各种的数据文件,并且加载的数据,可以进行扩展,不仅仅只有高开低收成交量持仓量这些,具有很强的灵活性。本文处理的一个问题主要是如何加载分钟数据到backtrader中,这个在官网的教程中,出现的也比较少。可以使用PandasDirectDataparams = dict( fromdate = datetim

2021-05-06 18:22:41 1772

原创 【答读者问6】如何获取哪些股票有持仓?

答读者问为免费文章,不计入专栏里面。本文可以在下面地址免费阅读。backtrader实现了一些基础的功能,有些需要个人定制的功能,完全可以使用一些基础的功能进行叠加来实现,如果使用的次数比较多的话,就可以写成具体的函数,使用的时候直接调用,比如可以在strategy里面添加一些常用的函数。如果想要获得有哪些股票有持仓,可以使用self.getposition.size是否等于0来进行判断,如果等于0没有持仓,如果大于0代表持有多单,如果小于0,代表持有空单。def get_trading_assets

2021-05-05 21:11:07 525

原创 59、【backtrader股票策略】多资产的配对交易策略(mean reversion - single cluster)

这个策略的思路来自于《151 trading strategies》,本文主要分为四个部分:策略逻辑描述、策略代码、策略绩效、策略简单分析策略逻辑说明常见的配对交易策略往往是两个资产的配对交易,涉及到多个资产的配对交易策略很少见,我知道的就一个外汇上的三角套利,绞尽脑瓜想了两天也不知道有什么好策略思路,就完全按照这个策略里面的逻辑来了。策略逻辑选定了三只股票,建设银行、工商银行和农业银行,计算它们三个的日收益率求出三个股票的平均收益率以及每个股票的超额收益率,以平均收益率为基准每个股票分配的.

2021-04-28 21:57:25 1304

原创 58、【backtrader股票策略】两资产的配对交易策略(pairs trading strategy)

这个策略的思路来自于《151 trading strategies》,本文主要分为四个部分:策略逻辑描述、策略代码、策略绩效、策略简单分析策略逻辑说明这个策略的逻辑有些简单,一般而言,配对交易策略属于相对价值策略,通过一定的方法(基于基本面逻辑或者基于统计分析)选择具有相关性的两个股票,当两个股票的价差(A-B)比较低的时候,选择做多A,做空B;当价差比较高的时候,做空A,做多B ;基于的基本原理就是价差是均值回归的,涨的太高了,会下跌;下跌的太多了,会升高。选定两支股票,建设银行与工商银行,因为.

2021-04-26 21:48:37 1791 8

原创 【答读者问5】如何实现以当天收盘价交易?

backtrader本身提供了一个close order,这个能够以收盘价买入,但是,这个收盘价是第二天的收盘价,用于买卖基金没什么问题,但是用到正常的交易,如尾盘选股买入的方法,就不能够实现了。首先,在提供如何做的时候,先声明一下,这样做是有风险的,是存在逻辑上的不合理的。因为这个信号本身是要根据当天的收盘价来产生,收盘价没有确定的时候,是没有办法产生交易信号的,但是,在收盘价确定了之后,这个周期也往往结束了,不能在这个bar上进行交易了,这就是最核心的矛盾。所以,在实盘的时候,使用这种模式,可能会产生

2021-04-26 08:28:08 2191

原创 【答读者问4】如何实现all-in(每次下单使用全部资金)

有些交易者希望能够使用all-in的模式,即每次使用全部的资金,官网上给出了一个方法:一、使用cheat_on_openCheat-On-Open是什么cheat_on_open是为了满足每次下单使用全部资金(all-in)的投资者,如果不使用cheat_on_open这个方法的话,在一个bar收盘的时候计算需要的手数,但是需要在下个bar开盘的时候交易,如果下个bar开盘的时候出现很大的价差(向上跳空或者向下跳空),就有可能造成可用资金不足,导致broker拒绝这笔交易,提示Margin.尽管ba

2021-04-25 21:05:14 1062 4

原创 57、【backtrader股票策略】剩余收益率动量策略(residual momentum)【2021-07-04修改】

这个策略的思路来自于《151 trading strategies》,本文主要分为四个部分:策略逻辑描述、策略代码、策略绩效、策略简单分析策略逻辑说明这个策略和价格动量策略类似,只是一个用的价格的一阶差分(收益率)来衡量动量的大小,一个用的是贝塔因子、SMB、HML这三个因子不能解释的剩余收益率来衡量动量大小,做多动量高的,做空动量低的。首先,从csmar上下载了每个交易日的三个因子的大小,然后使用过去一年的价格数据来计算收益率,用收益率代表y,三个因子代表x,进行回归,然后计算模型的残差,并计算风.

2021-04-22 21:57:33 1561

原创 【答读者问3】用backtrader可以做什么?

backtrader是基于python编程语言的事件驱动型(指标可以向量化计算)的量化投资框架,在目前众多的python的量化框架中,算得上数一数二的。在以前的文章中说明了为什么又重新用backtrader了?,在这很长时间的探索中,发现backtrader还是最适合我的,为什么呢?这个要从backtrader的功能上来说了。backtrader可以实现什么功能?可以回测及交易的资产可以用于股票、期货、期权、基金、外汇、数字货币等资产的回测与交易。丰富的技术指标backtrader自身编

2021-04-22 08:26:32 916

原创 【答读者问2】用python做量化投资能实现什么?

做量化投资,可以使用很多的工具,比如R、matlab、Java、C、C++、go、julia,当然还有python,客观上来讲,几乎任何一种编程语言都可以用来做量化投资。量化投资的流程如果把量化投资的过程进行划分,大致可以分为三个部分:策略回测、程序化交易、风险管理与绩效评估。其中,策略回测是核心,程序化交易是手段,使用程序化交易会使得策略运行有优势,但是不使用程序化交易,手动下单,只要是根据策略产生的交易信号,也可以说是量化投资。python在量化投资中能实现什么基本上,python和另外的其他语

2021-04-21 18:05:51 718 3

原创 【答读者问1】有多年交易经验,python入门,如何学习量化交易?

免费版本:https://zhuanlan.zhihu.com/p/362754695有一个读者自述:具有多年的交易经验,但是python就刚刚入门,基本语法懂一些,但是用起来还很生疏,咨询如何学习量化投资量化投资可以分为三部分吧:第一部分金融投资相关的内容,这位读者有丰富的交易经验,应该不需要特意补充什么知识了;第二部分就是编程语言的使用,可以使用python,C++,R,matlab,Java任意一种语言,作者选用的是python,目前做量化比较流行。如何学习python呢首先,阅读理解py

2021-04-07 08:24:26 773

原创 56、【backtrader股票策略】多因子策略框架及基于动量和价值的因子策略

这个策略的思路来自于《151 trading strategies》,本文主要分为四个部分:策略逻辑描述、策略代码、策略绩效、策略简单分析策略逻辑说明多因子策略主要涉及到两个问题:第一个问题如何组合因子选出来哪些股票进行交易;第二个问题是给每个策略分配多少资金;这可能也是对大多数策略来说,都挺关键的两个维度。本文使用的因子组合方式是:先选出来200支PE值最低的股票,作为被低估的股票,然后从这200支股票中,选出来100支过去半年(128天)收益率最高的股票作为动量较高的股票,把这100支股票做多

2021-03-31 22:24:09 3704 1

原创 55、【backtrader股票策略】炒股票应该买便宜股票还是贵的股票?

这篇文章是一篇单因子分析的文章,因子就是价格,分析的结果就是用于指导我们:买股票的时候是买便宜的股票还是买贵的股票更占优势?即价格便宜的股票相对于价格贵的股票是否具有超额收益。策略逻辑说明这个策略和前几个策略也非常相似,只是挑选股票的因子换成了价格,把股票按照价格高低排序为10组,做多价格最低的一组,做空价格最高的一组。和前几个策略的资金、资金分配、交易手续费都是一样的。我们使用全市场的A股日数据进行测试,做多头,也做空头。多头和空头都占用资金。假设初始资金有1个亿,手续费为万分之二。策略代

2021-03-29 21:36:33 723 1

原创 54、backtrader的一些基本概念---如何进行时间管理?

时间对比在回测中,单个数据的时间对比一般不涉及到时区的问题,如果加载的多个数据并不是一个时区,在做时间对比的时候,需要做额外的时区转换;在实盘交易的过程中,如果交易所在的时区与交易的证券所在时区不一致,一般也是需要进行时区转换;import pytzimport bt# 可以在加载数据的时候,增加响应的时区,这样数据的时间就可以和本地时间进行跨时区对比了data = bt.feeds.MyFeed('ES-Mini', tz=pytz.timezone('US/Eastern'))clas

2021-03-28 18:34:52 1763 4

原创 53、backtrader的一些基本概念---如何用backtrader画图?

backtrader的画图主要是通过matplotlib来实现的,当cerebro中加载的数据比较多,指标比较多的时候,用matplotlib画图就会显得比较臃肿,现在也有不少人对backtrader的画图功能进行了扩展,比如backtrader_plotting(注:在python3.8 ubuntu20.04中,有bug)plotinfo的使用关于画图,其实已经讲过一部分内容了,比如在如何创建一个新的技术指标(indicator) 讲了plotinfo的一些参数,在这里,进行一些补充:plotin

2021-03-28 12:35:35 4047 1

原创 52、backtrader的一些基本概念---如何把策略收益与基准收益做对比?

我们有时候做完了策略之后,并不知道策略的好坏,一个最基本的指标就是和基准进行对比;基准可以是数据本身或者指数数据,如果策略带来的收益率还不如指数本身,那么,这个策略大概就不是很好,还不如买入持有。在backtrader中,有两种方法可以实现策略收益与基准收益的对比,一个是analyzers,一个是observers。analyzers的使用在使用analyzers对比策略收益与基准收益的时候,主要是使用analyzers下面的TimeReturn,主要有两个参数:timeframe,默认是None

2021-03-28 10:23:39 2454 7

原创 51、backtrader的一些基本概念---如何使用观察者(observer)?

backtrader提供了观察者(observer)的功能,默认情况下,会提供cash 和value 、Trades 、Buy/Sell Orders ,使用cerebro.plot()画图的时候会显示;# cerebro = bt.Cerebro(stdstats=True)等价于下面的代码cerebro = bt.Cerebro() # default kwarg: stdstats=Truecerebro.addobserver(bt.observers.Broker)cerebro.add

2021-03-27 16:32:16 1488 2

原创 50、backtrader的一些基本概念---如何设置每次下单的大小?

backtrader提供了一个sizer的功能,如果在self.buy,self.sell的时候没有指定size的大小,就会按照sizer提供的功能进行下单,这个功能我几乎没有使用过,因为在实际的交易或者回测的过程中,几乎不会使用固定的手数;不过,sizer提供了扩展的功能,可以自定义下单多少,这个还蛮不错。sizer的简单使用单个策略,下单使用固定手数cerebro = bt.Cerebro()# 使用addsizer增加,如果不使用SizerFix,也不在self.buy或者self.sel

2021-03-27 15:14:45 2410

原创 均值回归中的半衰期计算方式

import statsmodels.api as smdef get_halflife(s): s_lag = s.shift(1) s_lag.iloc[0] = s_lag.iloc[1] s_ret = s - s_lag s_ret.iloc[0] = s_ret.iloc[1] s_lag2 = sm.add_constant(s_lag) model = sm.OLS(s_ret,s_lag2) res = model.fit.

2021-03-26 10:47:43 2284

原创 使用python做协整模型分析并进行残差检验

from statsmodels.graphics.tsaplots import plot_acf, plot_pacffrom statsmodels.tsa.stattools import adfullerimport pandas as pdimport numpy as npimport osimport statsmodelsimport statsmodels.formula.api as sm### 省略很多数据处理# 对near和far进行协整检验simple =.

2021-03-26 09:33:16 4792 1

原创 【思考14】量化交易回测中,关于涨跌停的处理方式

这篇文章免费,可以在知乎看到有好多人在量化交易的回测过程中,对股票、期货之类的涨跌停比较在意,害怕涨跌停了之后交易不了,本文就尝试梳理下我对涨跌停的看法以及我在回测中的应对方式。在开始本文对涨跌停的处理之前,需要大家对下单方式有一个基本的了解,什么是市价单,什么是限价单,可以参考我以前的一篇文章:backtrader的一些基本概念—order有哪些类型,为什么要区分限价单和市价单呢,这是因为,下限价单的时候,本身就不知道什么时候会成交,属于等待成交的,显然,不用对涨跌停过份在意。对涨跌停在意的是下市价单

2021-03-24 22:50:25 1676

原创 49、【backtrader股票策略】如何实现跨周期调用技术指标的策略?

当涉及到多个周期的数据之后,就可能出现,需要在多个周期上实现相应的技术指标,这和单个周期上并没有多大的区别,和官网上的文档中描述的并不一样,并不需要特殊的操作。但是,涉及到跨周期的技术指标的实现过程中,还是有一些问题需要注意的。我们通过一个跨周期实现的策略来说明,实现跨周期策略中,以及使用技术指标中,需要注意的地方跨周期策略逻辑测试的股票是工商银行的数据,分别是日数据(使用5日均线和20日均线)和周数据(使用五周均线和20周均线)。当没有持仓的时候,如果5周均线大于20周均线,并且5日均线大于20日

2021-03-24 19:59:07 1563 6

原创 48、backtrader的一些基本概念----如何创建一个新的技术指标(indicator)-(2021-10-17更新)

虽然backtrader本身和talib本身已经自带了非常多的技术指标,但是,有可能我们需要设计并实现自己的技术指标,backtrader提供了这样的功能。class DummyInd(bt.Indicator): # 需要在lines里面声明指标带的名称,line的名称,可以使用self.lines.xxx或者self.l.xxx或者甚至使用self.xxx lines = ('xxx',) # 可能需要的参数值,可以不需要 params = (('yyy', 5),)

2021-03-21 22:17:11 1791 4

原创 47、backtrader的一些基本概念---技术指标(indicator)的使用教程

最近在群里面有一些backtrader的使用者提到了如何使用talib计算均线的问题,想到还没有把backtrader如何使用指标做专题分享,今天就凑着这个周末,分享一下,如何在backtrader中使用技术指标(indicator)。开始之前,再分享一下老生长谈的问题:backtrader的line数据结构Excel表格与backtrader的linesbacktrader中大部分都是line结构,如果使用过excel的工作表,就特别容易理解line结构,也可以理解大部分的事件驱动的量化框架。e

2021-03-21 10:50:27 3222

原创 46、backtrader的一些基本概念---佣金(commisssion)的高级使用方式

在春节原本以为能够静下心来好好把专栏的第一部分《backtrader的一些基本概念》即backtrader的使用教程总结完毕,然后把一些能够完成的股票策略完成,然而,计划赶不上变化,春节期间发生了太多的事情,没能够凑出时间和静下心,去完成。这两部分,用3月份的时间来完成吧,尽可能找时间,多写一些文章。好了,言归正传,开始今天的内容。backtrader的原来的佣金方式,可以满足一些基本的要求,但是,当有特殊的需要的时候,就需要自己进行扩展了。本文主要介绍一些收取佣金的高级方式,满足大家的特殊要求。Co

2021-02-28 22:32:07 1296 12

原创 45、backtrader的一些基本概念---佣金(commission)的设置

不知道这是第几遍阅读(可能是第五遍系统阅读吧)backtrader的官方文档了,每一次阅读都能有所收获。在这次阅读的过程中,也发现了不少backtrader官方教程中的问题,修正之后,也尝试加入了我自己的理解,所以,我并没有把这个系列的教程看作是对作者英文教程的一个简单翻译。春节快到了,今天回到老家了,趁着空闲的时间,争取把backtrader的基本概念分析完,并且尝试看能否把《151 trading strategy》中的股票策略也给测试完。定了一个很大的目标,我争取在这10多天的时间中完成吧。先分享下

2021-02-06 20:34:22 2579 7

原创 在ubuntu系统上,pypy安装scipy

ubuntu20.04的系统,配置好pypy之后,安装scipy总是出错,记录下如何安装scipy。这个也不一定准,因为尝试的方法太多了,可能多种因素导致最终成功了。首先,报错原因安装scipy的时候出现因为没有lapack/blas报错,查找scipy的相关文档,说是要安装openblas,其实并没有安装这个,因为下载太慢了,还没有成功,就尝试了另外一种方法。其次,安装相应的包sudo apt-get install libatlas-base-devcd /usr/local/libsudo

2021-02-04 21:37:29 1138 1

原创 44、backtrader的一些基本概念---Cheat-On-Open的使用方法

Cheat-On-Open是什么cheat_on_open是为了满足每次下单使用全部资金(all-in)的投资者,如果不使用cheat_on_open这个方法的话,在一个bar收盘的时候计算需要的手数,但是需要在下个bar开盘的时候交易,如果下个bar开盘的时候出现很大的价差(向上跳空或者向下跳空),就有可能造成可用资金不足,导致broker拒绝这笔交易,提示Margin.尽管backtrader的使用者可以使用data.open[1]来获取下个bar的开盘价来计算交易手数,但是这个需要预先价格数据(p

2021-02-01 08:27:23 1797 11

原创 43、backtrader的一些基本概念----滑点(Slippage)的使用方法(2022-05-24更新)

回测的时候和真实的交易情况有差别。不论回测设置的有多好,在真实的交易情况下,滑点是可能存在的。这就意味着,如果我们直接用成交价格,可能导致我们回测时候成交和实际交易的时候成交不一致。现在的backtrader版本支持slippage,下面的一些参数可以传递给broker:slip_perc (默认: 0.0) 按照价格的比例计算滑点,如0.01代表1%,0.001代表0.1%slip_fixed (默认: 0.0) 固定的数字,当买入的时候,成交价格上涨,卖出的时候成交价下跌;如果slip_perc

2021-01-30 20:55:21 3330 4

原创 42、backtrader的一些基本概念---volume filling fillers的使用方法

backtrader回测的时候,当面临订单执行的时候,采用了一个默认的策略:忽略成交量。这个策略要满足两个基本的前提:交易的市场具有足够的流动性,能够满足买卖的需要真正的订单匹配需要真实的市场环境:回测的时候,不能区分出是否应该接受或者拒绝这个订单,这是回测的局限性。但是,broker可以接受Volume Fillers,它决定在一个给定时间有多少的成交量才会进行订单匹配fillers是什么在backtrader的生态系统中,A filler可以是任何满足下面格式的callable:cal

2021-01-30 19:21:49 919

原创 41、backtrader的一些基本概念---broker的使用方法

backtrader根据需要编写了不同的broker,主要是为了实盘的时候连接不同的交易所,本讲主要分享的是模拟所用的broker,即BackBroker。broker回测的时候具有的功能支持不同的订单类型市价单(Market)收盘价订单(Close)限价单(Limit)市价止损单(Stop)限价止损单(StopLimit)\这些不同的订单类型已经在order一章中详细分享。可以参考一下文章:backtrader的一些基本概念—市价单(market order)的创建和撮合逻辑

2021-01-30 17:20:26 1852

原创 40、【backtrader股票策略】做A股时,波动率越低的股票越能带来更高的收益吗?

看到《151 trading strategies》中的这个策略,想到了我以前做过的一个低波动率策略的研究。和原先的策略一样,本文也主要分为四个部分:策略逻辑描述、策略代码、策略绩效、策略简单分析策略逻辑说明这个策略和前几个策略也非常相似,只是挑选股票的因子换成了波动率,计算过去半年的波动率,做多波动率比较低的一组股票,做空波动率比较高的一组股票。和前几个策略的资金、资金分配、交易手续费都是一样的。我们使用全市场的A股日数据进行测试,做多头,也做空头。多头和空头都占用资金。假设初始资金有1个.

2021-01-27 22:22:11 1313

原创 39、【backtrader股票策略】在A股中使用基于PB指标的价值投资策略可以赚钱吗

和前几个策略一样,策略思路依然来自于《151 trading strategies》中,本文将会分析价值策略在A股中这些年的表现情况。注:当你做策略的时候,你就会发现,用backtrader写策略真简单。这个策略写好,花了我7分钟的时间,运行花了一个多小时。和原先的策略一样,本文也主要分为四个部分:策略逻辑描述、策略代码、策略绩效、策略简单分析策略逻辑说明相对于原先的收益动量策略,价值投资策略的思路唯一改变的地方就是选择股票的标准不一样,通过做多低P/B的一组股票,做空高P/B的一组股票,以期待获

2021-01-27 20:53:42 870 3

原创 38、【backtrader股票策略】《151 trading strategies》中的收益动量(earnings momentum)

在上一讲分享了《151 trading strategies》中,我们测试了价格动量策略,在本文中,我们尝试分享一下收益动量策略。从优矿上获取了股票的每个季度的每股财务指标,我们使用每股营业利润作为earings的代表,但是由于这个财务指标公布日期不知道,只知道统计截止日期每季度结束的日期,所以,在使用这些数据的时候,有可能存在利用未来数据的可能性,有可能会造成收益率虚高。和原先的策略一样,本文也主要分为四个部分:策略逻辑描述、策略代码、策略绩效、策略简单分析策略逻辑说明相对于原先的价格动量策略

2021-01-26 21:08:48 1593 13

原创 本专栏的使用说明

前几年,我就开始使用小米手环,记录我自己的睡眠数据、心率数据和运动数据,但是由于小米手环只有一个APP,所有数据也都是在APP上,当时我想要分析这些运动数据进行分析,但是并没有办法导出来这些数据(实际上是可以通过网络爬虫爬取APP数据进行导出的),所以,就想找一个手表,具有能够在网站上储存我的运动信息的功能,这个时候,polar就进入了我的世界。polar可以记录运动、睡眠、心率、活动等信息,并且把历史信息都保存在网站上,想要获取这些信息,写个爬虫就能爬下来。这个专栏的目的就是分享一下如何写相应的网络爬

2021-01-24 19:50:49 329

原创 如何利用从polar上获得的睡眠和运动信息使用plotly画图展示?

如何展示相应的信息这个涉及到使用plotly进行画图,我们使用简单一些的方法,根据需要增加相应得到副图数目。画图的要点:需要画几副图,就修改参数:fig = make_subplots(rows=4, cols=1),rows =4,cols=1代表有4幅图,每行一个,有4行,x轴是日期,y轴相应的数据,name是名称,row和col是相应到嗯位置,下面的代码,会画出来睡眠图import plotly.graph_objects as gofrom plotly.subplots import m

2021-01-24 19:46:56 379

原创 如何在polar上爬取睡眠数据和运动数据

polar使用的一些小经验polar买回来之后,最好在电脑上下载一下官方的软件,同步一下设置,这个时候polar的语言和时区一般会变成本地的,而且可以避免一直是运动模式,耗电量太高,导致需要经常充电。polar需要定期同步数据到官网上,可以使用APP或者连接到电脑的同步软件上,建议使用电脑同步,手机APP同步很容易断,需要尝试很多次。只有进行过数据同步之后,新的运动数据才能够在官网上看到。平时就长时间佩戴就好,运动的时候设置相应的运动模式。这是我个人的一些小经验,仅供参考。下载安装python

2021-01-24 19:28:40 1272 1

原创 37、【backtrader股票策略 】《151 trading strategies》中的价格动量策略(price-momentum)

在《151 trading strategies》中的3.1节,提到了一个动量策略,在本策略中,将尝试在全A股中进行测试这个策略,本节主要包含四个部分:策略逻辑的说明策略实现代码策略测试结果策略绩效的简单分析策略逻辑说明动量策略是一个常见的策略类型,包括绝对动量和相对动量。绝对动量是指在时间序列上,如果过去一段时间的收益率为正,那么就持有多头;如果过去一段时间的收益率为负数,那么就持有空头。相对动量,是分析过去一段时间中,多个股票上的收益率,做多收益率最高的一组;做空收益率最低的一组。这个.

2021-01-24 11:23:56 2239 10

原创 36、backtrader中多股票回测中某些股票由于停牌造成的数据缺失的处理方法

现在有两只股票000001和000002,在2020年1月2日到2020年8月3号,两者的数据都是全得到。现在尝试把000002的6月份的数据给删除了,然后加载000001和000002到backtrader,观察两者有什么样的表现。import backtrader as btfrom backtrader import num2dateimport datetimeimport pandas as pdimport numpy as npimport os,sysimport copyi

2021-01-21 22:02:43 1580 11

原创 35、backtrader的一些基本概念---position的使用方法

position基本上没有什么特别要说的,在使用的时候,主要用到一个getposition函数和函数的两个属性:my_position = self.getposition(data=None, broker=None)在strategy中,使用self.getposition可以获取某个data的position,如果data没有指定的话,默认的是datas[0]的positionposition有两个属性要特别注意:一个是size,一个是priceposition.size是获得的在某个数据上

2021-01-21 21:01:47 2289 4

03、债券策略需要的数据.rar

10年期国债收益率与五年期国债收益率的数据均来自英为财经。 10年期国债价格(全价)使用10年期国债期货价格指数代替; 5年期国债价格(全价)使用5年期国债期货价格指数代替;

2020-07-26

行为投资学手册.rar

行为投资学手册思维导图和笔记:一张晰图,一个xmind思维导图源文件。。。

2020-02-08

spss序列基本数据

spss序列基本数据

2017-03-08

python forfinance---code

Build real-life Python applications for quantitative finance and financial engineering

2017-01-19

statsmodels-0.8.0rc1-cp35-cp35-python安装包

statsmodels-0.8.0rc1-cp35-cp35-python安装包

2016-12-09

python写的计算小程序

可以锻炼数学

2016-11-15

python--easygui-0.97安装包

官方安装easygui的安装包,解压下载就可以。

2016-11-12

PyQt4---python安装spyder依赖包

安装spyder使用

2016-11-08

珠心神算-最简洁的锻炼数学计算的小程序

最近智商很捉急,就想着写一个小软件,没事锻炼一下数学的加减乘运算,提高一下自己思维的灵敏度。正好这周末学习autoit,就用这个写了一个小程序。 该软件代码实现了下列功能: 1、选择难易程度 设置了三个级别的难易程度, 初级计算10以内的加减乘 中级计算10-100区间的加减乘 高级计算100-1000之内的加减乘 2、设置每个程度计算多少次 初级 计算100次

2016-10-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除