分类
新手短線交易策略

BBands与RSI复合指标组合

代码先锋网 代码片段及技术文章聚合

Mybatis配置文件引入MySQL数据源的三种方式&&映射文件配置的三种方式 这里是MySQL数据源的引入方式示例,其中还在每段代码的下面示范了映射文件配置的三种配置示例。 方式一:最基础的配置方式 方式二:通过resource属性引入类路径下的配置文件 方式三:通过url属性引入任意路径下的配置文件.

解决 - java.lang.OutOfMemoryError: unable to create new native thread

工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题、分析问题、解决问题。 一、认识问题: 首先我们通过下面这个 测试程序 来认识这个问题: 运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_18, eclipse 3.4, 测试程序: Java代码 importjava.util.con.

equals原理

在java中,"=="和"BBands与RSI复合指标组合 equals()"区别是什么? 恐怕大多数人都会回答,第一个是用来比较地址,第二个是用来比较内容的吧。这个回答并不准确 例如 输出的结果为false,而用String输出的却是true 这是为什么呢? 查看object的qeuals方法发现 Object的equals方法就是使用"=="来比较对象和传入的参数的。.

零起点Python大数据与量化交易 下载 mobi epub BBands与RSI复合指标组合 pdf 电子书 2022

2014年,美国银行、美林证券的“石英”项目、摩根大通的“雅典娜”项目都不约而同地选择了Python作为金融行业的标准编程语言。
全世界的金融工程行业全部重新洗牌,这为中国的金融工程从业人员带来了前所未有的机遇。资本的力量是强大的,也是冷酷无情的。 BBands与RSI复合指标组合
2016年5月,《华尔街日报》报道,目前华尔街的三大编程语言是:C、Java与Python。其中,C与Java成为三大语言之一有两方面原因:一方面是由于历史积累,另一方面是系统架构设计的需要。而在应用领域Python更胜一筹,因为Python已经成为金融行业量化领域的标准编程语言。
本书是国内较早关于Python大数据与量化交易的原创图书。本书配合zwPython、zwQuant开源量化软件学习,是一套完整的大数据分析、量化交易的学习教材,可直接用于实盘交易。
本书内容包括:
近50万字的图文课件;
数十套结合课件的Python教学代码;
全套zwPython开源平台;
业内首套面向初学者的开源量化系统zwQuant;
国内较大的开源金融数据包zwDat,包括tick数据。
100%零基础,无须任何编程、交易经验,也不需要具备超强的数据分析能力,只要会使用Excel就可以轻松学会本书讲解的知识点。读完本书内容和配套的教学代码,就能够编写简单的量化策略函数。

python获取股票实时行情之后如何快速计算技术指标?

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

请选择以下任一种方式输入命令安装依赖
1. Windows 环境 打开 Cmd (开始-运行-CMD)。
2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

安装TA-Lib的时候可能会遇到没有VC++14.0的报错,这时候我们需要手动安装,在 https://www. lfd.uci.edu/~gohlke/pyt honlibs/#ta-lib 中下载你对应的Python版本的 TA-Lib whl文件。

2.基本使用

默认情况下,pandas ta 取 open 、high、low、close、volumeadj_close 列作为指标参数,本文的列名正好对应的上,无需再去特别命名。

aberration, above, above_value, accbands, ad, adosc, adx, alma, amat, ao, aobv, BBands与RSI复合指标组合 apo, aroon, atr, bbands, below, below_value, bias, bop, brar, cci, cdl_pattern, cdl_z, cfo, cg, chop, cksp, cmf, cmo, coppock, cross, cross_value, cti, decay, decreasing, dema, dm, donchian, dpo, ebsw, efi, ema, entropy, eom, er, eri, fisher, fwma, ha, hilo, hl2, hlc3, hma, hwc, hwma, ichimoku, increasing, inertia, jma, kama, kc, kdj, kst, kurtosis, kvo, linreg, log_return, long_run, macd, mad, massi, mcgd, median, mfi, midpoint, midprice, mom, natr, nvi, obv, ohlc4, pdist, percent_return, pgo, ppo, psar, psl, pvi, pvo, pvol, pvr, pvt, pwma, qqe, qstick, quantile, rma, roc, rsi, rsx, rvgi, rvi, short_run, sinwma, skew, slope, sma, smi, squeeze, squeeze_pro, ssf, stc, stdev, stoch, stochrsi, supertrend, swma, t3, td_seq, tema, thermo, tos_stdevall, trima, trix, true_range, tsi, tsignals, BBands与RSI复合指标组合 ttm_trend, ui, uo, variance, vhf, vidya, vortex, vp, vwap, vwma, wcp, willr, wma, xsignals, zscore

这里的值如果出现 100 ,就是出现DOJI形态。支持以下全部蜡烛形态:

2crows, 3blackcrows, 3inside, 3linestrike, 3outside, 3starsinsouth, 3whitesoldiers, abandonedbaby, advanceblock, belthold, breakaway, closingmarubozu, concealbabyswall, counterattack, darkcloudcover, doji, dojistar, dragonflydoji, engulfing, eveningdojistar, eveningstar, gapsidesidewhite, gravestonedoji, hammer, hangingman, harami, haramicross, highwave, hikkake, hikkakemod, homingpigeon, identical3crows, inneck, inside, invertedhammer, kicking, kickingbylength, ladderbottom, longleggeddoji, longline, marubozu, matchinglow, mathold, morningdojistar, morningstar, onneck, piercing, rickshawman, risefall3methods, separatinglines, shootingstar, shortline, spinningtop, stalledpattern, sticksandwich, takuri, tasukigap, thrusting, tristar, unique3river, upsidegap2crows, xsidegap3methods

backtrader股票技术指标自定义与量化回测

import backtrader as bt
import pandas as pd
import numpy as np
import tushare as ts
def get_data(code,start='2010-01-01',end='2020-08-31'):
df=ts.get_k_data(code,autype='qfq',start=start,end=end)
df.index=pd.to_datetime(df.date)
df['openinterest']=0
df=df'open','high','low','close','volume','openinterest'
return df

def __init__(self):
bt.ind.MACD(self.data)
bt.ind.MACDHisto(self.data)
bt.ind.RSI(self.data,period=14)
bt.ind.BBands(self.data)

def main(data,strategy,pf=False):
cerebro = bt.Cerebro()
feed = bt.feeds.PandasData(dataname=data)
cerebro.adddata(feed)
#加载策略
cerebro.addstrategy(strategy)
# 设置初始资本为10,000
startcash = 100000
cerebro.broker.setcash(startcash)
# 设置交易手续费为 0.1%
cerebro.broker.setcommission(commission=0.001)
cerebro.run()
#获取回测结束后的总资金
portvalue = cerebro.broker.getvalue()
pnl = portvalue - startcash
if pf:
print(f'总资金: < round(portvalue,2) >')
print(f'净收益: < round(pnl,2) >')
%matplotlib inline
cerebro.plot()

class TradeStrategy(bt.Strategy):
params=(('p1',12),('p2',26),('p3',9),)
def __init__(self):
self.order = None
#获取MACD柱
self.macdhist = bt.ind.MACDHisto(self.data,
period_me1=self.p.p1,
period_me2=self.p.p2,
period_signal=self.p.p3)
def next(self):
if not self.position:
# 得到当前的账户价值
total_value = self.broker.getvalue()
#1手=100股,满仓买入
ss=int((total_value/100)/self.datas[0].close[0])*100
#当MACD柱大于0(红柱)且无持仓时满仓买入
if self.macdhist > 0:
self.order=self.buy(size=ss)
else:
#当MACD柱小于0(绿柱)且持仓时全部清仓
if self.macdhist < 0:
self.close()

#期初资金:100000
#期末资金: 225440.47
#净收益: 125440.47

03 自定义指标

lines = ('mid','top','bot',)
params = (('maperiod',20),
('period',3), BBands与RSI复合指标组合
('highRate',1.2),
('lowRate',0.85),)
#与价格在同一张图
plotinfo = dict(subplot=False)

def __init__(self):
ema = bt.ind.EMA(self.data, period=self.p.maperiod)
#计算上中下轨线
self.l.mid=bt.ind.EMA(ema,period=self.p.period)
self.l.top=bt.ind.EMA(self.mid*self.p.highRate,\
period=self.p.period)
self.l.bot=bt.ind.EMA(self.mid*self.p.lowRate,\
period=self.p.period)
super(TrendBand, self).__init__()

class TestStrategy2(bt.Strategy):
def __init__(self):
TrendBand(self.data)

class MyStrategy(bt.Strategy):
params=(('period',20),)
def __init__(self):
self.BBands与RSI复合指标组合 order = None
self.mid = TrendBand(self.data).mid
self.top = TrendBand(self.data).top
self.bot = TrendBand(self.data).bot
#设置买入信号
self.buy_sig=bt.And(\
self.data.close>self.mid,\
self.data.volume==bt.ind.Highest(\
self.data.volume,period=self.p.period))
#卖出信号
self.sell_sig=self.data.close>self.top
def next(self):
if not self.position:
# 得到当前的账户价值
total_value = self.broker.getvalue()
#1手=100股,满仓买入
ss=int((total_value/100)/self.datas[0].close[0])*100
if self.buy_sig:
self.order=self.buy(size=ss)
else:
if self.sell_sig:
self.close()

#期初资金:100000.00
#期末资金: 398949.39
#净收益: 298949.39

04 结语

本文主要介绍了backtrader回测框架中indicators的调用、自定义指标的编写以及历史回测。其中自定义指标主要是示例作用,不构成任何投资建议。历史回测中仅以中国平安个股为例,具有一定的局限性,感兴趣的读者可以参考组合回测那篇推文,对全市场股票进行组合回测以进一步判断自定义指标的实用性。最后再强调一句,学习没有捷径,要想全面而深入地学习backtrader回测框架,最好的方法是研读其官方文档。公众号后台回复“backtrader”可获取《backtrader入门指南》的中文文档