成熟指标库源网站

这套指标库原来是为外汇服务的,现在也应用于各大领域,我们常见的kdj,boll带等等这里面都有。之前学量化时想着先把这些指标过一下的,法这量化入门需要学习的东西太多了,这个也有点忽略了,现在补上,每天一个。

2018.3.10 ABI

回头来看这个指标,其实在分析股市或者股市中的板块时是会有效的,所以重新加入到列表

ABI = |Advancing Issues - Declining issues|

策略:板块或者指数分析。

2017.12.11 ASI,SI

ASI图示

ASI就是SI累加(cumsum),主要是用最近几天的最高价,最低价,收盘价等等元素。

  • SI 上穿0买入,下穿0卖出(用得少),见后面的(Swing Index),在0上下震荡的震荡型指标
  • ASI si.cumsum(), 比close更拼接真实价格,来判断真假期阻力位和支撑位的,如果价格已经突破,但ASI没有突破就是假的。

策略:支撑位和阻力位的突破真假判断?

2017.12.12 A/D,OBV

说实话,光看指标还是显得比较抽象

  • OBV 只与成交量相关,主要看是否与股价背离,相当于就是成交量是否跟得上
  • A/D 价格和成交量的关系,和OBV用法类似,主要看背离

A/D公式

A/D 其实不是在OBV的Volume上加了个系数,而OBV的CLV不是1就是-1,在A/D里面1的情况是实体阳线,-1是实体阴线,否则就是1和-1之间。

CLV = ((CLOSE(i) - LOW(i)) - (HIGH(i) - CLOSE(i))) / (HIGH(i) - LOW(i))

A/D(i) = CLV * VOLUME(i) + A/D(i-1)

Where:

A/D(i)  value of the Accumulation/Distribution indicator for the current bar;
CLOSE(i)  close price of the bar;
LOW(i)  the lowest price of the bar;
HIGH(i)  the highest price of the bar;
VOLUME(i)  volume;
A/D(i-1)  value of the Accumulation/Distribution indicator for the previous bar.

策略:可以根据背离来写这两个指标的策略,对突破方向的确认(突破型策略)

2017.12.13 A/D Line, A/D Line (Breadth),A/D Ratio,Advancing-Declining Issues

  • A/D Line 一定周期内上涨的股票数量减去下跌的股票数量加上前一交易日的A/D Line值,表明市场强弱,在国内估计用在股票市场更好,期货市场不太实用
  • A/D Line (Breadth) 一定周期内上涨的股票数量除以上涨加下跌的股票数量
  • A/D Ratio 一定周期内上涨的股票数量除以下跌的股票数量
  • Advancing-Declining Issues 一定周期内上涨的股票数量减去下跌的股票数量

策略:全品种的数据进行计算,在国内市场做单一板块的分析应该可以,某一板块内,某几个涨了,分权重,找一个没怎么涨的买,做套利

2017.12.14 alligator

鳄鱼指标,设计给外汇使用,传说外汇市场中30%的时间才是波动比较大的,该指标就是为了捕捉这30%的时间。详细算法请点击

主要是3根均线的组合,但是这3根均线(用的中间价,非close)都做了往未来的平移。3根线纠缠在一块儿的时候没有方向,震荡,3条线分开,可以看做张嘴,比较活跃。

2018.3.14 其实现在回过头来想短周期波动上升上穿或者下穿长周期均线,和波动率分析类似,如果实际周波动率大于实际天波动率换算出来的周波动率,说明是有趋势存在的。道理是一样的,因为长周期的均线对短期的波动率上升不敏感,所以会相对接近于换算出来的波动率一样,而短期均线更贴近实际波动率。哈哈,搞了这么久回过头来妈蛋的核心就是均线。

策略:我也不知道怎么应用,识别大趋势用吧。能用做趋势和单边行情的判断吗?这样可以给趋势跟踪策略加一个过滤器,提高胜率。能否过滤出震荡行情做回归?不知道,可以试试

2017.12.15 alpha, Alpha Jensen

  • alpha 其实也不叫啥指标啦,就是量化里面常说的alpha,以股票为例,alpha为正表明跑赢了大盘,相反跑输大盘就是alpha为负,其中大盘指数就是benchmark
  • Alpha Jensen 大体意思就和alpha一样,细节不太了解,不熟,和alpha的计算公式不一样

上面两个指标都是反应一个投资组合的收益情况,很少用做策略,更多用做事后的评判

2017.12.16 Andrews Pitchfork

安德鲁音叉(中文解释)

这是需要手工绘制的3根线,很难做量化,目测实用性不强

2017.12.18 TRIN

不知道怎么翻译,下面是计算公式,由于成交量是分母,所以如果数值越大说明成交量没根上,就是超买。作者建议是TRIN的10日均线,大于1.2超买,小于0.7超卖。

TRIN = (The number of advancing stocks/The number of declining stocks)/(The composite volume of advancing stocks/The composite volume of declining stocks)

策略:这是一个市场的综合指数,做板块的总体分析可以试试

2017.12.18 Aroon index,Aroon Oscillator

阿隆指标,看过它的计算公式发现竟然是按最高价或者最低价后的天数来统计的,我也是醉了,不知道有没有统计学上的意义。用法是有个30和70的临界值,大于70表示哪一方的趋势很强,小于30则弱。我觉得吧,用Aroon Oscilloator是不是会好一点。

通常会建议用25做为计算周期。

 Aroon(上升)=[(计算期天数-最高价后的天数)/计算期天数]*100
 Aroon(下降)=[(计算期天数-最低价后的天数)/计算期天数]*100
 Aroon Oscillator = Aroon(上升) - Aroon(下降)

策略:从用法上来讲很简单,判断现有的趋势,我个人不是很看好这个指标,统计的有点怪。

2017.12.19 ADX, ADXR

通过价格数据算出,里面用到了TR(True Range),通达信有该指标,可惜TB没有,写一个应该不难。

这个里面用到了TR,是波动,所以这个指标值可与价格的高低没有直接关系,只是说值越大,趋势越强,值越小,趋势越小

作者建议可以过滤趋势,判断什么时候用趋势策略,什么时候用回归策略,ADX大于25是趋势,小于20是回归,

公式详解 "ADX/DMI enthusiasts can click here to download"

(HLC,p[HLC]) ->(TR1,+DM1,-DM1)-sum->(TR14,+DM14,-DM14)->
(+DI14,-DI14)->(DI14 diff, DI14 sum)->DX-ma->ADX
ADXR = (ADX + ADX N periods ago) / 2

两种用法: - ADX或者ADXR,ADXR是ADX和m天前ADR值的平滑,在20(ADRX25)或者其他值之上趋势启动,40之上算是比较强的趋势,数值下降时和RSI或者一些动量指标进行结合 - (+)PDI,(-)MDI 分别表明正向和负向趋势,交叉表明买卖点,不过这个用法真正在震荡时会反复交叉

策略:ADX或者ADXR判断是否能做趋势跟踪,ADX和ADXR与方向无关,可以试试看现在是否处于盘整行情,以20或者其他值为限

2017.12.20 ATR

这个可是明星指标,在海龟里面经常提到。计算很简单,TR是当天震荡的最大值(昨天的close参与计算),ATR取了个MA

之所以称为True Range估计就是这个原因,不仅仅是简单的|open - close|。用14天的ATR比较常用,低值价格不会有太大的变化,值比较高时,价格通常会不稳定。弱点在于对于长周期会比较迟缓。

策略:用ATR做移动上损,VNPY的boll策略里面有示例,简单来讲就是回撤的价格是ATR的0点几倍这样。这种用法还真是比较神奇。

2017.12.21 beta, beta2

这是CAPM资产定价模型里面的一个概念,风险系数,一般和alpha结合起来使用。以1.0为限,以上表明收益变化幅度相对于大盘变化越大,反之越小。

beta2做了ma运算。

策略:无法直接应用

2017.12.21 Bollinger Bands,CCT Bollinger Bands Histogram

boll公式详解

  • Boll 最近才知道这是最复杂的计算公式之一,因为用了标准差,标准差用来表明数据离散程度,中轨是移动平均线(M日),上轨和下轨是中轨线加减N倍的标准差,现在为2倍,自己写时可以自定义一下这个N。
  • CCT Boll 只有一条用标准差计算的线,然后用0和100平行线替换了boll的两条线。这个boll线呢就和传统的MACD类似,接近或者低于0就是超卖,接近或者大于100就是超买
src=close
cctbbo=100 * ( src + 2*stdev( src, length) - sma( src, length ) ) / ( 4 * stdev( src, length ) )

标准差是一个很棒的方法,boll带有两种用法,突破任何一条边之后趋势变更强,另一种就是碰到边之后回归

策略:ma(m)+n*stdv(m) 用这个来定义突破 示例策略

2017.12.22 Breadth Thrust Indicator(BTI)

BTI = MA(Up / Up + Down, N)

BTI  = 廣量衝力指標
Up   = 上升股票數量
Down = 下跌股票數量
MA(x, n) = n 天的平均值

建議使用 N = 10 計算 BTI 的平均值

应用于指数,老指标,和A/D Line(Breadth)一模一样,这个指标真没啥意义

2017.12.22 Accumulation and Distribution (A/D)

看了这么久,就是之前提到的那个A/D,重复

2017.12.24 Chaikin Money Flow(CMF)

英英详解(文章最后有和其他指标的结合使用)

C,L,H,Vol参与计算,在+-0.1之间信号不明确,大于0.1做多信号,小于-0.1做空信号。缺失跳空缺口的体现

前半部分和A/D计算是一样的,最后CMF的形成用了20天的平滑

  1. Money Flow Multiplier = [(Close  -  Low) - (High - Close)] /(High - Low)

  2. Money Flow Volume = Money Flow Multiplier x Volume for the Period

  3. 20-period CMF = 20-period Sum of Money Flow Volume / 20 period Sum of Volume

策略:和MACD这种类似,不过没有CCI敏感,从图上来讲比CCI更适用,CCI过于敏感

2017.12.24 Chaikin Oscillator (CHO)

中文详解

这个指标是基于 2017.12.22 (A/D)指标的:

3天A/D line的指数移动平均值-10天A/D line的指数移动平均值

也有成交量参与计算,依赖的是价量同行的原则,所以背离会用的比较顺

策略:趋势强弱,能不能区分 牛,熊,震荡

2017.12.24 Chaikin's Volatility(CHV)

详解

这个指标啊,好吧,我改造后正准备用在我的策略当中,不过要注意哦,这个指标没有考虑跳空的缺口和其他一些因素。

策略:波动率大小非常重要,波动率小时说明市场比较稳定,等待选择方向

2017.12.25 Chande momentum oscillator (CMO)

diff = Pi - Pi-1,
where Pi -the price (usually closing price) of the current period;
Pi-1 -the price (usually closing price) of the previous period;
If diff > 0, then cmo1i = diff, cmo2i = 0.
If diff < 0, then cmo2i = -diff, cmo1i = 0.
sum1 = Sum(cmo1, n) - summary value of cmo1 within n periods.
sum2 = Sum(cmo2, n) - summary value of cmo2 within n periods.
CMO = ((sum1-sum2)/(sum1+sum2)) 100

动量指标但是没有成交量参与运算,主要是靠每天close的差来进行计算,运用方法就是看长期均线和短期均线形成金死叉来进行判断

策略:多空力量吧,现在看来看多空的指标太多了,应该找一个测试方法来看准确度

2017.12.25 Chaos Gator

详解 公式详解

Median Price = (High + Low)/2

Jaw (lower moving average) = Smoothed moving average of the median price over 13-period
Teeth (upper moving average) = Smoothed moving average of median over 8-period
Lips (middle moving average) = Smoothed moving Average of the median over 5-period

Top bar = Jaw – Teeth
Bottom bar = – (Absolute value of (Teeth – Lips))

中间价(High+Low/2)的移动平均线,再平移,参考(2017.12.14 alligator),可以一起使用

2017.12.26 CCI

记住这个公式

这个可是现在的明星策略,有H,L,C参与计算,虽然还是没有把跳空考虑进去。在这篇文章里面算讲得非常详细了,算法不贴出来,网上到处都是,但是里面讲了一个很重要的东西就是CCI的参数尽量以一个周期的1/3来进行取值最好,周期是指上一个低点到现在这个低点的距离,这点非常重要。这样还引申出来了一个东西就是怎么计算一个上涨一下跌周期?

其他的用法就是:

  • 如果快速突破100则买入,回到100时空仓。反之亦然。
  • 20~30买入,80~90卖出
  • 在100以上再回穿100时卖出,反之亦然。
  • 背离和100以上超买,-100以下超卖

缺点:在具有周期性特点的市场里面才能用

策略:来判断市场强弱,不过从实际情况来看,在短周期来看有点太敏感

2017.12.26 Commodity Selection Index (CSI)

详解

另外一个详解

为短线交易而生,动量型指标,一根线,数值越高,趋势越强。用到了ATR,DMI里面的ADXR指标,参考(2017.12.19 ADX, ADXR)

CSI = ( ADXR x ATR14 ) x ( ( V / √M ) x ( 1 / ( 150 + C ) ) ) x 100

V 一跳的价格
M 美元形式的保证金,应该就是指Close Price乘以保证金率
C 手续费

策略:可以先实现再说

2017.12.27 Correlation Analysis

相关性分析,刚好我在看基础统计学看到了这里,0.7以下为弱相关,0.7以上为强相关,因为都是往右走,所以不存丰负相关。这个确实很重要。

策略:套利股票相对于大盘的异动需要关注。

2017.12.27 CP Volumentum Trend

研发所基于的理论是当市场发生转变时总是伴随着很大的成交量,这个指标非常难找,也没有相关的资料,我找到几个相关的公式

  • volumentum-weekly
[Price (End of this week) - Price (End of last week)]*[Avg Week Volume / Avg 6 Mo Volume]
  • volumentum-monthly
[Price (End of this month) - Price (End of last month)]*[Avg Monthly Volume / Avg 12 Mo Volume]

策略:先不做评论,后面可以开发出来试一下

2017.12.28 Cumulative Volume Index (CVI)

英文详解

成交量计算的指标,类似OBV,但又不一样,OBV计算的向上成交量是上涨就是向上的成交量,下跌就是下跌的成交量,用于个股,而CVI适用于指数,所有的股票。

CVI[0] = CVI[1] + Advancing Volume - Declining Volume

where:
  CVI[0] is today's Cumulative Volume Index
  CVI[1] is yesterday's Cumulative Volume Index
  Advancing Volume is the total volume of all advancing stocks on the NYSE
  Declining Volume is the total volume of all declining stocks on the NYSE

策略:后面用到市场型策略时可以做趋势分析的辅助

2017.12.28 Cutler's RSI

是RSI的另外一个版本(wiki详解),把计算U和D的移动平均的方式变更了,RSI是指数平均(SMMA),而Cutler是SMA

和RSI的区别

其实差别也不大,用法的话看标准RSI的用法吧

2017.12.29 DeMarker(DeM)

DeMarker的指标可不仅仅这个,DeMarker指标是一个体系。该指标只用了今和昨的L,H进行计算,是0~1区间的单一指标,0.3和0.7表明超卖和超买。

策略:不能判断趋势,做回归?

2017.12.29 Detrended Price Oscillator (DPO)

英英详解

另一种形式的均线,去趋势指标,不能表现趋势,只能表现超买或者超卖,超买超卖线得自己定,计算方法

DPO=MA(N)-MA(N÷2+1)

策略:试一下回归

2017.12.30 DMI

DMI里面有两条线,DMI+和DMI-,DMI+测量向上运动的动能的,DMI-测量向下运动的动能。DMI+和DMI-就是ADX计算公式里面的+DI14, -DI14

PDI(DMI+)下穿MDI(DMI-)时为一个极点,再上穿时为交易点。一般adx和adxr组合使用,DMI+和DMI-组合使用。

参见 2017.12.19 ADX, ADXR

2017.12.30 Disparity Index

英英解释

[ C - Mov(C,X,MA ) ] / [ Mov(C,X,MA) * 100 ]

// Where X is the number of time periods
// MA is the calculation type of the moving average.

这个指标没有任何解释,看这个计算公式其实就是表明相对于均价的偏离程度,偏离程度的话是不是用标准差会更好

策略:看起来回归倒是不错,以0为回归线

2017.12.31 Displaced Moving Average

中文详解

确实就是把均线向后平移,这样可以减少噪音的干扰,还记得alligator指标吗?用到了这个指标

策略:如果确实趋势之后应该还是不错的

2017.12.31 Double Exponential Moving Average (DEMA)

另外一种均线形式,计算公式如下:

(2 * n-day EMA) - (n-day EMA of EMA)

2017.12.31 Dynamic Momentum Index(DMI)

英文详解

这个和之前那个DMI不一样哈,非常像RSI,动量指标,比RSI更敏感。RSI是计算的14天中的上升和下跌的价格统计,而DMI则是动态计算这个天数,这个(VIP)动态计算的方法很重要

  1. Calculate the Standard Deviation for a chosen time period (reccomendation is 5 days)
  2. The result is smoothed using a moving average (reccomended is 10 days smoothing)
  3. Standard Deviation is divided by its smoothed version. So we get the V value.
  4. Number 14 is divided by the V value and the number is rounded down to the nearest integer. This is called a T value. It should be between 5-30 days. Should it exceed the maximal value, we should adjust the calculation so it wouldn't take into consideration any higher values. This days we get are used next to calculate the RSI indicator.
  5. Now we can calculate the RSI values for every single day.

2018.1.1 Ease of Movement

这个指标是v和价格一起进行混合运算,这是不太合理的。原有意思是检测成交量能不能根上价格变动的速度的。和 TRIN 出自同一作者。

[ {(H+L)/2} - {(Hp+Lp)/2} ] / [ V/(H-L) ]

策略:该指标的计算方法不太合理,因为价格和成交量的单位是没有任何关系的,直接没经过单位的消除就进行计算肯定是不合理的

2018.1.1 Ehlers' Fisher Transform

英文详细PDF JoinQuant的策略研究

作者统计了价格分布的规律,非正态分布,当然,收益率才是正态分析,算法有点意思(VIP)

这是一个统计学上的东西详见wikiFisher z-transform是对数据近似的变异稳定化处理,z变换后近似服从均值为标准差为的正态分布。假设价格表现为方波,不服从传统的正态分布,所以经过z变换之后就服从近似的正态分布了。

我自己写的一个股价分布测试工具,测试了好几种分布,正常的价格分布,1阶价差分布,简单收益率分布,对数收益率的分布,Fisher转换后的价格分布。

策略:直接可以判断出趋势的拐点,在软件上先试试看。

2018.1.2 Elder Ray index

英文详解

H,L和EMA参与计算,作者测试下来13天移动均线时性能是最好的。

"Bull Power" (Daily High - n period moving average)

"Bear Power" (Daily Low - n period moving average)

策略:该指标暂不考虑进策略

2018.1.2 Elliot Oscillator(艾略特波浪指标)

一套很大的论理系统,波浪理论不太符合现在的交易市场。

2018.1.3 Envelopes Indicator

英文详解

就是移动平均线,往上和往下扩展一个百分比,一般来讲是20天均线,上下各扩展5%

UPPER BAND = SMA (CLOSE, N) * [1 + K / 1000]

LOWER BAND = SMA (CLOSE, N) * [1 - K / 1000]

2018.1.3 Exponential Moving Average (EMA)

指数移动平均,只是一种均线的形式,简约形式可以只需要上一个EMA和今天的Close。

策略:基于一个交易周期是一个月,可以应用一下22日左右的均线,也可以对成交量做EMA。

2018.01.04 Fast Stochastic Oscillator (Fast STO)

英文详解

它基于的理论是,趋势往下时close会无限接近low,往上时会接近high。用法就是判断超买超卖

%K = (Current Close - Lowest Low)/(Highest High - Lowest Low) * 100
%D = 3-day SMA of %K

Fast %K = %K basic calculation
Fast %D = 3-period SMA of Fast %K

/*
Lowest Low = lowest low for the look-back period
Highest High = highest high for the look-back period
%K is multiplied by 100 to move the decimal point two places
*/

策略:是不是可以买时判断是不是处于超卖的阶段,这样的买点成功率会更高,或者直接用超买和超卖的指标进行买卖。

2018.01.04 Force Index (FRC)

中文详解 英文详解

今天昨两天的均线差乘以成交量,单根线,以0为界,买点:当指标值在0以下往上升时买入

FI = ( MA( MATYPE, ApPrice, N, J )  MA( MATYPE, ApPrice, N, J -1 ) ) * VOLUME( J )

Where:

MA- moving average
MATYPE - type of moving average (simple, exponential, smoothed or weighted)
ApPrice - applied price (open, close, high, low, median, typical or weighted)
N -number of intervals used for the moving average
J -current interval

策略:判断趋势

2018.01.05 Forecast Oscillator

英文详解

这个指标是 The Time Series Forecast (TSF) 的扩展,如果当前价在指标值之上说明趋势往上,反之亦然。

//Time Series Forecast:

Time Series Forecast = a + bx

a = (Σy  bΣx) / n

b = ((xy)  (Σx) (Σy)) / (nΣx²  (Σx)²)

......

(Close - Previous Time Series Forecast) * 100 / (Close)

策略:判断趋势

2018.01.05 Four Percent Model

英文详解

指标值涨4%时买入,据说1993年的回报率非常不错。只看一个价格,就是每周的收盘价。

策略:长线指标,而且很扯,不用。

2018.1.6 Full Stochastic Oscillator (Full STO)

fast 和 basic %K 和 %d的计算请参考 Fast Stochastic Oscillator (Fast STO)。basic %k有一个计算周期,slow 是在basic %k基础上做了一个sma,%D是对%k做了一个sma。

Fast Stochastic Oscillator:

Fast %K = %K basic calculation
%K = (Current Close - Lowest Low)/(Highest High - Lowest Low) * 100

Fast %D = 3-period SMA of Fast %K

Slow Stochastic Oscillator:

Slow %K = Fast %K smoothed with 3-period SMA
Slow %D = 3-period SMA of Slow %K

Full Stochastic Oscillator:

Full %K = Fast %K smoothed with X-period SMA
Full %D = X-period SMA of Full %K

用法和fast STO一样,请参考。

2018.1.6 Haurlan Index

超买超卖型大盘指标。用NYSE纽约交易所的上涨股票减去下跌股票数量做为计算的因子,然后短期,中期,长期分别是不同的指数均线,3,20,200。中期是最重要的线

策略:用做市场分析,非个股指标。

2018.1.7 Herrick Payoff Index

中文详解

期货专用指标,用了成交量,价格,持仓量。价格变动是最重要的组成部分,成交量的变化通常领先于价格变化。低于0表示资金流出。

HPI=Ky+(K-Ky) 其中Ky=前一天的HPI
K=[(M-My)*C*V]*[1±(1*2)/G}]
M=平均价:换言之,(最高价+最低价)/2
My=前一天的平均价
C=1美分价格走势的价值(所有交割月份契约都采用相同的常数)
V=成交量
I=今天与前一天的未平仓量差值(取绝对值)
G=在今天或前一天的未平仓量中,取较低者

策略:这个可以先在软件里面写出来试一试。

2018.1.7 Historical (Natenberg) Volatility(历史波动率)

英文详解

历史波动率,非常有用vip。这个和我那个 Chaikin 的波动率还不一样,这个应该只用了close,不是很合理。

Std( Log( C / Ref( C ,-1 ) ) ,10 ) * Sqrt( 365 / 7 )

weekly:

Std( Log( C / Ref( C,-1) ),10 ) * Sqrt( 365 )

策略:结合之前有一个动态计算指标周期的东东一起使用。

2018.1.8 Ichimoku Kinko Hyo (IKH)

中文详解

英文公式

公式

一个日本人30年前写的策略。

一定周期内的最高价和最低价参与计算,有T(红)K(蓝)A(沙褐色)B(蓟色)C(绿色线)

策略:分为双线交叉,和趋势过滤,趋势过滤延迟有点大,双线交叉会靠谱一些。

2018.1.8 Ichimoku Japanese charts

还是讲 IKH的,里面的参数原版是9,26,52,因为当时一个交易周是6天,现在为5天,需要把参数修改为7,22,44。其实很多指标都涉及到了交易周期,还有一个涨跌周期,这两个概念是非常的重要。

2018.1.9 Inertia

代码实现

RVI平滑后的结果,inertia = ema(RVI,n),只有一根线,用到了波动率,STDEV,看到RVI时,再返回过来看看这个指标。

策略:参考RVI Return

2018.1.9 Intraday Momentum (IMI)

公式变种

中文详解

英文详解

等看到RSI时再返回,计算方法有一点类似,重点差别在于RSI是close和昨天close的计算,而IMI是close和open做计算。

If Close price > Open price: Gain = (Close - Open); Loss = 0
If Close price < Open price: Gain = 0; Loss = (Open - Close)
Sum up Gains and Losses for n chosen days ago
IMI = 100 x [Gains / (Gains + Losses)]

策略:用RSI其实更好,计算进了高开和低开的情况。

2018.1.10 Kairi

指标源码

简单的用了close和均线系统,用于超买超卖识别

length=input(14)

ki(src)=> ((src - sma(src, length))/sma(src, length)) * 100

策略:暂无

2018.1.10 Keltner Channel (KC)

指标源码

肯特纳通道,和CCI结合起来使用,和envelope还有boll带都是带,都是均线加减一定的值,envelop是加减固定百分比,boll带是加减标准差,这个是加减atr。

KC Middle = MA(Price, n, Type),
KC Upper = KC Middle + MA(TR, n, Type) * Dev,
KC Lower = KC Middle - MA(TR, n, Type) * Dev,

where
tradingtechnologies
Price – the price in the current period (Close, Open, etc),
TR - True Range
Dev - deviation factor

策略:回归看样子效果还不错,突破结合其他指标adx啥的使用。和StochRSI结合来判断趋势。

2018.1.11 Klinger Histogram and Klinger Oscillator (KO)

源码

动量指标,成交量超大势能越强,反之越弱。在值极大时回调时死叉空,值极小回调时金叉多。

策略:通过值是否大于0和KVO在Trigger之上或之下表示趋势强或弱。

插曲

这几天感冒了,人的精力也是正弦曲线,我曾经想过我是不是可以长期保持一个效率比较高的一个状态,而且保持着还相对稳定的运动状态,最终发现还是不大可能。对于现在来讲,自律很重要。

2018.1.12 Linear Regression Channel

英文详解

线性回归就是一根指定周期内的直线,根据下面的公司,然后channel就是上下加减一个或者两个标准差,形成两条平行线,这样的通道叫线性回归通道,和一般的通道一样,有回归也有趋势的作用。一般的用法是超出轨道进行回归性质的买或者卖。

和boll band的差别在于这个的中心线是线性回归,而boll的中心线的均线。

线性回归公式1

线性回归公式2

linear resgression formula

y = mx +b

slope = m = (nΣ(xy) – (Σx) (Σy))/(nΣx² – (Σx)²)

intercept = b = (Σy – mΣx) / n

2018.1.12 Linear Regression Indicator (LRI)

LRI其实是一条曲线,这里会有一个疑问,线性回归是直线,为什么LRI是曲线,是的,因为某个bar对应的指标值是,该bar和之前19个bar(假如是20周期的LRI)的线性回归直线的终点值。请看详解

用法和均线是一样的,短周期的LRI上穿长周期的LRI做多,反之亦然。用法详解

策略:看示例,均线上穿的效果比价格均线的交易要好,用4均线做振荡和趋势的判断?

2018.1.12 Linear Regression Slope

英英详解

震荡指标,线性回归的斜率(slope),和LRI一样,取最后一个点的值,公式是上上个的公式。

策略:周期越长延迟越大,周期短了,LR回归又没啥意义,而且没有成交量参与有点失真。

2018.1.13 Linear Regression Trendline

这其实就是绘制一条指定周期内的线性回归的直线,人工交易可能参考性会更大。

策略:人工交易会更好

2018.1.13 Linear Regression

讲了一个线性回归的方法,使用最小二乘法,周期越长越有用,谨慎使用,用之前提到的channel会比较靠谱。

2018.1.14 Moving Average Convergence/Divergence (2 lines)

中文详解

wikipadia

MACD,中国人炒股人人都在看。两根均线为根基进行计算。这里面讲的主要是里面的DIF和DEM线。

这两根线就是均线差和对应的ma

策略:背离和趋势

2018.1.14 Moving Average Convergence/Divergence (MACD) Histogram

英英详解

macd有很强的滞后性,所以研发出来了MACD Histogram来提前预判,其实就是macd的柱状图。

DIF: (12-day EMA - 26-day EMA)

Signal Line: 9-day EMA of MACD

MACD Histogram: DIF - Signal Line

策略:以0为基础判断趋势,估计不太靠谱,有一个band会好一些

2018.1.15 Market Facilitation Index (BW MFI)

和成交量结合起来看,如果成交量和指标值一起在增长说明可持续。

[High] - [Low] / Volume

策略:成交量未经标准化和价格一起参与计算是不靠谱的,因为价格和成交量不是一个数量级的。

2018.1.15 Mass Index

英英详解

计算公式

专门开发出来用来判断回归点的,可以判断是否有逆转发生,但是不能判断方向。如果有一个超过27再跌回26.5的突起就表明很可能有逆转。

策略:看图示还蛮准的,可以测试一下这个指标。

2018.1.16 McClellan Oscillator (McClellan Osc)

指数型指标,依据是大量温和上涨的股票是牛市稳定的指标,如果突然大幅度上涨,说明头部已经到来。超买和超卖型指标,用成交量进行计算。

DIF=UPW─DPW
AD=DIF的19天指数平均数。
BD=DIF的39天指数平均数。
MCL=AD-BD

策略:板块趋势判断。

2018.1.16 McClellan Summation

基于McClellan Osc进行计算,以-1300和1600做为底和顶的分割线,

Previous day's Summation Index* + current day McClellan Oscillator

* The very first Summation Index is simply the value of the McClellan Oscillator.

策略:板块回归。

2018.1.17 Median Price

英文详解

就是对高低价做的一个平均,不知道有什么用。

(High + Low ) / 2

策略:是否可以替代一些指标的计算因子。

2018.1.17 Mesa Sine Wave

John Ehler 的相关指标

sine 正弦波指标,用Median Price为输入进行计算,计算方法太复杂,看这里,用法Sine在LeadSine线下为空,上为多。

Inputs: Price((H+L)/2), alpha(.07);

Vars: Smooth(0),Cycle(0),I1(0),Q1(0),I2(0),Q2(0),DeltaPhase(0),MedianDelta(0),MaxAmp(0),AmpFix(0),Re(0),Im(0),DC(0),
alpha1(0),InstPeriod(0),DCPeriod(0),count(0),SmoothCycle(0),RealPart(0),ImagPart(0),DCPhase(0);

Smooth = (Price+2*Price[1]+2*Price[2]+Price[3])/6;
Cycle = (1-.5*alpha)*(1-.5*alpha)*(Smooth-2*Smooth[1]+Smooth[2])+2*(1-alpha)*Cycle[1]-(1-alpha)*(1-alpha)*Cycle[2];
If CurrentBar <7 then Cycle=(Price-2*Price[1]+Price[2])/4;
Q1=(.0962*Cycle+.5769*Cycle[2]-.5769*Cycle[4]-.0962*Cycle[6])*(.5+.08*InstPeriod[1]);
I1 = Cycle[3];
If Q1<>0 and Q1[1]<>0 then DeltaPhase=(I1/Q1-I1[1]/Q1[1])/(1+I1*I1[1]/(Q1*Q1[1]));
If DeltaPhase <0.1 then DeltaPhase=0.1;
If DeltaPhase > 1.1 then DeltaPhase = 1.1;
MedianDelta = Median(DeltaPhase,5);
If MedianDelta =0 then DC=15 else DC=6.28318/MedianDelta+.5;
InstPeriod=.33*DC+.67*InstPeriod[1];
Value1 = .15*InstPeriod+.85*Value1[1];
DCPeriod = IntPortion(Value1);
RealPart = 0;
ImagPart = 0;
For count = 0 To DCPeriod - 1 begin
RealPart = RealPart + Sine(360 * count / DCPeriod) * (Cycle[count]);
ImagPart = ImagPart + Cosine(360 * count / DCPeriod) * (Cycle[count]);
End;
If AbsValue(ImagPart) > 0.001 then DCPhase = Arctangent(RealPart / ImagPart);
If AbsValue(ImagPart) <= 0.001 then DCPhase = 90 * Sign(RealPart);

DCPhase = DCPhase + 90;
If ImagPart < 0 then DCPhase = DCPhase + 180;
If DCPhase > 315 then DCPhase = DCPhase - 360;

Plot1(Sine(DCPhase), "Sine",blue);
Plot2(Sine(DCPhase + 45), "LeadSine",green);

策略:在网上其实有一些人说这个指标很准,下拉用这个指标进行交易,做回归都行。

2018.1.18 Modified Moving Average (MMA)

公式

第一根

f1

后面的

f2

C close price

f 常数,有时会取做1/n,有时会取做0.1

策略: 常规均线用法,后面要比较一下各种ma的在各品种上的差别

2018.1.18 Momentum

动量指标,计算一定时间内价格变动的值。

1. MOMENTUM = CLOSE (i) / CLOSE (i - n) * 100

2. MOMENTUM = CLOSE (i) - CLOSE (i - n)

有两种表达形式,第2种才有可能为负值。

策略: 以0做为趋势的判断。

2018.1.19 Momentum Percent

If you define MOmax the highest absolute value of the momentum, the Momentum Percent % is:

MO%t = MOt / MOmax

策略:方向反转做为买卖信号。

2018.1.19 Money Flow (MF)

Money Flow = (Typical Price) * (Volume)

Where Typical Price is defined as: (High + Low + Close) / 3

这个指标应该是一根载规律曲线,做背离使。

策略:价格直接和成交量进行计算,总不是个好事。

2018.1.19 Money Flow Index (MFI)

英英详解

Money Ratio: Negative Money Flow / Positive Money Flow
Money Flow Index: 100 - 100 / (1+ Money Ratio)

80和20也是基准线,见Money Flow指标

策略:震荡指标,超买卖类型

2018.1.20 Moving Average (MA)

就简单讲了一下,简单,指数移动均线。

2018.1.20 Moving Average Convergence/Divergence (MACD)

MACD指标,上面好象提到过。

MACD = MA(P, nlong) - MA(P, nshort),

MACD Signal = MA(MACD, n),

where MA(P, nlong) - moving average of the price P within nlong periods (usually 26),

MA(P, nshort) - moving average of the price P within nshort periods (usually 12),

MA(MACD, n) - moving average MACD within n periods (usually 9).

详情见上面的MACD 2 Lines

2018.1.21 Moving Average Envelope

和之前的Envelope指标一模一样。

用法:

  1. 用作过滤器
  2. 双线回归

缺点:

  1. 延迟比较严重
  2. Moving Average envelopes cannot be provided under ongoing inconstancy as, let's say, Bollinger Bands. 这句话一直没看明白

2018.1.21 Negative Volume Index (NVI)

PVI 是表明非专业人士,也就是散户的交易活跃度,看起来不像,因为国内股市肯定是散户走涨,散来跌,但是这个PVI的趋势竟然和价格一样。NVI

Initial value of PVI:

PVI0 = 1.

If the volume of the current period is more than volume of the previous one, then

PVIi = PVIi-1 + (PVIi-1 * (Pi - Pi-1) / Pi-1),

where Pi - is the price of the current period, Pi-1 - is the price of the previous period.

PVI 如果成交量增长,则用上面的公式,如果成交量减少,则PVIi=PVIi-1 NVI 如果成交量减少,则用上面的公式 ...

用法:有一个NVI的年均线,如果上穿,买入。

策略:可以把上面的用法实现一下,或者进行bull和bear的判断,但是这种一根线的判断bull和bear不是很靠谱,因为无法判断震荡市。

2018.1.22 New Highs - Lows Cumulative

英英详解

(New Highs - New Lows) + Yesterday's Indicator value

长期指数型指标,52周,这不就是一年吗,是的。

策略:人工判断干预可能会好一些

2018.1.22 New Highs/Lows Ratio (NYHL)

New Highs/New Lows

指数型指标。

策略:人工判断。

2018.1.22 New Highs - New Lows

英英详解

一根线(High-Low Line) 和一个柱状体(Net New Highs)

Net New Highs = New 52-Week Highs - New 52-Week Lows

# 这个详情请看英英详解,里面有详解的推算
High-Low Line = Prior Cumulative Net New Highs + Current Net New Highs

讲解了一下以New Highs 和 New Lows作为计算因子的指标,主要是上面两个。

2018.1.23 Norton High/Low Indicator

MDI的easy版本源码

MDI的PHP版本源码

Function

{ James Sibbet's Demand Index Function }
{ Programmed by David Fenstemaker }
{ The Demand Index combines price and volume in }
{ such a way that it is often a leading indicator
( of price change. }


Inputs: Length (NumericSeries);

Vars : WtCRatio(1), VolRatio(1), VolAvg(Volume),
BuyP(1), SellP(1), Sign(+1), Return(0),
WghtClose(Close), AvgTR(High - Low),
Constant(1), BuyPres(1), SellPres(1),
TempDI(1), DMIndx(1);

If CurrentBar = 1 then
Begin
VolAvg = Average(Volume, Length);
End;

Return = 0 ;

WghtClose = (High + Low + Close + Close) * 0.25;
AvgTR = Average (Highest (High, 2) - Lowest ( Low, 2), Length);
VolAvg = ((VolAvg [1] * (Length - 1)) + Volume) / Length;

If WghtClose <> 0 and WghtClose[1] <> 0 and
    AvgTR <> 0 and VolAvg <> 0 then
    Begin
        WtCRatio = (WghtClose - WghtClose[1]) / MinList(WghtClose,WghtClose[1]) ;
VolRatio = Volume / VolAvg;
Constant = ((WghtClose * 3) /AvgTR) * AbsValue (WtCRatio);
If Constant > 88 then Constant = 88;
Constant = VolRatio / ExpValue (Constant);

If WtCRatio > 0 then
    Begin
        BuyP = VolRatio;
        SellP = Constant;
    End
Else
    Begin
        BuyP = Constant;
        SellP = VolRatio;
    End;

BuyPres = ((BuyPres [1] * (Length - 1)) + BuyP) / Length;
SellPres = ((SellPres [1] * (Length - 1)) + SellP) / Length;

TempDI = +1;

If SellPres > BuyPres then
    Begin
        Sign = -1;
        If SellPres <> 0 then TempDI = BuyPres / SellPres;
    End
Else
    Begin
        Sign = +1;
        If BuyPres <> 0 then TempDI = SellPres / BuyPres;
    End;

TempDI = TempDI * Sign;
If TempDI < 0 then
    DMIndx = -1 - TempDI
else
    DMIndx = +1 - TempDI ;

Return = DMIndx {* 100.0} ;

End;

DemandIndex = Return ;
call

{ James Sibbet's Demand Index Indicator }
{ Programmed by David Fenstemaker }
{ The Demand Index combines price and volume in }
{ such a way that it is often a leading
( indicator of price change. }

Inputs: Length(5);

Vars: DMIndx(0);

DMIndx = DeMandIndex (Length) ;

Plot1(DMIndx, "DMI") ;
Plot2(0, "Zero") ;

上面贴出来的是MDI的公式,因为该公式是由MDI和随机指标(如KD)算出来的,具体的算法找了好久没找着,下面有一个怪怪的公式,也不知道能不能用。

{
    # BuyP和SellP请参考上面的公式
    BuyP();
    SellP();
}

Smoothing:=Input("Smoothing Periods",3,200,50);

{
Hi[censored]yP() - SellP() ;
{Line} Mov(BuyP() - SellP(),Smoothing,E);
{End} or Smoothing:=Input("Smoothing Periods",3,200,50);
{Green Hi[censored]yP();

{Red Histo} SellP();

{Line} Mov((BuyP()+SellP()/2),Smoothing,E);

{End}

用法:有NHP和NLP两根线,NLP在-3下4~6个周期则算表示是一个底。NHP在3以下同样的周期表明是一个顶。

策略:可以试试先在TB上实现一下,代码有点复杂。

2018.1.23 Notis %V

源码

P[i] = High[i]-Close[i],
M[i] = Close[i]-Low[i].

NOTIS[i] = 100*Plus[i]/(Plus[i]+Minus[i]), where
Plus = Moving Average(P, Length, Method),
Minus = Moving average(M, Length, Method),

只有一条线,只有价格参与计算,计算出来与波动相关。

策略:当过滤器应该可以,先在tb中实现。

2018.1.24 On Balance Volume (OBV)

若今日收盤價高於前一交易日收盤價
則今日OBV值=前一交易日OBV值+今日成交量
若今日收盤價低於前一交易日收盤價,
則今日OBV值=前一交易日OBV值-今日成交量

基于成交量的计算, 主要是看背离。

策略:看股票的日线其实还蛮准的,过滤器判断底部更准确

2018.1.24 Open-10 TRIN

指数指标

英英详解

公式

策略:指数指标,板块分析可以用

2018.1.25 Oscillator of Moving Average (OsMA)

英英详解

OsMA = MACD - SIGNAL
We remember that:
MACD = EMA(P, N)-EMA(P, N)
SIGNAL = SMA(MACD, N)
Where:
EMA - exponential moving average;
SIGNAL - smoothing moving line, signal line of the indicator;
N - number of calculation periods;

其实就是MACD的那根柱状线,MACD包含两根曲线和一根柱状线,曲线是均线差和对应的ema,柱状线是均线差减去ema

策略:参考MACD

2018.1.25 Overbought/Oversold (OB/OS)

  1. Consider a moving average with a known period.
  2. Calculate the slope of the moving average up to a certain period. This is the market trend.
  3. Add the slope (+/-) to the moving aveage. This is the modified moving average, and determines where the price should be if the current trend is steady.
  4. OSOB then shows the relationship between the modified moving average and the price of the security.

在网上找到一些php的代码,不过不对。

策略:先找到代码再说。

2018.1.26 Parabolic SAR (pSAR)

英英详解

传说中的抛物线指标,计算公式有点复杂,计算上升和下降时的公式不一样,详情请看上面的文章。

怎么判断反转的趋势呢?在上升趋势中,如果昨天的SAR值大于今天的H,则下降模式启动,反之亦然。

策略:适用于单边趋势,趋势跟踪得还不错,可以结合过滤器,做单边趋势,反转信号大于3~5个再反向开仓。

2018.1.26 Percent Change

网上资料不多,主要是用上(绿)下(红)来表示方向,柱的长短来表示价格变化的多少。

策略:暂时没发现可用性,不采用。

2018.1.27 Percent R (%R)

英文详解

(Highest High(n) – Close(current period)) ÷ (Highest High(n) - Lowest Low(n)) * -100

用法:判断超买和超卖的,也是以20和80为限,为什么说也?因为随机指标KDJ也是的。

策略:做为买入或者卖出的过滤器应该不错,KDJ也有这个功能。

2018.1.27 Percentage Volume Oscillator (PVO)

PVO = ((Vol 12-day EMA - Vol 26-day EMA)/Vol 12-day EMA) x 100

两根成交量均线之间的爱恨情愁,最大值100,没有最小值。如果值小于0,说明短期均线值低,在缩量,意味着迎来大的波动,突然很大的波动意味着下跌或者上涨结束。(PPO 就是以价格做为计算因子的指标)

策略:挺不错的一个辅助策略,增加风险判断和买卖点的信心。(纯成交量一定不能成为主策略)

2018.1.28 Polarized Fractal Efficiency (PFE)

英文详解

又一篇英文详解

VARS:  PFE(0), C2C(0), COUNTER(0), FRACEFF(0), EMA(0);

PFE = 0;
C2C = 0;
COUNTER = 0;
FRACEFF = 0;
EMA = 0;

PFE = SQUAREROOT (POWER(CLOSE - CLOSE[9], 2) + 100);

FOR COUNTER = 1 TO 9
BEGIN
         C2C = C2C + SQUAREROOT(POWER((CLOSE[COUNTER - 1] - CLOSE[COUNTER]),2) + 1);
END;

IF (CLOSE - CLOSE[9]) > 0 THEN
    FRACEFF = ROUND((PFE / C2C) * 100,0)
ELSE
    FRACEFF = ROUND(-(PFE / C2C) * 100,0);

IF CURRENTBAR = 1 THEN EMA = FRACEFF
ELSE
    EMA = ROUND((FRACEFF * 0.333) + (EMA[1] * (1 -  0.333)),0);

PLOT1(EMA,"EMA");
PLOT2(50,"BUYZONE");
PLOT3(-50,"SELLZONE");

策略:计算方法有点复杂,先不做使用,找个机会先实现再说。

2018.1.28 Positive volume index (PVI)

公式参考NVI。以成交量做为判断条件,价格做为计算因子。放量就进行计算,不放量就按前一天的PVI值来。倒是符合价量原理,如果PVI比较平衡,说明成交量在减小,如果在波形的顶部,小心可能会往下走,如果在波形底部,PVI开始总体往上波动了说明有人开始做事了。

策略:买卖辅助

2018.1.29 Price Action Indicator (PAIN)

[(C-O)+(C-H)+(C-L)] / 2

where:

(C-O) defines Intra-Day Momentum,
(C-L) defines Late Selling Pressure (LSP) and
(C-H) defines Late Buying Pressure (LBP)

策略: 像心中一样,太快恢复到0,与波动相关,很难直接应用到策略里面

2018.1.29 Price and Volume Trend (PVT)

和OBV类似,也是价格上涨量累积,下跌减,但是PVT计算了幅度。

[ { (Close - Yesterday's Close) / Yesterday's Close } * Volume ] + Yesterday's PVT

策略:先实现一下再说,可做辅助。

2018.1.30 Price Channel

基于艾略特波浪理论,在一定周期内的最高价和最低价组成水平且平行的通道。

策略:很难量化,人肉操作可能会更好操作一些。

2018.1.30 Price Oscillator (PO)

看公式这不就是MACD吗?只是没有定义计算MA的方式,而且没有固定MA的周期而已。

PO = MA(P, n1) - MA(P, n2),

where
MA(P, n1) - moving average of the P price within n1 periods,
MA(P, n2) - moving average of theP price within n2 periods.

策略:参见MACD

2018.1.31 Rate of change (ROC)

当前价格相对于N个bar前的变化率

ROC = Pi - Pi-n,

Pi - the price of the current period,
Pi-n - the price of the period, which is located n periods back from the current one.
As usual, they use the relative (in percentage) value of the velocity of the ROC:
ROC% = 100% * (Pi - Pi-n) / Pi-n

策略:用作背离分析。

2018.1.31 QStick (QSTK)

QStick = MA(n, (Close - Open)),

策略:计算简单,无法应用。

2018.2.1 Random Walk Index (RWI)

RWIH大于1是上升趋势,RWIL>1时下降趋势,

RWIH=(high-ref(Low,n))/(ATR(n)*Sqrt(n));

RWIL=(ref(High,n)-L)/(ATR(n)*Sqrt(n));

策略:当过滤器用试试,先在软件上把指标实现

2018.2.1 Range Expansion Index (REI)

看图表上,该指标的方向和价格方向一致,所以就是两条线决定超买和超卖的?

英文公式详解

IF( ( (HI>=LO5 OR HI>=LO6) AND (LO<=HI5 OR LO<=HI6) ) OR ( (HI2>=CL7 OR HI2>=CL8) AND (LO2<=CL7 OR LO2<=CL8) ) )
    THEN
        VALUE = HI - HI2 + LO - LO2
        ABSVALUE = ABS(HI - HI2) + ABS(LO - LO2)
    ELSE
        VALUE = ABSVALUE = 0

TD_REI = SUM(VALUE, N) / SUM(ABSVALUE, N)

where N is the the TD_REI Period

LO5 5天前的Low
HI5 5天前的High
CL7 7天前的Close

策略:超卖和超买做过滤器

2018.2.2 Relative Momentum Index (RMI)

close参与计算,相对动量指标,70-90是超买,10-30是超卖

版本1 版本2

len = input(20, title="Length")
mom = input(4, title="Momentum",minval=0)
ob = input(70,title="Overbought")
os = input(30,title="Oversold")
c = close
sig = input(6,title="Signal Length")

//calc
up = ema(max(c - c[mom],0),len)
dn = ema(max(c[mom] - c,0),len)
rmi = dn == 0 ? 0 : 100 - 100 / (1 + up / dn)
signal = sma(rmi,sig)

策略:做过滤器使用。

2018.2.2 Comparative Relative Strength (CRS)

貌似是做对冲时用的,就是用股票a的价格除以股票b的价格,一般是某支股票除以某个指数,这样可以看出这支股票相对于大盘的强弱。

a = tickerid
b = input("SPX500", type=symbol)
as = security(a, period, close)
bs = security(b, period, close)
plot(as/bs, title="CRS", color=gray)
len = input(10)
plot(sma(as/bs, len), color=navy)

策略:在股票世界里面会不会有点用,或者把商品期货里面某些相关品种做成指数做为分母。

2018.2.3 Relative strength index (RSI)

中文详解

wikipedia

非常常用的指标,30和70是顶线和底线,作为顶部区域和底部区域的分界,还可作背离使用。

公式里面一个D和U不好理解,请看中文详解,里面第一个答案也是不对的,应该是今天的close和昨天的close做计算,算出量,wikipedia才是王道。而IMI指标则是当天的close和open做计算,当然和昨天close做计算是更准确的,因为算进了高开和低开的情况。

RSI = 100 - 100 / (1 + RS),

RS = U(P,n)/D(P,n)

RS = SMMA(U,n)/SMMA(D,n)

Where U(P,n) is a moving average of growth of the P price within n periods,
D(P,n) - is a moving average of falling of the P price within n periods.

策略:过滤器使用。

2018.2.3 Relative Volatility Index (RVI)

公式详解

变异后的英英详解

RSI的变种,把价格变动换成了标准差,所以要注意,这个是波动率的震荡指标,在指标的顶部区域并不是价格很高,而是连续一个方向的波动率很高,这又与动量相关,波动相关的指标都只能辅助。详见公式,周期默认为10,这是衡量向上和向下波动性的指标

//input = price, user defined, default is closing price
//method = moving average, user defined, default is SMMA
//smoothPeriod = user defined, default is 14
//sdPeriod = user defined, default is 10
//method = moving average, user defined, default is SMMA
//standDev = standard deviation
//diff = difference
//MT = more than
//LT = less than
//ma = moving average, index = current bar number

standDev = std(index, sdPeriod, input);
diff = standDev - standDev[index-1];
if (diff mT; 0) up = diff
else down = diff
avgUp = ma(method, index, smoothPeriod, up);
avgDown = ma(method, index, smoothPeriod, down);
rs = avgUp / avgDown;
Plot: RVI = 100 - ( 100 / (1 + rs));
//Signals
highSell = rvi for last sell signal, reset to max_negative at each  buy signal;
lowBuy = rvi for last buy signal, reset to max_positive at each sell signal;
sell = (rvi MT topGuide) AND (prevRvi MT rvi)  AND (rvi MT highSell);
buy = (rvi LT bottomGuide AND prevRvi LT rvi) AND (rvi LT lowBuy);

用法(有待考察,这个用法应该是不行的,要结合价格使用):

  1. 在RVI大于50时购买
  2. 在小于50时卖
  3. 如果大于50时错过机会了就在大于时购买
  4. 如果小于50时错过机会就在小于40时做空
  5. 小于40时关闭多仓
  6. 大于60时关闭空仓

策略:与价格指标结合使用,低波动时开仓,高波动时要离场

2018.2.4 Ribbon Study

用很多条均线作分析。

策略:倒是可以极端一点,多条均线,方向全部一样才开仓,只要有一条交叉就空仓。

2018.2.4 R-Squared (R2)

英英详解

根据线性回归来进行计算的指标,上面的详解里面非常详细的讲角了R的平方是怎么计算出来的。所以其实该指标就是R的平方,越接近1表明回归越好,越远表明价格在偏离。

策略:统计学用在这里不知道能不能用,先在软件里面实现该指标。

2018.2.5 Schaff Trend Cycle

下面有一段关键代码,把macd的柱值(均线差值)算出来,再进行更深入的计算,振荡指标。

公式详解

公式详解

stc(length, fastLength, slowLength) =>
    factor=input(0.5)  
    m = macd(close,fastLength,slowLength)     
    v1 = lowest(m, length)
    v2 = highest(m, length) - v1    
    f1 = (v2 > 0 ? ((m - v1) / v2) * 100 : nz(f1[1]))
    pf = (na(pf[1]) ? f1 : pf[1] + (factor * (f1 - pf[1])))
    v3 = lowest(pf, length)
    v4 = highest(pf, length) - v3     
    f2 = (v4 > 0 ? ((pf - v3) / v4) * 100 : nz(f2[1]))
    pff = (na(pff[1]) ? f2 : pff[1] + (factor * (f2 - pff[1])))
    pff

策略:先在软件上实现,按MACD的用法来,但应该比MACD会好用一点。

2018.2.5 Simple Moving Average (SMA)

这个就不说了,人人都会用的。

策略:均线趋势策略。

2018.2.6 Slow Stochastic (Slow STO)

随机指标,请参考 Full Stochastic Oscillator

策略:见随机指标

2018.2.6 Standard Deviation

用来计算波动率的东西,boll线里面用了标准差。

策略:非常重要的一个指标,用来计算波动率。

2018.2.7 Standard Deviation Channel

英英详解

三条平行线,中间是线性回归线(直线),上下是加减标准差的值,所以这个人工分析会更好,某段时间内一个通道。

策略:通道就是回归的,不过因为通道有斜率,要考虑向上的通道,做多更好,下下的通道做空更好。

2018.2.7 Standard Error

Std Error的计算方法

其实Std Error主要讲的是样本和总体间的误差,但是这里就简单的用下面的公式。SE变大说明偏离之前的航道了,也是一种波动吧,应该叫偏离度。

σ/square(N)

σ - 标准差

策略:本身Std Error的值,和标准差比倒底谁更有意义呢?得系统实测。更多的用法参考后面的band和channel。

2018.2.8 Standard Error Bands

中间线是20周期线性回归的3周期平滑,然后上下加减2倍标准误,回顾一下keltner,boll,envelopes。envelopes计算太过于粗糙,keltner和boll都与波动率相关。

Smoothed Linear Regression Line: Generally a 21-period linear regression curve that is smoothed by a 3-period simple moving average
Upper Standard Error Band: The linear regression line plus 2 standard errors.
Lower Standard Error Band: The linear regression line minus 2 standard errors.

策略:通道嘛,都一样。

2018.2.8 Standard Error Channel

这个在网上的资料没有Standard Error Bands 多,这个的差别就是中间线是根直线,是某一段周期做的线性回归,而不是上个指标里面某个周期里面最后一个点的值(请参考Linear Regression Indicator (LRI)

策略:直线通道其实应该没有曲线通道靠谱。

2018.2.9 STIX

公式详解

指数型指标,基于A/D ratio的,做了指数平均。

>58 严重超买 >56 超买 <45 超卖 <42 严重超卖

A/D Ratio = ( Advancing Issues / Advancing Issues-Declining Issues ) *100

STIX = (A/D Ratio * 0.09) + (yesterday's STIX * 0.91)

策略:做板块分析可以用。

2018.2.9 Stochastic Momentum Index (SMI)

英文公式详解

用法:在40上方下降时卖出,在-40下放上升时买入,先用R-Squared来判断趋势。

策略:随机指标,不知道怎么用。参考下面的随机指标。

2018.2.22 Stochastic oscillator (STOCH)

随机震荡指标,其实就是KDJ啦,然而早期版本只有KD,%D的计算可以以多种方式:简单均线,指数均线,时间序列,加权均线或者可变三角形。

使用方法:

  1. 80和20做为区间,超过后回落为买卖点。
  2. K穿D时买卖(和快慢均线类似)
  3. 背离
RSV = 100 * (N - LLV(n)) / (HHV(n) - LLV(n)),
%K = MA(RSV, m1)
%D = MA(%K, m2)

where N - is the price of closing of the current period,
LLV(n) - the lowest price within the last n periods,
HHV(n) - the highest price within the last n periods,
n - amount of periods (usually from 5 to 21),
m1,m2 - amount of periods of calculation of the moving average.

策略:见使用方法。

2018.2.22 Stochastic RSI (Stoch RSI)

公式详解

振荡指标和RSI的组合。

StochRSI = (RSI - Lowest Low RSI) / (Highest High RSI - Lowest Low RSI)

从图示上来看过于敏感。

策略:当过滤器使用可能更靠谱一点,比如第几次上穿或者下穿才能做买卖点,因为往往第一次下跌或者上涨都是无效的。

2018.2.23 Stoller Average Range Channels (STARC) Bands

和boll带不一样,boll穿透表示突破,而STARC表示回归。看公式和boll的差别在于标准差和atr。

Upper STARC band = SMA + ATR*
Lower STARC band = SMA - ATR*

策略:很少有回归的策略,试试看?

2018.2.23 Swing Index (SI)

英英详解

里面有一段 Weighted Price Change = 50 * [Close - pClose + 0.5 * (pClose - pOpen)+ 0.25 * (Close - Open)]这个东西是有关权重运算的,分3段,可以和Typical Price或者TR,来进行比对。

买点:背离上穿0线 卖点:背离下穿0线

Swing Index = 50 * [ { Cy - C + 0.5(Cy - Oy) + 0.25(C - O) } / R ] * (K / T) Where:

C = Today's closing price
L = Today's lowest price
O = Today's opening price
Cy = Yesterday's closing price
Ly = Yesterday's lowest price
Oy = Yesterday's opening price
Hy = Yesterday's highest price
K = The larger of either (Hy - C) or (Ly - C)
R = A variable based on the relationship between today's closing price and yesterday's high and low
T = The limit move value


For the R variable we need to find out:

MAX (H  C n-1) (L  C n-1) (H  C)
If the highest difference is between (H  C n-1), then:
R = (H  C n-1) + 0.5*(L  C n-1) + 0.25*(C n-1 + O n-1)
If the highest difference is between (L  C n-1), then:
R = (L  C n-1) + 0.5*(H  C n-1) + 0.25*(C n-1 + O n-1)
If the highest difference is between (H  C), then:
R = (H  L) + 0.25*(C n-1 + O n-1)

策略:计算有点复杂,看图示好像很准,先试试看。上穿0买,下穿0卖。

2018.2.24 Time Series Forecast (TSF)

公式详解

线性回归(最小二乘法),详情见之前的TSF,与线性回归有两点不同: 1. 周期要短 2. TSF会把线往后平移,一般是7bar

策略:先实现再说,还从没用过线性回归的策略

2018.2.24 Tom Demark (TD) Moving Average

主要用来设置止损的,Demark的所有指标都是一个体系,不能单独分析,再找机会全盘阅读他的书。

2018.2.25 Tom Demark (TD) Range Projections

迪马克系,可以预测下一个bar的range,明显是吹牛的... 如果第二天的价格在预测的区间内,那么就会一直在区间里,如果在外则会突破

1) Close of the most recent bar is less than the open:

(Current High + 2 * Current Low + Current Close) = X
Projected High = X - Current Low
Projected Low = X - Current High

2) Close of the most recent bar is greater than the open:
(2 * Current High + Current Low + Current Close) = X
Projected High = X - Current Low
Projected Low = X - Current High

3) Close of the most recent bar is equal to the open:
(Current High + Current Low +2 * Current Close) = X
Projected High = X - Current Low
Projected Low = X - Current High

策略:可以做日内,实现。

2018.2.25 Trade Volume Index (TVI)

原始公式

公式变种

类似于OBV,价量都参与计算,与OBV的差别就是TVI是日内数据,OBV是Close Price 背离指标,说明是还会用到tick,日内指标,分时图操作,MTV是指最小的价差,这个应该是可以自己定义的,这样价格上涨超过最小价差,加上tick的Volume,下载超过则减去tick的volume。

Change = Price - Last Price
MTV = Minimum Tick Value
Accumulation when Change > MTV or Distribution when Change < MTV

With direction determined, calculate the TVI:
Accumulation: TVI = TVI + Today's Volume
Distribution: TVI = TVI - Today's Volume

策略:先研究明白,文档解释得不太明白。

2018.2.26 Triangular Moving Averages

均线的均线。

First, calculate the simple moving average (SMA):

    SMA = (P1 + P2 + P3 + P4 + ... + PN) / N
Then, take the average of all the SMA values to get TMA values.

    TMA = (SMA1 + SMA2 + SMA3 + SMA4 + ... SMAN) / N
The TMA can also be expressed as: TMA = SUM (SMA values) / N

策略:按均线策略走。

2018.2.26 Triple Exponential Moving Average (TEMA, or TRIX)

单,双,三指数均线的组合,延迟最小。0线上方的金叉是买入信号,0线下方的死叉是卖出信号。

First DEMA is calculated, then the error of price deviation from DEMA is calculated:

err(i) = Price(i)  DEMA(Price, N, ii)

Where:

err(i)   current DEMA error;
Price(i)  current price;
DEMA(Price, N, i)  current DEMA value from Price series with N period.

Then add value of the exponential average of the error and get TEMA:

TEMA(i) = DEMA(Price, N, i) + EMA(err, N, i) = DEMA(Price, N, i) + EMA(Price - EMA(Price, N, i), N, i) =

= DEMA(Price, N, i) + EMA(Price - DEMA(Price, N, i), N, i) = 3 * EMA(Price, N, i) - 3 * EMA2(Price, N, i) + EMA3(Price, N, i)

Where:

EMA(err, N, i)  current value of the exponential average of the err error;
EMA2(Price, N, i)  current value of the double sequential price smoothing;
EMA3(Price, N, i)  current value of the triple sequential price smoothing.

策略:基于均线的指标,先实现再说。

2018.2.27 True Strength Index (TSI)

公式详解

用ema做的计算,0线上为强势,0线下为弱势。

Double Smoothed PC
------------------
PC = Current Price minus Prior Price
First Smoothing = 25-period EMA of PC
Second Smoothing = 13-period EMA of 25-period EMA of PC

Double Smoothed Absolute PC
---------------------------
Absolute Price Change |PC| = Absolute Value of Current Price minus Prior Price
First Smoothing = 25-period EMA of |PC|
Second Smoothing = 13-period EMA of 25-period EMA of |PC|

TSI = 100 x (Double Smoothed PC / Double Smoothed Absolute PC)

策略:低于-25时买入。背离。中线突破买入,下穿卖出。

2018.2.27 Typical Price

Typical Price = ( High + Low + Close / 3 )

策略:做为其他指标的计算因子。

2018.2.28 Ultimate Oscillator (ULT, UOS)

由3种周期的线计算出来的,单根线,在区域0~100中震荡,30~70为超卖和超买线。还有背离的用法。

BP = Close - Minimum(Low or Prior Close).

TR = Maximum(High or Prior Close)  -  Minimum(Low or Prior Close)

Average7 = (7-period BP Sum) / (7-period TR Sum)
Average14 = (14-period BP Sum) / (14-period TR Sum)
Average28 = (28-period BP Sum) / (28-period TR Sum)

UO = 100 x [(4 x Average7)+(2 x Average14)+Average28]/(4+2+1)

策略:震荡策略当过滤器会比较好。

2018.2.28 Upside/Downside Ratio

英英详解

成交量相除,下面那个volume也是计算volume,只不过是相关

Advancing Issues / Declining issues

Advancing Issues = Total volume traded of securities that closed above their opening price Declining Issues = Total volume traded of securities that closed below their opening price

策略:板块分析

2018.3.1 Upside/Downside Volume

指数指标,上升股票的总成交量减去下跌股票的总成交量

策略:板块分析

2018.3.1 Variable Moving Average (VMA)

根据波动率实时调整的均线,还是不错的,VIP,但是VR的算法需要自己确定,可以参考ER算法

with VR = Volatility Ratio
VMA = [ { 0.0788 * VR } * Close ] + [ { (1 - 0.078) * VR } * yesterday's VMA ]

0.0788也可以用2/(N+1)代替,可以看这个示例算法

策略:自定义程度较高,可以先实现几种再说。

2018.3.2 Vertical Horizontal Filter

英英详解

Select the number of periods (n) to include in the indicator. This should be based on the length of the cycle that you are analyzing. The most popular is 28 days (for intermediate cycles).
Determine the highest closing price (HCP) in n periods.
Determine the lowest closing price (LCP) in n periods.
Calculate the range of closing prices in n periods:
           HCP - LCP
Next, calculate the movement in closing price for each period:
           Closing price [today] - Closing price [yesterday]
Add up all price movements for n periods, disregarding whether they are up or down:
           Sum of absolute values of ( Close [today] - Close [yesterday] ) for n periods
Divide Step 4 by Step 6:
           VHF = (HCP - LCP) / (Sum of absolute values for n periods)

趋势过滤: VHF在上升说明是一个趋势,下降表示在震荡 很高的值代表趋势结束,低的值代表趋势开始(这条应该不太准,上面那条可以做过滤器)

注意: 这个n最好是该品种的一个涨跌周期,最觉见的周期是28天 策略:背离指标,可做过滤器

2018.3.2 Volatility indicator

三种振荡指标的解释

波动率是非常有用的东西,标准差,震幅比,atr等等

策略:已经在应用

2018.3.3 Volume

成交量,在101alpha中已经表示,alpha最直接是与价格发生关系,成交量只是辅助,直接用成交量做alpha的还是很难。

这是个很大的话题,成交量大时代表什么?成交量弱时代表什么?在每个阶段都代表不同的意思。

2018.3.3 Chaikin's Volume Accumulation (VAC)

Chaikin发明用来改进obv的指标。公式的累积方法和obv是一样,但是obv是整天的成交量,而vac是一部分,哪部分呢?看代码

但是要注意,这个公式可以写成volume*(close-(high-low)),这样价格的绝对值和成交量的绝对值是参与计算的,数据未经标准化,可能用起来不是很方便。

VAC = Volume * ( Close - High + Low / 2 )

策略:从计算方式来讲会比obv更精细一些,可以和obv进行比对,看哪个效果更好

2018.3.4 Volume by Price

其实这就是现在一些股软上的筹码分布,计算方法其实很简单,交易价在某个价格区间的bar的成交量加起来即可,某个区间的交易量大说明这里是个调整区,但是不能真正的说明持仓结构,因为有在那个区间买卖的筹码都统计进去了,而且买入的可能在其他价格卖了。

There are four steps involved in the calculation.
This example is based on closing prices and the default parameter setting (12).

  1. Find the high-low range for closing prices for the entire period.  
  2. Divide this range by 12 to create 12 equal price zones.
  3. Total the amount of volume traded within each price zone.  
  4. Divide the volume into up volume and down volume (optional).

策略:用来计算阻力支撑位倒是一个不错的东西,也可以做突破使用(vip)

2018.3.4 Volume Oscillator

其实就是两根volume均线的差值

Percentage Volume Oscillator (PVO):
((12-day EMA of Volume - 26-day EMA of Volume)/26-day EMA of Volume) x 100

Signal Line: 9-day EMA of PVO

PVO Histogram: PVO - Signal Line

策略:可以做一个辅助指标,成交量的指标一般来讲都很难做主指标。

2018.3.5 Volume Rate of Change (VROC)

和Price ROC相呼应,表示成交量的变化速度,可以判断一极极端情况

( Volume - Volume n periods ago ) / Volume n periods ago

策略:可以判断一些极端情况。

2018.3.5 Weighted Close

想替代close的一个想法

(Daily Close * 2) + Daily High + Daily Low / 4

策略:可以做为其他指标计算的基础数据。

2018.3.6 Weighted Moving Average (WMA)

移动平均线的一种。

策略:和均线一样

2018.3.6 Wilder's Relative Strength Index (RSI)

同RSI

2018.3.7 Wilder's Smoothing

均线的一种

WSMA(i) = (SUM1-WSMA1+CLOSE(i))/N

Where:

WSMA1 = Wilders
 Smoothing for the first period.

WSMA(i)
 = Wilders Smoothing of the current period (except for the first
 one).

CLOSE(i) = The current closing
 price.

N = The smoothing period

策略:和均线一样

2018.3.7 Wilders Volatility Index

英英详解

一个波动率指标,和atr一样都是以tr为基础进行计算,但是计算方式略有不一样

he calculation of the ATR is simple and consists of two steps:

Step #1: Define the True Range (TR) - get the highest of the following numbers:

The absolute value of the difference between the current bar High and the current bar Low.
The absolute value of the difference between the current bar High and the previous bar Close.
The absolute value of the difference between the current bar Low and the previous bar Close.
Step #2: Apply the moving average to the defined TR.

ATR = SMA(TR)

Wilder uses simplified formula to calculate Average of True Range:

ATR = Wilder's Volatility = ((N-1) x Previous ATR + TR) / N

Where N is the selected bar period.

When it comes to the formula specified in the Wilder's book for 14-day ATR, the Wilder's formula would look:

14-day ATR = Wilder's Volatility = (13 x Previous ATR + TR) / 14

策略:波动率指标

2018.3.8 Williams Percent Range (%R)

震荡性指标主要用在非趋势,那就是震荡市,提示出超买和超卖区域的。他提示了超买超卖需要时间,第一次产生信号可能不准确。

( Highest High in n periods - Today's Close / Highest High in n periods - Lowest Low in n periods ) * -100

策略:超买超买型,当过滤器比较好,用在震荡市中

2018.3.8 Williams' Accumulation/Distribution (A/D)

不是板块指标,单股票指标,比较敏感的指标,作者表示是超买超卖型。

To calculate the Williams' Accumulation/Distribution indicator, determine:

True Range High (TRH) = Yesterday's close or today's high whichever is greater

True Range Low (TRL) = Yesterday's close or today's low whichever is less

The day's accumulation/distribution is then calculated by comparing today's closing price to yesterday's closing price.

If today's close is greater than yesterday's close: Today's A/D = today's close - TRL

If today's close is less than yesterday's close: Today's A/D = today's close - TRH

If today's close is the same as yesterday's close then the A/D is zero.

The Williams' Accumulation/Distribution indicator is a cumulative total of the daily values:

Williams A/D = Today's A/D + Yesterday's Williams A/D

策略:超买超卖型的话那就做过滤器好了。

2018.3.9 Zig Zag

英英详解

辅助型指标,只是为了减少噪音,画出大趋势,会根据未来的值更改前面的值。

策略:这是第一个这么辅助型的指标,还不知道怎么用

2018.4.8 Kaufman Adaptive Moving Average (KAMA)

公式详解

根据波动动计算出来的均线

Current KAMA = Prior KAMA + SC x (Price - Prior KAMA)

SC = [ER x (fastest SC - slowest SC) + slowest SC]2

e(2,30):
SC = [ER x (2/(2+1) - 2/(30+1)) + 2/(30+1)]2

......

ER = Change/Volatility

Change = ABS(Close - Close (10 periods ago))

Volatility = Sum10(ABS(Close - Prior Close))

策略:简单的均线上穿下穿策略


Comments

comments powered by Disqus