Ini adalah sistem strategi trading yang komprehensif yang menggabungkan beberapa pengakuan pola analisis teknis dengan level support dan resistance. Strategi ini terutama bekerja dengan mengidentifikasi pola double bottom (bottom Adam dan Eve), mengintegrasikan level retracement Fibonacci, dan memanfaatkan garis support dan resistance untuk keputusan trading. Kekuatan utamanya terletak pada verifikasi indikator teknis multidimensi, yang meningkatkan keandalan sinyal trading sambil menggunakan level support dan resistance sebagai referensi penting untuk pengendalian risiko.
Strategi ini menggunakan mekanisme verifikasi tiga kali lipat untuk keputusan perdagangan: Pertama, ia mengidentifikasi pola dasar ganda melalui algoritma tertentu, termasuk
Strategi ini membangun sistem perdagangan yang relatif lengkap dengan memanfaatkan secara komprehensif beberapa metode analisis teknis termasuk pengenalan pola, tingkat Fibonacci, dan garis dukungan / resistensi. Kekuatannya terletak pada keandalan tinggi yang disediakan oleh beberapa mekanisme verifikasi, sementara penyesuaiannya memungkinkan adaptasi dengan kondisi pasar yang berbeda. Meskipun ada beberapa risiko yang melekat, melalui optimasi dan perbaikan terus-menerus, strategi menunjukkan janji untuk kinerja yang stabil dalam perdagangan aktual. Dengan menggabungkan indikator teknis tambahan dan algoritma optimasi, ada ruang yang signifikan untuk peningkatan kinerja.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-04 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Double Bottom with Support/Resistance Strategy - Aynet", overlay=true) // Inputs lookbackPeriod = input(21, "Lookback Period") swingLowThreshold = input(1.5, "Swing Low Threshold") fibLevel1 = input(0.618, "Fibonacci Level 1") fibLevel3 = input(1.618, "Fibonacci Level 2") srPeriod = input(21, "Support/Resistance Period") srThreshold = input(3, "Support/Resistance Touch Points") // Support/Resistance Function get_sr_level(idx) => var level = 0.0 var count = 0 if bar_index % srPeriod == 0 highCount = 0 lowCount = 0 for i = 0 to srPeriod - 1 if math.abs(high[i] - high) < (high * 0.001) highCount += 1 if math.abs(low[i] - low) < (low * 0.001) lowCount += 1 if highCount >= srThreshold level := high count := highCount if lowCount >= srThreshold level := low count := lowCount [level, count] // Pattern Detection Functions isSwingLow(src, left, right) => isLow = true for i = 0 to left + right if src[i] < src[right] isLow := false isLow getSpikeSharpness(index) => priceRange = high[index] - low[index] bodyRange = math.abs(close[index] - open[index]) sharpness = priceRange / bodyRange sharpness // Pattern Variables var float firstBottom = na var float secondBottom = na var bool isAdam = false var bool isEve = false var float level1Value = na var float level3Value = na // Pattern Detection bottom = isSwingLow(low, lookbackPeriod, lookbackPeriod) if bottom sharpness = getSpikeSharpness(0) if na(firstBottom) firstBottom := low isAdam := sharpness > swingLowThreshold else if low <= firstBottom * 1.02 and low >= firstBottom * 0.98 secondBottom := low isEve := sharpness <= swingLowThreshold // Calculate Fibonacci if not na(secondBottom) highPoint = ta.highest(high, lookbackPeriod) fibDistance = highPoint - math.min(firstBottom, secondBottom) level1Value := math.min(firstBottom, secondBottom) + fibDistance * fibLevel1 level3Value := math.min(firstBottom, secondBottom) + fibDistance * fibLevel3 // Get S/R Level [srLevel, srCount] = get_sr_level(0) // Trading Logic longCondition = srLevel > level3Value shortCondition = srLevel < level1Value if longCondition strategy.entry("Long", strategy.long) if shortCondition strategy.entry("Short", strategy.short) // Reset Pattern if high > ta.highest(high[1], lookbackPeriod) firstBottom := na secondBottom := na isAdam := false isEve := false var table logo = table.new(position.top_right, 1, 1) table.cell(logo, 0, 0, 'Double Bottom with Support/Resistance Strategy - Aynet', text_size=size.large, text_color=color.white) // Plots plot(level1Value, "0.236", color=color.rgb(245, 0, 0), style=plot.style_line) plot(level3Value, "0.618", color=color.rgb(82, 166, 255), style=plot.style_line) plot(srLevel, "S/R Level", color=color.white) plotshape(bottom and not na(firstBottom) and na(secondBottom), "Adam Bottom", shape.circle, location.belowbar, color.green) plotshape(bottom and not na(secondBottom), "Eve Bottom", shape.circle, location.belowbar, color.yellow)