反转极端设置策略是一种利用极端K线反转的策略。它会根据最新K线的实体大小和平均值进行判断,在实体大小大于平均值且出现反转时,产生交易信号。
该策略主要判断当前K线的实体大小以及整体K线大小。
它会记录下最新一根K线的实体大小(开盘价与收盘价的差值)和整体K线大小(最高价与最低价的差值)。
然后利用平均真实范围平均法(RMA)计算最近20根K线的平均实体大小和K线大小。
当最新K线上涨且实体大小大于平均实体大小,而整体K线大小也大于平均K线大小的2倍时,产生做多信号。
相反,当最新K线下跌且实体大小也满足上述条件时,产生做空信号。
也就是在极端K线反转时,利用平均值判断,产生交易信号。
该策略的主要优势有:
该策略也存在一些风险:
为了降低风险,可以适当调整参数,或者加入止损以控制亏损。
该策略可以从以下几个方面进行优化:
反转极端设置策略通过判断最新K线的极端情况,在出现反转时产生交易信号。它有利用异常极端K线特征的优势,但也存在一定的风险。通过参数优化和风控手段,可以获得更好的策略表现。
/*backtest
start: 2024-02-13 00:00:00
end: 2024-02-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Extreme Reversal Setup", overlay=true)
bodySize = input(defval=0.75)
barsBack = input(title="Lookback Period", type=input.integer, defval=20, minval=0)
bodyMultiplier = input(title="Bar ATR Multiplier", type=input.float, defval=2.0, minval=0)
myBodySize = abs(close - open)
averageBody = rma(myBodySize, barsBack)
myCandleSize = abs(high - low)
averageCandle = rma(myCandleSize, barsBack)
signal_long = open[1]-close[1] >= bodySize*(high[1]-low[1]) and
high[1]-low[1] > averageCandle*bodyMultiplier and
open[1]-close[1] > averageBody and close > open
signal_short = close[1]-open[1] >= bodySize*(high[1]-low[1]) and
high[1]-low[1] > averageCandle*bodyMultiplier and
close[1]-open[1] > averageBody and open > close
plotshape(signal_long, "LONG", shape.triangleup, location.belowbar, size=size.normal)
plotshape(signal_short, "SHORT", shape.triangledown, location.belowbar, size=size.normal)
strategy.entry("LONG", strategy.long, when=signal_long)
strategy.entry("SHORT", strategy.short, when=signal_short)