
この戦略は,PIVOT高低点と突破点に基づいて暗号通貨のトレンド反転を判断する.これは,突破反転戦略のカテゴリーに属します.戦略は,最初に標識された物品の最近の最高価格と最低価格のPIVOTポイントを計算し,次に,価格がこれらのキーポイントの位を越えた後に反転したかどうかを判断し,大きなトレンド変化を捕捉します.
ta.pivothigh ((() とta.pivotlow ((() の関数を用いて,最近一定数のバーの最高値と最低値をキーPIVOTポイントとして計算する.
価格がPIVOT LOWを上方へ突破した場合,またはPIVOT HIGHを下方へ突破した場合,トレンドが逆転したと考えられます.
PIVOTポイントより一定幅のブレイクが必要で, 150barの閉盘価格を突破して,套入を避ける.
購入条件を触発した後に多入場し,販売条件を触発した後に多入場を平らげる。空券の入場と出場を判断すると同様。
この戦略は,全体的に安定しており,大幅な逆転を捕捉するのに適しています。しかし,リスク管理に注意し,パラメータを異なる通貨に適応させるように調整する必要があります。パラメータ最適化と風力制御に基づいて,この戦略は,より良い効果を得ることができると信じています。
/*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)