
Strategi ini didasarkan pada PIVOT high low dan breakout untuk menilai reversal tren mata uang kripto, dan termasuk dalam kategori strategi reversal breakout. Strategi ini pertama-tama menghitung harga tertinggi dan harga terendah PIVOT dalam beberapa waktu terakhir, dan kemudian menilai apakah harga telah melakukan reversal setelah melewati titik-titik kunci ini untuk menangkap perubahan tren yang besar.
Menggunakan fungsi ta.pivothigh() dan ta.pivotlow() untuk menghitung harga tertinggi dan harga terendah dari bar tertentu sebagai titik PIVOT utama.
Jika harga menembus PIVOT low ke atas, atau menembus PIVOT high ke bawah, maka trend akan berbalik.
Perlu harga yang lebih besar dari titik PIVOT, dan melewati 150 bar dari harga penutupan, untuk menghindari ditargetkan
Trigger buy condition untuk melakukan over entry dan trigger sell condition untuk menghapus over entry. Sama halnya dengan menentukan over entry dan over exit.
Strategi ini secara keseluruhan cukup kuat dan cocok untuk menangkap reversal besar. Namun, perlu berhati-hati untuk mengendalikan risiko, menyesuaikan parameter untuk menyesuaikan dengan mata uang yang berbeda.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nkrastins95
//@version=5
strategy("Swing Hi Lo", overlay=true, margin_long=100, margin_short=100)
//-----------------------------------------------------------------------------------------------------------------------//
tf = input.timeframe(title="Timeframe", defval="")
gr="LENGTH LEFT / RIGHT"
leftLenH = input.int(title="Pivot High", defval=10, minval=1, inline="Pivot High",group=gr)
rightLenH = input.int(title="/", defval=10, minval=1, inline="Pivot High",group=gr)
colorH = input(title="", defval=color.red, inline="Pivot High",group=gr)
leftLenL = input.int(title="Pivot Low", defval=10, minval=1, inline="Pivot Low", group=gr)
rightLenL = input.int(title="/", defval=10, minval=1, inline="Pivot Low",group=gr)
colorL = input(title="", defval=color.blue, inline="Pivot Low",group=gr)
//-----------------------------------------------------------------------------------------------------------------------//
pivotHigh(ll, rl) =>
maxLen = 1000
float ph = ta.pivothigh(ll, rl)
int offset = 0
while offset < maxLen
if not na(ph[offset])
break
offset := offset + 1
ph[offset]
pivotLow(ll, rl) =>
maxLen = 1000
float pl = ta.pivotlow(ll, rl)
int offset = 0
while offset < maxLen
if not na(pl[offset])
break
offset := offset + 1
pl[offset]
//-----------------------------------------------------------------------------------------------------------------------//
ph = request.security(syminfo.tickerid, tf, pivotHigh(leftLenH, rightLenH), barmerge.gaps_off, barmerge.lookahead_on)
pl = request.security(syminfo.tickerid, tf, pivotLow(leftLenL, rightLenL), barmerge.gaps_off, barmerge.lookahead_on)
drawLabel(_offset, _pivot, _style, _color) =>
if not na(_pivot)
label.new(bar_index[_offset], _pivot, str.tostring(_pivot, format.mintick), style=_style, color=_color, textcolor=#131722)
//-----------------------------------------------------------------------------------------------------------------------//
VWAP = ta.vwap(ohlc4)
longcondition = ta.crossunder(close,pl) and close > close[150]
exitcondition = close > ph
shortcondition = ta.crossover(close,ph) and close < close[150]
covercondition = close < pl
strategy.entry("long", strategy.long, when = longcondition)
strategy.close("long", when = exitcondition)
strategy.entry("Short", strategy.short, when = shortcondition)
strategy.close("Short", when = covercondition)