
これは,レジスタンスブレイクとレジスタンスブレイクを支える量的な取引戦略である. 戦略は,重要な価格のサポートとレジスタンスビレイクを識別して,価格のブレークスルーの後のレジスタンス確認ポイントで取引を行う. この戦略は,左右のバー数数ダイナミックポジショニングのキーポイントを左右に回転させ,レジスタンスビレイクを回転容量の差と組み合わせて過渡する偽のブレークスを採用し,取引の正確性と安定性を向上させる.
戦略は主に以下のコアロギーを含んでいます.
この戦略は,古典的なサポートレジスタンス理論と突破反測論理によって構築され,優れた理論的基盤を有している.パラメータの最適化とリスク管理によって安定した取引効果を得ることができる.戦略のコード構造は明確で,理解しやすく拡張し,強力な実用的な価値を有している.市場状況と個人のリスク好みを組み合わせた適切なパラメータ調整が実況取引で推奨されている.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("SR Breakout & Retest Strategy (4hr)", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// ===== USER INPUTS =====
leftBars = input.int(3, "Left Pivot Bars", minval=1)
rightBars = input.int(3, "Right Pivot Bars", minval=1)
tolerance = input.float(0.005, "Retest Tolerance (Fraction)", step=0.001)
// ===== PIVOT CALCULATION =====
pLow = ta.pivotlow(low, leftBars, rightBars)
pHigh = ta.pivothigh(high, leftBars, rightBars)
// ===== STATE VARIABLES FOR CANDIDATE LEVELS =====
var float candidateSupport = na
var bool supportBroken = false
var bool supportRetested = false
var float candidateResistance = na
var bool resistanceBroken = false
var bool resistanceRetested = false
// ===== UPDATE CANDIDATE LEVELS =====
if not na(pLow)
candidateSupport := pLow
supportBroken := false
supportRetested := false
if not na(pHigh)
candidateResistance := pHigh
resistanceBroken := false
resistanceRetested := false
// ===== CHECK FOR BREAKOUT & RETEST =====
// -- Support: Price breaks below candidate support and then retests it --
if not na(candidateSupport)
if not supportBroken and low < candidateSupport
supportBroken := true
if supportBroken and not supportRetested and close >= candidateSupport and math.abs(low - candidateSupport) <= candidateSupport * tolerance
supportRetested := true
label.new(bar_index, candidateSupport, "Support Retest",
style=label.style_label_up, color=color.green, textcolor=color.white, size=size.tiny)
// Example trading logic: Enter a long position on support retest
strategy.entry("Long_Support", strategy.long)
// -- Resistance: Price breaks above candidate resistance and then retests it --
if not na(candidateResistance)
if not resistanceBroken and high > candidateResistance
resistanceBroken := true
if resistanceBroken and not resistanceRetested and close <= candidateResistance and math.abs(high - candidateResistance) <= candidateResistance * tolerance
resistanceRetested := true
label.new(bar_index, candidateResistance, "Resistance Retest",
style=label.style_label_down, color=color.red, textcolor=color.white, size=size.tiny)
// Example trading logic: Enter a short position on resistance retest
strategy.entry("Short_Resistance", strategy.short)
// ===== PLOTTING =====
plot(pLow, title="Pivot Low (Support)", style=plot.style_circles, color=color.green, linewidth=2)
plot(pHigh, title="Pivot High (Resistance)", style=plot.style_circles, color=color.red, linewidth=2)