
Strategi tetapan ekstrem terbalik adalah strategi yang menggunakan garis K terbalik. Ia akan membuat keputusan berdasarkan saiz entiti dan nilai purata garis K terkini, menghasilkan isyarat perdagangan apabila saiz entiti lebih besar daripada nilai purata dan berbalik.
Strategi ini menilai saiz entiti K-line semasa dan saiz K-line keseluruhan.
Ia akan merekodkan saiz entiti satu baris K terkini (perbezaan antara harga pembukaan dan harga penutupan) dan saiz keseluruhan baris K (perbezaan antara harga tertinggi dan harga terendah).
Kemudian menggunakan purata purata julat sebenar (RMA) untuk mengira purata saiz entiti dan saiz K untuk 20 garis K terkini.
Apabila K line terkini terpasang dan saiz entiti lebih besar daripada saiz entiti purata, dan saiz K line keseluruhan juga lebih besar daripada saiz K line purata 2 kali ganda, menghasilkan sinyal ganda.
Sebaliknya, apabila K terbarunya turun dan saiz entiti juga memenuhi syarat di atas, isyarat shortcut dihasilkan.
Iaitu, apabila garis K melampau berbalik, keputusan nilai purata digunakan untuk menghasilkan isyarat perdagangan.
Kelebihan utama strategi ini ialah:
Strategi ini mempunyai beberapa risiko:
Untuk mengurangkan risiko, parameter boleh diselaraskan dengan sewajarnya, atau masukkan stop loss untuk mengawal kerugian.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi tetapan ekstrem reversal menghasilkan isyarat dagangan apabila berlaku pembalikan. Ia mempunyai kelebihan menggunakan ciri-ciri garis K ekstrem yang luar biasa, tetapi juga mempunyai risiko tertentu. Prestasi strategi yang lebih baik boleh diperoleh melalui pengoptimuman parameter dan kaedah kawalan angin.
/*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)