商品期货量化交易-TradingviewPine语言基础课程(二十一):量化交易指标:能量指标

Author: ianzeng123, Created: 2023-04-03 16:20:15, Updated:

大家好,今天我们将学习量化交易指标的最后一个部分–能量指标。在金融市场上,每一天都是多空力量的较量。在一个交易日或某一段时间内,多空双方的优势会不断地交替出现,因此,双方都有可能在一定时期内占据优势。

如果多方力量在一定时期内占据优势,价格将不断上涨;反之,如果空方力量在一定时期内占据优势,价格将不断下跌;如果多空双方的力量大致平衡,价格会在某一区间内窄幅波动。通过量与价的分析计算,能量指标能够正确、全面地反映每一天或某一段时间内多空双方力量的对比情况。通过使用数值指标的形式对多空双方的力量进行量化比较,能量指标帮助投资者提前进行信号判断,把握最佳的入场和出场时机。

VR指标

指标介绍

VR(Volitility Volume Ratio),中文名称:成交量变异率。该指标是成交量的强弱指标,运用在过热市场及低速盘局中,对辨别头部及认错部的形成有很重要的作用。

img

计算方法

VR = (N周期中上涨日成交量 + 1/2价格不变周期成交量) / (N日中下跌周期成交量 + 1/2价格不变周期成交量) * 100 参数N为24

应用规则

1.VR指标区域分为四个部分:低价区域(40~70)、安全区域(80~150)、获利区域(160~350)和警戒区域(350以上)。 2. VR下跌至40以下时,市场极易形成底部,应积极买入; 3. VR值一般分布在150左右最多,一旦越过250时市场极易产生一段多头行情; 4. VR超过350以上,应有高档危机意识,随时注意反转之可能; 5. VR运用在寻找底部时较可靠,确认头部时,要配合其它指标使用。 6. 相较而言,由于大盘品种不易被人为操控,因此用VR指标进行判研比较合适。

Pine代码

针对VR指标,我们需要计算价格上涨日,不变日,和下跌日成交量。然而,针对期货品种,价格不变的可能性较小,因此我们定义为针对螺纹钢基数较大的品种,如果价格上涨超过20或者下跌超过20,定义为价格明显变化,否则为平价。当然,针对基数比较小的品种,例如玻璃和甲醛,上涨下跌阈值可以设置小一点。设定固定周期为24,然后我们使用for函数循环,使用if语句今日价格是否大于,小于或者等于昨天,当满足某一条件时,上涨日,下跌日和不变日成交量分别汇总计算。最后利用VR公式计算出来所需的值。

upvolume = 0
downvolome = 0
evenvolume = 0

for i = 1 to 24
    if close[i-1] - close[i] >= 20
        upvolume += volume[i]
    else if close[i-1] - close[i] <= -20
        downvolome += volume[i]
    else
        evenvolume += volume[i]

VR = (upvolume + 0.5*evenvolume)/(downvolome + 0.5*evenvolume)*100
MAVR = ta.sma(VR,5)

plot(VR)

BRAR

指标介绍

AR人气指标和BR意愿指标都是以分析历史价格为手段的技术指标,AR人气指标重视开盘价,反映市场买卖的人气;BR意愿指标重视收盘价,反映市场买卖意愿的程度;两项指标分别从不同的角度对价格波动进行分析,进而达到追踪价格未来动向的目的。

img

计算方法

AR = ((最高价 - 开盘价)的N周期之和) / ((开盘价 - 最低价)的N周期之和) * 200 BR = ((最高价 - 前收盘价)的N周期之和) / ((前收盘价 - 最低价)的N周期之和) * 200

应用规则

1.一般情况下,AR指标可以单独使用,BR指标则需与AR指标并用,才能发挥效用。该指标虽不适合捕捉到大底部,但是灵活运用该指标,却能够抓住局部底部,特别适合做反弹。 2.BR<AR,且BR<100,可考虑逢低买进。 3.BR<AR,而BRAR,再转为BR<AR时,也可买进。 4.AR和BR同时急速上升,意味着价格已近顶部,持股者应逢高卖出。 5.BR急速上升,而AR处在盘整或小跌时,应逢高卖出。 6.BR从高峰回跌,跌幅达1至2倍时,若AR无警戒讯号出现,应逢低买进。

Pine代码

AR和BR值每个都具有两个部分,都是N周期之和,所以可以用移动平均值代替(移动平均值就是周期内累加和除以周期),使用sma内置函数计算出来AR和BR两个部分,然后相除就是AR和BR值。关于开仓信号,我们确定的是当br小于ar时,并且br小于100的时候,进行开多仓;空仓信号是当AR和BR急速上升,这里使用的是当AR和BR大于两个周期内的平均值时,进行开空。根据回测结果,针对品种,取得了一个正的预估收益,证明该指标具有一定的参考意义。

ar1 = ta.sma(high-open,26)
ar2 = ta.sma(open-low,26)
br1 = ta.sma(high-close[1],26)
br2 = ta.sma(close[1]-low,26)

ar = ar1/ar2*100
br = br1/br2*100

plot(ar,'ar')
plot(br,'br')

n1 = input.int(3,minval = 2, minva = 25)


if br < ar and br < 100 
    strategy.entry("buy", strategy.long, qty=1)
         
if ar > ta.sma(ar,n1) and br > ta.sma(br,n1) 
    strategy.entry("short", strategy.short, qty=1)

CR

指标介绍

CR综合人气指标,与BR、AR最大的不同在于采用中间价作为计算的基准,CR能够测量价格动量的潜能,又能测量人气热度,同时还能显示压力带和支撑带可以补充BR、AR的不足。

img

计算方法

中价 = (最高价 + 最低价) / 2 上升值 = 今最高价 - 昨中价 下跌值 = 昨中价 - 今最低价 CR(N) = N周期上升值之和 / N周期下跌值之和 * 100 参数N一般取26。

应用规则

  1. CR下跌至40以下时,价格形成底部的机会相当高
  2. CR寻找底部效果不错,但逃顶则功效不明显。
  3. CR指标还具有不同均线(10,20,40,62)作为支撑压力线,当CR上穿或下穿“地震带”将遇到不同级别的阻力和支撑。

Pine代码

设置固定周期数为26,根据公式我们首先计算中价,上升值和下跌值。N周期内的值的和,可以用移动平均值代替,利用移动平均数计算26日内的上升值均值和下跌值均值,两者相除就是CR值。

midprice = (high+low)/2
upprice = high-midprice[1]
downprice = midprice[1]-low
CR = ta.sma(upprice,26)/ta.sma(downprice,26)*100


plot(CR,'CR')

PSY

指标介绍

PSY(Psychology Line),中文名称:心理线。它是研究某段时间的投资人趋向于买方或卖方的心理与事实,是考察市场中群体心理变化的依据。

img

计算方法

PSY = N周期内上涨的周期数 / N * 100

应用规则

  1. PSY在25~75之间是常态分布;
  2. PSY超过75或低于25时,就是超买或超卖关牛市中可设超买点为83,在熊市中可将超卖17;
  3. 一段上升行情展开前,通常超卖之低点会出现两次。同样,一段下跌行情展开前,超买的最高点也会出现两次;
  4. 心理线与价量线配合使用,一般效果较好。

Pine代码

首先我们设置固定周期为12,在12个周期这一时间段内,统计upcount(N周期内上涨的周期数)。这里我们使用一个for循环和if语句就可以将upcount计算出来。接着我们计算psy值,用upcount除以周期数。关于开平仓信号psy值的判断,这里我们可以使用一个参数调试的形式,确定出最好的psy值上限和下限。经过调参,对于玻璃期货,在2022至2023年间,可以确定最好的psy值上限和下限是80和20。最终取得的预估收益为,证明该指标对于玻璃期货具有良好的参考意义。

int upcount = 0


for i = 1 to 12
    if close[i] > close[i-1]
        downcount += 1

psy = upcount/12*100

plot(psy,'psy')

i_len1 = input.int(25, "Length 1", minval=5, maxval=25, step=5)
i_len2 = input.int(75, "Length 2", minval=60, maxval=85, step=5)

if psy <= i_len1
    strategy.entry("buy", strategy.long, qty=1)
         
if psy >= i_len2
    strategy.entry("short", strategy.short, qty=1)

总体而言,可以发现,能量指标和量价指标具有很多相似的地方,都是使用价和量的变化确定多空双方的力量对比。金融市场存在明显的“羊群效应”–追涨杀跌,然而对于信息不对称的散户,有可能空在低谷,多在山顶。套句西方的分析观点,就是以“反市场心理”的立场为基础,当众人一窝蜂的买,市场上充斥着大大小小的好消息,报纸自媒体纷纷报道经济增长率大幅上扬,刹那间,前途似乎一片光明,此时,你应该断然离开市场。能量指标可以帮助我们识别市场的强弱,从而判断是否应该进场或出场。当能量指标显示市场处于高能量状态时,意味着市场处于强势,可以考虑进场。相反,当能量指标显示市场处于低能量状态时,意味着市场处于弱势,可以考虑出场。因此,能量指标可以作为离场信号的参考指标,帮助我们及时确定出场时机,从而避免过度持仓或错失良机。本节课的内容讲述完毕,我们下节课再见!


更多内容