技术指标-自定义趋势指标

博主: Simon Lin 创建于: Mar 1, 2019 更新于: Mar 1, 2019
分类: stock
标签: finance stock trend

股票交易软件里的技术指标很多,很杂,在研究量化分析的时候,往往还需要花很多时间去学习指标的具体含义,算法,使用方法,指标的问题等等。真的有这么难吗?好吧,今天我就尝试尝试自己定义一个趋势类的指标出来玩一玩。

问题1

在研究量化的时候,很有多指标会给信号,例如,KDJ的金叉,死叉,均线的交叉,MACD的交叉,背离等。当我们收到这个信号的时候,如何判断信号的有效性呢?一个简单的逻辑就是,买入信号和卖出信号成对出现的话,那么我比较买入信号的价格和卖出信号的价格的高低,低买高卖就是有效的。看起来对,是吧?那么买入信号和卖出信号不一定成对出现,例如cci的指标,超多100的超买和低于-100的超卖。一个买入信号可能会对上多个卖出信号。

解决思路

首先想到的就是一个简单的趋势理论,股票价格都是按照一定的趋势进行的,上升或者下降。在上升时收到的买入信号就是正确的信号,在下降时出现的卖出信号就是正确的。这样就成功避免了买入卖出必须成对处理的问题。可以很好的量化定义每个信号的有效性。

参考的图是上证指数月线图,可以很明显的看到6124,5178两个高点。2008-10月的低点。用简单的平均化的理论,就可以把2007-10月出现的6124到2008-10月的1664间画一个连线,我们就可以称为我们的指标-趋势线,这就是一个月度的下降趋势线。

问题2

上面的上证指数月线图,然后大概在2009-7月的地方有一个高点,那么找一个低点去画连线,就会发现有的人可以画在2010-7月,也有画在2014-3月的。有一个波浪理论,上升时要走几浪,几个波峰,几个波谷等。可是在具体画的时候,变化性实在太多,有的人可以画出5浪来,有的可以画出7浪来。根本问题就在于我们人是凭肉眼去归类的,可以有很多不量化的归类方案,不同的方案间就能产生不同的上升下降趋势。找阶段高点和阶段的低点,其实也是一个不太能量化的东西。

问题3

股票每天上上下下的,走了一段时间后才能看出趋势,即使是上升趋势,还会下跌个把日子,如何把这个个把日子抹掉,因为只是趋势中的小插曲?

解决思路

针对问题3,做个简单的平均就好。那么具体做几天的平均呢?最近的几天怎么平均?这个放到具体算法里说。
然后回到问题2,找高点低点的问题,假设周一到周三都是下跌的,那么,周一可以算高点,周三算低点。周四周五,下周一也是下跌的,那么,周三算高点,下周一算低点,再链接一下,周一就是高点,下周一就是低点。如果周四是上升的,周五,下周一是下跌的呢?那就要分情况讨论了,如果上升很多,那是属于带跑偏的色彩。周一是高点,周三是低点,然后周四是高点,下周一是低点,一个N型。如果上升不多,在前面做平均的时候,就干掉了,和前面的情况就一致了。
所以总结一下,首先做平均,然后将连续上升和连续下降连在一起。

算法

只输入收盘价格作为参数

均值算法:
先计算差值,判断差值的符号来区分上升与下降
差值取平均,如符号不同,为当前值,与前一个和后一个值的平均。如符号相同值不用变化。

趋势评估:
用均值算法算多次平均
只取均值算法输出的数字的符号

说明:均值算法多次平均的问题是为了让这个均值更平滑。但后遗症是造成计算某一天的值时需要更多的原始数据的参与。
默认建议是使用3天的数做平均。综合比较了许多,这样的数据和MACD给出的上升下降非常的接近。

代码

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import numpy as np
import pandas as pd
import copy
from datetime import datetime,date,timedelta
import jqdata
import talib

#计算趋势线模块
pd.set_option('display.max_row',1000)
pd.set_option('display.max_columns',1000)

def mean_filter2(df, step=1):
sum_s = 0
temp=copy.deepcopy(df)
for s in range(step):
temp.insert(0,df[0])
for s in range(len(temp)-step,len(temp)):
temp.append(df[len(df)-1])
data = range(len(temp))
for k in range(step,len(temp)-step):
sum_x=0.0
for x in range(-1*step,1*step+1):
sum_x += temp[k+x]
if np.sign(sum_x)==np.sign(temp[k]):
data[k-step+1]=temp[k]
else:
data[k-step+1]=sum_x / (step*2+1)

ret = data[1+step:len(df)+1]
for s in range(step):
ret.insert(0,np.nan)
return ret


def get_trade_point(sc=None,end_date=None,start_date=None,count=0,avg_date=3,avg_count=2,df =None):
if not df is None:
dm = df
elif count==0:
df=get_price(frequency='daily',fields=['open','close','volume'], security=sc, skip_paused=False, fq='pre',start_date=start_date,end_date=end_date)
else:
df=get_price(frequency='daily',fields=['open','close','volume'], security=sc, skip_paused=False, fq='pre',count=count,end_date=end_date)

diff = (df-df.shift(1)).dropna() #shift起平移作用

dc = diff[['close']]
data = list(dc['close'])
if avg_count==2:
data2 = mean_filter2(data,avg_date)
# 去毛刺采用前后3天的平均数,共7日平均
data3 = mean_filter2(data2,avg_date)
else:
data3 = mean_filter2(data,avg_date)

dc = dc.assign(close3=data3)
dm = dc['close3']
trend = np.sign(dm);
dm = (np.sign(dm*dm.shift(1)).fillna(1))
#print dm
#dm将转向点区分成上升还是下降
for index, row in dc.iterrows():
if dm[index]==-1 and row['close3']>0:
dm[index]=1
elif dm[index]==-1 and row['close3']<0:
dm[index]=-1
else:
dm[index]=0
dm.iloc[0:7]=0
dc['close_origin']=df['close']
dc['point']=dm
dc['trend']=trend
dr=dc[['close_origin','point','trend','close3']]
return dr

df=get_price(security='000300.XSHG',end_date='2019-2-1',count=50,frequency='daily',fields=['close','high','low'], skip_paused=False, fq='pre')
df=df.dropna()
trend = get_trade_point(df=df,avg_date=3,avg_count=2)
trend

以上代码是聚宽平台相关,有兴趣可以注册帐号后,在研究环境里直接运行代码。

以下是沪深300指数从2018年11月23日到2019年初的计算结果。

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
date	close_origin	point	trend	close3
2018-11-23 3143.48 0.0 NaN NaN
2018-11-26 3141.24 0.0 NaN NaN
2018-11-27 3137.24 0.0 NaN NaN
2018-11-28 3178.93 0.0 NaN NaN
2018-11-29 3137.65 0.0 NaN NaN
2018-11-30 3172.69 0.0 NaN NaN
2018-12-03 3260.95 0.0 1.0 88.260000
2018-12-04 3267.71 0.0 1.0 6.760000
2018-12-05 3252.00 0.0 1.0 1.015714
2018-12-06 3181.67 -1.0 -1.0 -70.330000
2018-12-07 3181.56 0.0 -1.0 -0.110000
2018-12-10 3144.76 0.0 -1.0 -36.800000
2018-12-11 3159.82 0.0 -1.0 -12.298571
2018-12-12 3170.61 0.0 -1.0 -2.924286
2018-12-13 3219.69 0.0 -1.0 -7.590000
2018-12-14 3165.91 0.0 -1.0 -53.780000
2018-12-17 3161.20 0.0 -1.0 -4.710000
2018-12-18 3128.43 0.0 -1.0 -32.770000
2018-12-19 3091.13 0.0 -1.0 -37.300000
2018-12-20 3067.42 0.0 -1.0 -23.710000
2018-12-21 3029.40 0.0 -1.0 -38.020000
2018-12-24 3038.20 0.0 -1.0 -19.702857
2018-12-25 3017.28 0.0 -1.0 -20.920000
2018-12-26 3002.03 0.0 -1.0 -15.250000
2018-12-27 2990.51 0.0 -1.0 -11.520000
2018-12-28 3010.65 1.0 1.0 4.974286
2019-01-02 2969.54 0.0 1.0 5.288571
2019-01-03 2964.84 0.0 1.0 6.524286
2019-01-04 3035.87 0.0 1.0 71.030000
2019-01-07 3054.30 0.0 1.0 18.430000
2019-01-08 3047.70 0.0 1.0 17.891429
2019-01-09 3078.48 0.0 1.0 30.780000
2019-01-10 3072.69 0.0 1.0 13.160000
2019-01-11 3094.78 0.0 1.0 22.090000
2019-01-14 3067.78 0.0 1.0 9.102857
2019-01-15 3127.99 0.0 1.0 60.210000
2019-01-16 3128.65 0.0 1.0 0.660000
2019-01-17 3111.42 0.0 1.0 6.934286
2019-01-18 3168.17 0.0 1.0 56.750000
2019-01-21 3185.64 0.0 1.0 17.470000
2019-01-22 3143.32 0.0 1.0 7.974286
2019-01-23 3141.05 0.0 1.0 10.337143
2019-01-24 3158.78 0.0 1.0 17.730000
2019-01-25 3184.47 0.0 1.0 10.186939
2019-01-28 3183.78 0.0 1.0 8.330000
2019-01-29 3193.97 0.0 1.0 10.190000
2019-01-30 3168.48 0.0 1.0 19.198571
2019-01-31 3201.63 0.0 1.0 33.150000
2019-02-01 3247.40 0.0 1.0 45.770000

在11月28日给出了上升信号,说明从那天之前,趋势向下,之后趋势基本是向上的。
如果哪个指标能在11月28日那几天及时的给出买入信号,2019年1月底,整整有200多点的收益啊。

指标的问题

引入了未来函数,即在算平均的时候,最新的两个值是估算的,如果未来走势不是这个数值,会影响到前面几天指标的数值,也就是未来影响了过去。这个问题也就说明,我们的这个技术指标是不太可能用在估算最新的股票走势上的,股票走势只有过去很多天之后,算出来的指标才是准的。
例如上面列举的这个信号,其实并不是12-28日直接算出来的。而是几天以后,到了1-4日才算出来的。这之后,12-28日的这个指标就不再变化了。

新指标的意义

即使不能用做估算明天的走势,但对于之前的走势分析很有好处。可以用上升下降趋势来判断其他技术指标给的买入卖出信号的正确性。

下面是趋势信号与MACD交叉信号的对比。趋势信号给出的买入卖出趋势是第四列的值,macd交叉给出的信号是最后一列。-1表示卖出或下降信号,1表示买入或上升信号。

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
data	close_origin	point	trend	MACD	MACDsignal	MACDhist	macd_cross
2018-09-03 3321.82 0.0 -1.0 -34.376068 -49.849757 15.473689 1.0
2018-09-04 3363.90 0.0 -1.0 -30.449119 -45.969629 15.520510 0.0
2018-09-05 3298.14 0.0 -1.0 -32.271263 -43.229956 10.958693 0.0
2018-09-06 3262.88 0.0 -1.0 -36.143869 -41.812739 5.668870 0.0
2018-09-07 3277.64 0.0 -1.0 -37.588629 -40.967917 3.379287 0.0
2018-09-10 3230.07 0.0 -1.0 -42.086962 -41.191726 -0.895236 -1.0
2018-09-11 3224.21 0.0 -1.0 -45.599138 -42.073208 -3.525929 0.0
2018-09-12 3202.02 0.0 -1.0 -49.601336 -43.578834 -6.022502 0.0
2018-09-13 3236.57 1.0 1.0 -49.415579 -44.746183 -4.669396 0.0
2018-09-14 3242.09 0.0 1.0 -48.266561 -45.450258 -2.816302 0.0
2018-09-17 3204.92 0.0 1.0 -49.781414 -46.316490 -3.464925 0.0
2018-09-18 3269.43 0.0 1.0 -45.254859 -46.104163 0.849304 1.0
2018-09-19 3312.48 0.0 1.0 -37.758500 -44.435031 6.676531 0.0
2018-09-20 3310.13 0.0 1.0 -31.642452 -41.876515 10.234063 0.0
2018-09-21 3410.49 0.0 1.0 -18.484153 -37.198042 18.713890 0.0
2018-09-25 3379.80 0.0 1.0 -10.412504 -31.840935 21.428431 0.0
2018-09-26 3417.24 -1.0 -1.0 -0.983234 -25.669395 24.686160 0.0
2018-09-27 3403.59 0.0 -1.0 5.326686 -19.470178 24.796864 0.0
2018-09-28 3438.86 0.0 -1.0 13.023214 -12.971500 25.994714 0.0
2018-10-08 3290.90 0.0 -1.0 7.101768 -8.956846 16.058614 0.0
2018-10-09 3288.69 0.0 -1.0 2.205230 -6.724431 8.929661 0.0
2018-10-10 3281.60 0.0 -1.0 -2.221804 -5.823906 3.602102 0.0
2018-10-11 3124.11 0.0 -1.0 -18.228263 -8.304777 -9.923486 -1.0
2018-10-12 3170.73 0.0 -1.0 -26.842232 -12.012268 -14.829964 0.0
2018-10-15 3126.45 0.0 -1.0 -36.817481 -16.973311 -19.844171 0.0
2018-10-16 3100.97 0.0 -1.0 -46.245868 -22.827822 -23.418046 0.0
2018-10-17 3118.25 1.0 1.0 -51.727301 -28.607718 -23.119583 0.0
2018-10-18 3044.39 0.0 1.0 -61.324351 -35.151045 -26.173307 0.0
2018-10-19 3134.95 0.0 1.0 -60.920395 -40.304915 -20.615481 0.0
2018-10-22 3270.27 0.0 1.0 -49.114898 -42.066911 -7.047987 0.0
2018-10-23 3183.43 0.0 1.0 -46.233271 -42.900183 -3.333088 0.0
2018-10-24 3188.20 0.0 1.0 -43.068198 -42.933786 -0.134412 0.0
2018-10-25 3194.31 0.0 1.0 -39.610227 -42.269074 2.658848 1.0
2018-10-26 3173.64 -1.0 -1.0 -38.098480 -41.434955 3.336475 0.0
2018-10-29 3076.89 0.0 -1.0 -44.197841 -41.987533 -2.210309 -1.0
2018-10-30 3110.26 1.0 1.0 -45.810870 -42.752200 -3.058670 0.0
2018-10-31 3153.82 0.0 1.0 -43.077706 -42.817301 -0.260404 0.0
2018-11-01 3177.03 0.0 1.0 -38.593914 -41.972624 3.378710 1.0
2018-11-02 3290.25 0.0 1.0 -25.609360 -38.699971 13.090611 0.0
2018-11-05 3262.84 0.0 1.0 -17.330984 -34.426174 17.095189 0.0
2018-11-06 3243.15 0.0 1.0 -12.218286 -29.984596 17.766310 0.0
2018-11-07 3221.91 0.0 1.0 -9.767729 -25.941223 16.173493 0.0
2018-11-08 3212.77 -1.0 -1.0 -8.465582 -22.446094 13.980513 0.0
2018-11-09 3167.44 0.0 -1.0 -10.964975 -20.149871 9.184896 0.0
2018-11-12 3205.14 1.0 1.0 -9.790825 -18.078061 8.287237 0.0
2018-11-13 3237.38 0.0 1.0 -6.187478 -15.699945 9.512467 0.0
2018-11-14 3204.94 0.0 1.0 -5.881637 -13.736283 7.854646 0.0
2018-11-15 3242.37 0.0 1.0 -2.589122 -11.506851 8.917729 0.0
2018-11-16 3257.67 0.0 1.0 1.240503 -8.957380 10.197883 0.0
2018-11-19 3294.60 -1.0 -1.0 7.172767 -5.731351 12.904118 0.0
2018-11-20 3218.41 0.0 -1.0 5.660976 -3.452885 9.113862 0.0
2018-11-21 3226.49 0.0 -1.0 5.056571 -1.750994 6.807565 0.0
2018-11-22 3214.43 0.0 -1.0 3.563358 -0.688124 4.251482 0.0
2018-11-23 3143.48 0.0 -1.0 -3.306975 -1.211894 -2.095081 -1.0
2018-11-26 3141.24 0.0 -1.0 -8.830718 -2.735659 -6.095059 0.0
2018-11-27 3137.24 1.0 1.0 -13.376890 -4.863905 -8.512985 0.0
2018-11-28 3178.93 0.0 1.0 -13.460565 -6.583237 -6.877328 0.0
2018-11-29 3137.65 0.0 1.0 -16.665717 -8.599733 -8.065984 0.0
2018-11-30 3172.69 0.0 1.0 -16.191739 -10.118134 -6.073605 0.0
2018-12-03 3260.95 0.0 1.0 -8.595184 -9.813544 1.218360 1.0
2018-12-04 3267.71 0.0 1.0 -2.006257 -8.252087 6.245830 0.0
2018-12-05 3252.00 0.0 1.0 1.925652 -6.216539 8.142191 0.0
2018-12-06 3181.67 -1.0 -1.0 -0.626108 -5.098453 4.472345 0.0
2018-12-07 3181.56 0.0 -1.0 -2.626990 -4.604160 1.977170 0.0
2018-12-10 3144.76 0.0 -1.0 -7.100308 -5.103390 -1.996918 -1.0
2018-12-11 3159.82 0.0 -1.0 -9.322762 -5.947264 -3.375497 0.0
2018-12-12 3170.61 0.0 -1.0 -10.097017 -6.777215 -3.319802 0.0
2018-12-13 3219.69 0.0 -1.0 -6.673348 -6.756441 0.083093 1.0
2018-12-14 3165.91 0.0 -1.0 -8.205079 -7.046169 -1.158910 -1.0
2018-12-17 3161.20 0.0 -1.0 -9.687375 -7.574410 -2.112965 0.0
2018-12-18 3128.43 0.0 -1.0 -13.352451 -8.730018 -4.622433 0.0
2018-12-19 3091.13 0.0 -1.0 -19.047283 -10.793471 -8.253812 0.0
2018-12-20 3067.42 0.0 -1.0 -25.183380 -13.671453 -11.511927 0.0
2018-12-21 3029.40 0.0 -1.0 -32.736807 -17.484524 -15.252283 0.0
2018-12-24 3038.20 0.0 -1.0 -37.579671 -21.503553 -16.076118 0.0
2018-12-25 3017.28 0.0 -1.0 -42.614511 -25.725745 -16.888766 0.0
2018-12-26 3002.03 0.0 -1.0 -47.290075 -30.038611 -17.251464 0.0
2018-12-27 2990.51 0.0 -1.0 -51.333323 -34.297553 -17.035769 0.0
2018-12-28 3010.65 1.0 1.0 -52.309504 -37.899943 -14.409561 0.0
2019-01-02 2969.54 0.0 1.0 -55.757629 -41.471481 -14.286149 0.0
2019-01-03 2964.84 0.0 1.0 -58.198666 -44.816918 -13.381748 0.0
2019-01-04 3035.87 0.0 1.0 -53.781716 -46.609877 -7.171838 0.0
2019-01-07 3054.30 0.0 1.0 -48.238046 -46.935511 -1.302535 0.0
2019-01-08 3047.70 0.0 1.0 -43.871489 -46.322707 2.451218 1.0
2019-01-09 3078.48 0.0 1.0 -37.495053 -44.557176 7.062123 0.0
2019-01-10 3072.69 0.0 1.0 -32.533856 -42.152512 9.618656 0.0
2019-01-11 3094.78 0.0 1.0 -26.513956 -39.024801 12.510844 0.0
2019-01-14 3067.78 0.0 1.0 -23.649204 -35.949681 12.300477 0.0
2019-01-15 3127.99 0.0 1.0 -16.332156 -32.026176 15.694020 0.0
2019-01-16 3128.65 0.0 1.0 -10.360656 -27.693072 17.332416 0.0
2019-01-17 3111.42 0.0 1.0 -6.938532 -23.542164 16.603632 0.0
2019-01-18 3168.17 0.0 1.0 0.348756 -18.763980 19.112736 0.0
2019-01-21 3185.64 0.0 1.0 7.447813 -13.521622 20.969435 0.0
2019-01-22 3143.32 0.0 1.0 9.548923 -8.907513 18.456436 0.0
2019-01-23 3141.05 0.0 1.0 10.905189 -4.944972 15.850162 0.0
2019-01-24 3158.78 0.0 1.0 13.257874 -1.304403 14.562277 0.0
2019-01-25 3184.47 0.0 1.0 16.999404 2.356358 14.643046 0.0
2019-01-28 3183.78 0.0 1.0 19.682034 5.821493 13.860540 0.0
2019-01-29 3193.97 0.0 1.0 22.372390 9.131673 13.240717 0.0
2019-01-30 3168.48 0.0 1.0 22.191873 11.743713 10.448160 0.0
2019-01-31 3201.63 0.0 1.0 24.441987 14.283368 10.158620 0.0
2019-02-01 3247.40 0.0 1.0 29.577525 17.342199 12.235326 0.0
2019-02-11 3306.47 0.0 1.0 37.976165 21.468992 16.507172 0.0
2019-02-12 3330.34 0.0 1.0 46.027679 26.380729 19.646949 0.0
2019-02-13 3397.03 0.0 1.0 57.131313 32.530846 24.600467 0.0
2019-02-14 3402.14 0.0 1.0 65.587307 39.142138 26.445169 0.0
2019-02-15 3338.70 0.0 1.0 66.404200 44.594551 21.809649 0.0
2019-02-18 3445.74 0.0 1.0 74.826276 50.640896 24.185380 0.0
2019-02-19 3439.61 0.0 1.0 80.083045 56.529326 23.553719 0.0
2019-02-20 3451.93 0.0 1.0 84.271760 62.077812 22.193948 0.0
2019-02-21 3442.71 0.0 1.0 85.857657 66.833781 19.023876 0.0
2019-02-22 3520.12 0.0 1.0 92.296891 71.926403 20.370487 0.0
2019-02-25 3729.48 0.0 1.0 112.991140 80.139351 32.851790 0.0
2019-02-26 3684.69 0.0 1.0 124.343944 88.980269 35.363675 0.0
2019-02-27 3678.39 0.0 1.0 131.319002 97.448016 33.870986 0.0
2019-02-28 3669.37 0.0 1.0 134.567734 104.871959 29.695774 0.0
2019-03-01 3749.71 0.0 1.0 141.988390 112.295246 29.693144 0.0

macd一共给出了13次信号,如果每次按照macd的信号来买入卖出,很简单的看一下第二列指数的数值,你就会发现,每次都失败。(有兴趣的朋友可以打开股票软件来数金叉死叉对比)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
	close_origin	point	trend	MACD	MACDsignal	MACDhist	macd_cross
2018-09-03 3321.82 0.0 -1.0 -34.376068 -49.849757 15.473689 1.0
2018-09-10 3230.07 0.0 -1.0 -42.086962 -41.191726 -0.895236 -1.0
2018-09-18 3269.43 0.0 1.0 -45.254859 -46.104163 0.849304 1.0
2018-10-11 3124.11 0.0 -1.0 -18.228263 -8.304777 -9.923486 -1.0
2018-10-25 3194.31 0.0 1.0 -39.610227 -42.269074 2.658848 1.0
2018-10-29 3076.89 0.0 -1.0 -44.197841 -41.987533 -2.210309 -1.0
2018-11-01 3177.03 0.0 1.0 -38.593914 -41.972624 3.378710 1.0
2018-11-23 3143.48 0.0 -1.0 -3.306975 -1.211894 -2.095081 -1.0
2018-12-03 3260.95 0.0 1.0 -8.595184 -9.813544 1.218360 1.0
2018-12-10 3144.76 0.0 -1.0 -7.100308 -5.103390 -1.996918 -1.0
2018-12-13 3219.69 0.0 -1.0 -6.673348 -6.756441 0.083093 1.0
2018-12-14 3165.91 0.0 -1.0 -8.205079 -7.046169 -1.158910 -1.0
2019-01-08 3047.70 0.0 1.0 -43.871489 -46.322707 2.451218 1.0

趋势指标一共给出了11次信号,基本上都是准确的找到了高点和低点。如果刚巧是那个时点买入卖出,每次都没有错哦。(这是事后诸葛亮,因为引入了未来值的原因)

1
2
3
4
5
6
7
8
9
10
11
12
date	close_origin	point	trend	MACD	MACDsignal	MACDhist	macd_cross
2018-09-13 3236.57 1.0 1.0 -49.415579 -44.746183 -4.669396 0.0
2018-09-26 3417.24 -1.0 -1.0 -0.983234 -25.669395 24.686160 0.0
2018-10-17 3118.25 1.0 1.0 -51.727301 -28.607718 -23.119583 0.0
2018-10-26 3173.64 -1.0 -1.0 -38.098480 -41.434955 3.336475 0.0
2018-10-30 3110.26 1.0 1.0 -45.810870 -42.752200 -3.058670 0.0
2018-11-08 3212.77 -1.0 -1.0 -8.465582 -22.446094 13.980513 0.0
2018-11-12 3205.14 1.0 1.0 -9.790825 -18.078061 8.287237 0.0
2018-11-19 3294.60 -1.0 -1.0 7.172767 -5.731351 12.904118 0.0
2018-11-27 3137.24 1.0 1.0 -13.376890 -4.863905 -8.512985 0.0
2018-12-06 3181.67 -1.0 -1.0 -0.626108 -5.098453 4.472345 0.0
2018-12-28 3010.65 1.0 1.0 -52.309504 -37.899943 -14.409561 0.0

再对比MACD,和趋势指标给信号的时间上的对应关系。例如,大约在1-4日时,趋势指标就给出了,12-28日的上升信号,MACD给这个信号的时间是1-8日,晚了2个交易日。可以发现,趋势指标稳定给出信号的时间,一般早于或等于macd给出信号的时间。也就是说,如果不是未来值的问题,趋势指标有一定的参考价值,毕竟macd太慢了。

同样的对比KDJ的指标,数值就不列了,会发现趋势指标给信号的次数大大的减少(不考虑最新的一两日的信号反复变化),趋势指标和MACD一样,信号的质量比较高。

这个趋势指标也对比过其他一些股票软件上的多空趋势等等,很接近,但略有不同。

小结

这个趋势指标只是一个小小的尝试,在研究量化道路上的一个简单的工具。目前还没有将它直接用于实战的方案,只用做评估其他指标有效性。欢迎来讨论来改进它的方法。


打赏 支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者