这是我的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小时的任何时间使用。它还允许您跟踪股票回归均值的过程。
回测测试
/*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