我是靠谱客的博主 幸福飞鸟,这篇文章主要介绍股票常用指标实现,现在分享给大家,希望可以做个参考。

股票常用指标

原文

其他好文章

指标

先把要用指标放上来

缩写描述
KKDJ中的K值
DKDJ中的D值
JKDJ中的J值
MACD异同移动平均线
MOM动量线
BIAS乖离率
CMO钱德动量摆动指标
TRIX三重指数平滑平均线
OBV能量潮
ROC变动率指标
AMA移动平均平行线差指标
VR成交量变异率
PSY心理线指标
Force Index强力指数指标
DPO区间震荡线
VHF十字过滤线指标
RVI相对活力指数

实现

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import pandas as pd import numpy as np import talib import stockstats import pandas_talib import tushare as ts df=ts.get_hist_data('601857') df1=df.copy() ''' 这里虽然没有定义df这个变量,但这很明显就是dateframe格式的某只股票基础数据 包括开盘价、收盘价、最高价、最低价和成交量 建议用tushare来获取数据(当然仅限日数据) ''' stockStat = stockstats.StockDataFrame.retype(df) close = df.close highPrice = df.high lowPrice = df.low volume = df.volume df.rename(columns={'close': 'Close', 'volume': 'Volume'}, inplace=True) sig_k , sig_d = talib.STOCH(np.array(highPrice), np.array(lowPrice), np.array(close), fastk_period=9,slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0) sig_j = sig_k * 3 - sig_d * 2 sig = pd.DataFrame() sig['K']=list(sig_k) sig['D']=list(sig_d) sig['J']=list(sig_j) #sig = pd.DataFrame([list(sig_k), list(sig_d), list(sig_j)], columns=['K', 'D', 'J']) sig['MACD'], MACDsignal, MACDhist = talib.MACD(np.array(close), fastperiod=6, slowperiod=12, signalperiod=9) sig['MOM'] = talib.MOM(np.array(close), timeperiod=5) sig['CMO'] = talib.CMO(np.array(close), timeperiod=10) sig['TRIX'] = talib.TRIX(np.array(close), timeperiod=14) sig['OBV'] = talib.OBV(np.array(close), volume) sig['ROC'] = talib.ROC(np.array(close), timeperiod=10) sig['VR'] = list(stockStat['vr']) sig['Force_Index'] = list(pandas_talib.FORCE(df, 12)['Force_12'])
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
def BIAS(close, timeperiod=20): if isinstance(close,np.ndarray): pass else: close = np.array(close) MA = talib.MA(close,timeperiod=timeperiod) return (close-MA)/MA bias=BIAS(close, timeperiod=20) def AMA(stockStat): return talib.MA(stockStat['dma'], timeperiod=10) ama=AMA(stockStat) def PSY(priceData, period): difference = priceData[1:] - priceData[:-1] difference = np.append(0, difference) difference_dir = np.where(difference > 0, 1, 0) psy = np.zeros((len(priceData),)) psy[:period] *= np.nan for i in range(period, len(priceData)): psy[i] = (difference_dir[i-period+1:i+1].sum()) / period return psy*100 def DPO(close): p = talib.MA(close, timeperiod=11) p.shift() return close-p def VHF(close): LCP = talib.MIN(close, timeperiod=28) HCP = talib.MAX(close, timeperiod=28) NUM = HCP - LCP pre = close.copy() pre = pre.shift() DEN = abs(close-close.shift()) DEN = talib.MA(DEN, timeperiod=28)*28 return NUM.div(DEN) vhf=VHF(close) def RVI(df): close = df.close open = df.open high = df.high low = df.low X = close-open+2*(close.shift()-open.shift())+2*(close.shift(periods=2)-open.shift(periods=2))*(close.shift(periods=3)- open.shift(periods=3))/6 Y = high-low+2*(high.shift()-low.shift())+2*(high.shift(periods=2)-low.shift(periods=2))*(high.shift(periods=3)- low.shift(periods=3))/6 Z = talib.MA(X, timeperiod=10)*10 D = talib.MA(Y, timeperiod=10)*10 return Z/D rvi=RVI(df1)

posted on 2019-02-25 19:13 luoganttcc 阅读(...) 评论(...) 编辑 收藏

最后

以上就是幸福飞鸟最近收集整理的关于股票常用指标实现的全部内容,更多相关股票常用指标实现内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部