资源加载中... loading...

带信号的Z分数策略

Author: 雨幕(youquant), Date: 2022-06-07 16:14:32
Tags: smastdev

这是我的z-score开源指标,包含买入和卖出指标。 我知道还有其他的z分数指标,我只是特别喜欢自己计算的z分数,所以决定自己做一个,并添加买卖信号来帮助指导我。我想我可以在这里公开分享!

Z分数是多少

z分数是距离的统计度量,在标准偏差中,值来自其给定的平均值。它表示为标准偏差(或SD)。值(在这种情况下,股票)离平均值越远,越有可能回归到平均值(即回归到平均值)。因此,如果一只股票的交易价格与平均值相差3个标准差,那么我们可以预测它希望回归到与平均值相差1到0个标准差的水平(即,抛售回到使其更接近标准差的值)。 如果交易价格低于,则相反。

Z分数和存量 股票,就像自然界中的一切一样,喜欢在-1和+1 SD之间交易,偏离其平均值。任何高于此的情况,我们都可以解释为股票存在“压力”。任何超过2.50的价格都会给该股带来巨大压力,我们可以预计,该股将在不久的将来恢复到其平均值,并将该值降至至少1,理想情况下介于-0.5和0.5之间。 请注意,我为指标设定了非常高的标准,以发出买入和卖出信号(</=-2.50和>/=2.50)。最近随着波动,股票频繁进入这些区间,因此有很多信号,但传统上,在稳定的环境中,你可能得不到这些信号。我把标准定得非常高,因为我想避免虚假的买卖信号(虽然没有什么是完美的,但你仍然会得到它们!)。因此,该指标中的值用于解释实际的z分数本身,因此请确保您准确理解z分数是什么(请参见上面的描述)。

指示器的工作原理 该指标通过计算股票高点和低点之间的平均Z分数来工作。该指标将显示股票与其高平均值和低平均值的平均偏差。Z分数越高,股票越“超买”。z分数越低,股票越“超卖”。它使用之前价值500烛光的数据计算其SMA和标准偏差,以计算z分数。

任何时候,当一只股票的交易价格高于或低于其均值2.50 SDs或以上时,你都会收到一个买入或卖出信号,一般来说,从统计角度来看,在某只股票从其均值移动了2.50 SDs后,发生逆转的可能性会增加。

您可以使用此指标来确定股票是否在正常参数范围内交易,并帮助您分析股票是否可以做空或做多。

我个人喜欢1小时图表上的摇摆交易;但是,这可以在1分钟到1小时的任何时间使用。它还允许您跟踪股票回归均值的过程。

回测测试

img

img

img


/*backtest
start: 2021-05-31 09:00:00
end: 2022-05-13 14:20:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
args: [["ContractType","rb888",360008]]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Steversteves

//@version=5

indicator("Z Score with Signals", max_labels_count = 500)

// Calculating High Z Score
length = input.int(100, title="周期")

a = ta.sma(high, length)
b = ta.stdev(high, length)
c = (high - a) / b 

// Calculating Low Z Score

d = ta.sma(low, length)
e = ta.stdev(low, length)
f = (low - d) / e 

// Calculating High and Low Average

z = (c + f) / 2 
 
plot (z)

// Condition Alerts

if (z < -2.50)
    strategy.entry("Enter Long", strategy.long)
else if (z > 2.50)
    strategy.entry("Enter Short", strategy.short)
template: strategy.tpl:40:21: executing "strategy.tpl" at <.api.GetStrategyListByName>: wrong number of args for GetStrategyListByName: want 7 got 6