quantaxis学习,小白进阶第二篇,文档学习(三)(指标系统)
发布于 2 个月前 作者 James1010422846 259 次浏览 来自 分享

这篇是指标系统的讲解,实际应用非常简单,主要就是两个方向,使用基础类指标和自己编写指标并且运用 1.使用基础类指标 import QUANTAXIS as QA QA.MA(Series, N) QA.EMA(Series, N) QA.SMA(Series, N, M=1) QA.DIFF(Series, N=1) QA.HHV(Series, N) QA.LLV(Series, N) QA.SUM(Series, N) QA.ABS(Series) QA.MAX(A, B) QA.MIN(A, B) QA.CROSS(A, B) QA.COUNT(COND, N) QA.IF(COND, V1, V2) QA.REF(Series, N) QA.STD(Series, N) QA.AVEDEV(Series, N) QA.BBIBOLL(Series, N1, N2, N3, N4, N, M) 这个是最简答的,Series的就是对应的股票数据,可以是单个比如close,也可以是一系列数据,比如close,open等

应用级指标 实际使用方法和上面差不多,不过一个是series数据,一个是dataframe数据。但实际使用时,我们获得数据都是dataframe类型数据 import QUANTAXIS as QA QA.QA_indicator_OSC(DataFrame, N, M) QA.QA_indicator_BBI(DataFrame, N1, N2, N3, N4) QA.QA_indicator_PBX(DataFrame, N1, N2, N3, N4, N5, N6) QA.QA_indicator_BOLL(DataFrame, N) QA.QA_indicator_ROC(DataFrame, N, M) QA.QA_indicator_MTM(DataFrame, N, M) QA.QA_indicator_KDJ(DataFrame, N=9, M1=3, M2=3) QA.QA_indicator_MFI(DataFrame, N) QA.QA_indicator_ATR(DataFrame, N) QA.QA_indicator_SKDJ(DataFrame, N, M) QA.QA_indicator_WR(DataFrame, N, N1) QA.QA_indicator_BIAS(DataFrame, N1, N2, N3) QA.QA_indicator_RSI(DataFrame, N1, N2, N3) QA.QA_indicator_ADTM(DataFrame, N, M) QA.QA_indicator_DDI(DataFrame, N, N1, M, M1) QA.QA_indicator_CCI(DataFrame, N=14)

重点:自己写指标 这块可以说是走向量化的一个里程碑,建立自己的交易指标,为之后创建买卖规则打下基础。 绝路航标: import QUANTAXIS as QA def JLHB(data, m=7, n=5): ""“ 通达信定义 VAR1:=(CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60))80; B:SMA(VAR1,N,1); VAR2:SMA(B,M,1); 绝路航标:IF(CROSS(B,VAR2) AND B<40,50,0); """ var1 = (data[‘close’] - QA.LLV(data[‘low’], 60)) /
(QA.HHV(data[‘high’], 60) - QA.LLV(data[‘low’], 60)) * 80 B = QA.SMA(var1, m) var2 = QA.SMA(B, n) return pd.DataFrame({‘JLHB’:QA.CROSS(B,var2)
(B<40)}) 金叉死叉 def MACD_JCSC(dataframe, SHORT=12, LONG=26, M=9): ”"“ 1.DIF向上突破DEA,买入信号参考。 2.DIF向下跌破DEA,卖出信号参考。 ”"" CLOSE = dataframe.close DIFF = QA.EMA(CLOSE, SHORT) - QA.EMA(CLOSE, LONG) DEA = QA.EMA(DIFF, M) MACD = 2*(DIFF-DEA)

CROSS_JC = QA.CROSS(DIFF, DEA)
CROSS_SC = QA.CROSS(DEA, DIFF)
ZERO = 0
return pd.DataFrame({'DIFF': DIFF, 'DEA': DEA, 'MACD': MACD, 'CROSS_JC': CROSS_JC, 'CROSS_SC': CROSS_SC, 'ZERO': ZERO})

使用指标: QA.QA_fetch_stock_day_adv(‘000001’,‘2017-01-01’,‘2017-05-31’).to_qfq().add_func(JLHB) 这段代码就是收尾而已

QUANTAXIS的指标类 QA_DataStruct_Indicators()

指标类可以直接加载计算出来的指标 data = QA.QA_fetch_stock_day_adv(‘000001’,‘2020-01-01’,‘2020-04-01’) ind=data.add_func(QA.QA_indicator_WR,1,2) inc=QA.QA_DataStruct_Indicators(ind) inc.data 这四行代码就是将上面的内容进行了整合处理。 效果图: )5%VFS%9}@{F)2J{}VEPPND.png

获取一段时段时间的某个股票的指标序列 inc.get_timerange(‘2018-01-07’,‘2018-01-12’,‘000001’)

获取某一个时刻的某个股票的某个指标值 inc.get_indicator(‘2018-01-12’,‘000001’,‘WR1’)

获取某个时刻某个股票的所有指标值 inc.get_indicator(‘2018-01-12’,‘000001’) 这行代码使用后,bug 之后本人使用的是一下代码 inc.get_indicator(‘2018-01-12’,‘000001’,[‘WR1’,‘WR2’]) 这个bug希望有哪位大神可以帮忙解答,并在帖子下面回复。多谢了

1 回复
回到顶部