Strategi ini adalah sistem perdagangan trend-mengikut yang menggabungkan retracements Fibonacci, purata bergerak eksponen berganda, dan analisis jumlah. Ia mengenal pasti peluang perdagangan berpotensi dengan menganalisis kedudukan harga pada tahap retracement Fibonacci yang berbeza (0, 0.382, 0.618, 1), mengesahkan trend dengan EMA pelbagai tempoh (20/50/100/200), dan menapis melalui ambang jumlah. Sistem ini termasuk mekanisme pengurusan risiko yang komprehensif dengan tetapan stop-loss peratusan tetap dan mengambil keuntungan.
Logik teras adalah berdasarkan analisis teknikal pelbagai peringkat:
Ini adalah strategi trend berikut pelbagai peringkat yang direka dengan baik yang membina kerangka analisis yang komprehensif menggunakan alat analisis teknikal klasik. Kekuatannya terletak pada pengesahan isyarat yang ketat dan pengurusan risiko yang lengkap, sementara perhatian perlu diberikan kepada prestasi di pasaran yang berbeza. Melalui pengoptimuman yang dicadangkan, terutamanya dalam pengurusan risiko dinamik dan pengukuran kekuatan trend, kestabilan dan keuntungan strategi dapat ditingkatkan lagi.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("ALD Fib Ema SAKALAM", overlay=true) // Inputs lookback = input.int(30, title="Lookback Period for Fibonacci", minval=10) volumeThreshold = input.float(500000, title="24h Volume Threshold", step=50000) stopLossPct = input.float(3.0, title="Stop Loss %", minval=0.5) takeProfitPct = input.float(6.0, title="Take Profit %", minval=1.0) maLength = input.int(50, title="Trend Filter MA Length", minval=1) // Moving Average (Trend Filter) ma = ta.sma(close, maLength) // High and Low for Fibonacci Levels var float swingHigh = na var float swingLow = na if bar_index > lookback swingHigh := ta.highest(high, lookback) swingLow := ta.lowest(low, lookback) // Fibonacci Levels Calculation fib0 = swingLow fib1 = swingHigh fib382 = swingHigh - 0.382 * (swingHigh - swingLow) fib618 = swingHigh - 0.618 * (swingHigh - swingLow) // 24-hour Volume Calculation volume24h = ta.sma(volume, 24) // Plot Fibonacci Levels plot(fib0, title="Fib 0", color=color.new(color.red, 80)) plot(fib382, title="Fib 0.382", color=color.new(color.green, 50)) plot(fib618, title="Fib 0.618", color=color.new(color.blue, 50)) plot(fib1, title="Fib 1", color=color.new(color.red, 80)) plot(ma, title="Trend Filter MA", color=color.orange) // Entry Condition: Buy Signal longCondition = (close <= fib382) and (volume24h > volumeThreshold) and (close > ma) if (longCondition) strategy.entry("Buy", strategy.long) label.new(bar_index, low, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white) // Exit Conditions takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPct / 100) stopLossPrice = strategy.position_avg_price * (1 - stopLossPct / 100) // Place Exit Orders strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=takeProfitPrice, stop=stopLossPrice) // Add Labels for Exits if (strategy.position_size > 0) if (high >= takeProfitPrice) label.new(bar_index, high, "EXIT (Take Profit)", style=label.style_label_down, color=color.blue, textcolor=color.white) if (low <= stopLossPrice) label.new(bar_index, low, "EXIT (Stop Loss)", style=label.style_label_down, color=color.red, textcolor=color.white) // Short Selling Conditions shortCondition = (close >= fib618) and (volume24h > volumeThreshold) and (close < ma) if (shortCondition) strategy.entry("Sell", strategy.short) label.new(bar_index, high, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white) // Short Exit Conditions if (strategy.position_size < 0) strategy.exit("Short Take Profit/Stop Loss", from_entry="Sell", limit=strategy.position_avg_price * (1 - takeProfitPct / 100), stop=strategy.position_avg_price * (1 + stopLossPct / 100)) // Add EMA 20/50/100/200 shortest = ta.ema(close, 20) short = ta.ema(close, 50) longer = ta.ema(close, 100) longest = ta.ema(close, 200) plot(shortest, color=color.orange, title="EMA 20") plot(short, color=color.red, title="EMA 50") plot(longer, color=color.black, title="EMA 100") plot(longest, color=color.green, title="EMA 200")