Strategi penjejakan aliran silang berbilang penunjuk digabungkan dengan anjakan semula Fibonacci dan sistem pengoptimuman henti untung dan henti rugi

EMA FIBO TP/SL Trend
Tarikh penciptaan: 2025-02-20 16:43:42 Akhirnya diubah suai: 2025-02-20 16:43:42
Salin: 1 Bilangan klik: 387
2
fokus pada
319
Pengikut

Strategi penjejakan aliran silang berbilang penunjuk digabungkan dengan anjakan semula Fibonacci dan sistem pengoptimuman henti untung dan henti rugi Strategi penjejakan aliran silang berbilang penunjuk digabungkan dengan anjakan semula Fibonacci dan sistem pengoptimuman henti untung dan henti rugi

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan komprehensif yang menggabungkan crossover rata-rata bergerak indeks (EMA), tahap regresi Fibonacci, penilaian trend, dan mekanisme hentian hentian. Strategi ini menentukan isyarat perdagangan melalui crossover 9 kitaran dan 21 kitaran EMA, sambil menggabungkan tahap regresi Fibonacci untuk mengoptimumkan tempat masuk, dan meningkatkan ketepatan perdagangan melalui pemantauan status trend dalam masa nyata. Sistem ini juga mengintegrasikan mekanisme hentian hentian peratusan, mengawal risiko dengan berkesan.

Prinsip Strategi

Logik teras strategi adalah berdasarkan elemen utama berikut:

  1. Apabila EMA cepat ((9 kitaran) melintasi EMA perlahan ((21 kitaran) ke atas, sistem menghasilkan isyarat ganda
  2. Apabila EMA pantas melintasi EMA perlahan ke bawah, sistem menghasilkan isyarat kosong
  3. Dengan mengira harga tertinggi dan terendah dalam 100 kitaran, tahap Fibonacci retracement 23.6%, 38.2%, 50% dan 61.8% digambarkan
  4. Keadaan trend semasa dinilai melalui hubungan antara harga penutupan dan kedudukan EMA pantas
  5. Apabila perdagangan dijalankan, sistem secara automatik menetapkan peratusan yang tetap untuk stop loss ((4%) dan stop loss ((2%)

Kelebihan Strategik

  1. Pengesahan isyarat multidimensi: menggabungkan EMA crossover, tahap Fibonacci dan keadaan trend untuk memberikan isyarat dagangan yang lebih dipercayai
  2. Pengurusan risiko yang sempurna: Kawalan risiko automatik dengan peratusan Stop Loss yang ditetapkan
  3. Keupayaan untuk menjejaki trend: EMA menyeberang untuk menilai keadaan trend, untuk menangkap trend pasaran dengan berkesan
  4. Maklum balas visual yang jelas: menunjukkan tahap harga utama, status trend dan isyarat perdagangan dengan label untuk memudahkan keputusan perdagangan
  5. Tingkat sistematisasi yang tinggi: logik transaksi jelas, mengurangkan gangguan penilaian subjektif

Risiko Strategik

  1. Risiko pasaran bergoyang: EMA yang kerap bercampur boleh menyebabkan isyarat palsu pada peringkat penyusunan horizontal
  2. Risiko ketinggalan: Purata bergerak pada dasarnya adalah penunjuk ketinggalan, mungkin terlepas peluang masuk yang terbaik
  3. Risiko Stop Loss Tetap: Stop loss peratusan tetap mungkin tidak sesuai untuk semua keadaan pasaran
  4. Risiko pertentangan isyarat: mungkin terdapat pertentangan isyarat antara pelbagai petunjuk, meningkatkan kesukaran membuat keputusan
  5. Risiko turun naik pasaran: turun naik yang kuat boleh menyebabkan titik berhenti yang tidak munasabah

Arah pengoptimuman strategi

  1. Optimasi hentian dinamik: jarak hentian boleh disesuaikan secara dinamik mengikut ATR atau kadar turun naik pasaran
  2. Penguatan penapisan isyarat: meningkatkan jumlah lalu lintas, kuasa dan lain-lain untuk menapis isyarat palsu
  3. Parameter penyesuaian diri: memperkenalkan mekanisme penyesuaian diri, menyesuaikan kitaran EMA mengikut keadaan pasaran yang dinamik
  4. Pengoptimuman kemasukan: pengoptimuman kemasukan berhampiran tahap Fibonacci dengan menggabungkan bentuk harga dan jumlah urus niaga
  5. Pengurusan kedudukan yang sempurna: Sistem pengurusan kedudukan dinamik yang direka berdasarkan kadar turun naik dan risiko akaun

ringkaskan

Strategi ini membina sistem perdagangan yang lebih lengkap dengan mengintegrasikan beberapa alat analisis teknikal klasik. Kelebihannya adalah kepelbagaian pengesahan isyarat dan pengaturcaraan pengurusan risiko, tetapi masih memerlukan pengoptimuman untuk keadaan pasaran yang berbeza.

Kod sumber strategi
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/

//@version=5
strategy("EMA Cross Strategy with TP, SL, Fibonacci Levels, and Trend", overlay=true)

// Input for stop loss and take profit percentages
stopLossPercentage = input.int(2, title="Stop Loss (%)") // Stop loss percentage
takeProfitPercentage = input.int(4, title="Take Profit (%)") // Take profit percentage

// EMA Length Inputs
fastEMALength = input.int(9, title="Fast EMA Length")
slowEMALength = input.int(21, title="Slow EMA Length")

// Compute EMAs
fastEMA = ta.ema(close, fastEMALength)
slowEMA = ta.ema(close, slowEMALength)

// Entry conditions for EMA crossover
longCondition = ta.crossover(fastEMA, slowEMA)  // EMA 9 crosses above EMA 21
shortCondition = ta.crossunder(fastEMA, slowEMA) // EMA 9 crosses below EMA 21

// Plot EMAs
plot(fastEMA, color=color.blue, title="Fast EMA (9)")
plot(slowEMA, color=color.red, title="Slow EMA (21)")

// Fibonacci Retracement Levels
lookback = input.int(100, title="Lookback Period for Fibonacci Levels")
highLevel = ta.highest(high, lookback)
lowLevel = ta.lowest(low, lookback)

fib236 = lowLevel + (highLevel - lowLevel) * 0.236
fib382 = lowLevel + (highLevel - lowLevel) * 0.382
fib50 = lowLevel + (highLevel - lowLevel) * 0.5
fib618 = lowLevel + (highLevel - lowLevel) * 0.618

// Display Fibonacci levels (Left of the candle near price)
label.new(bar_index, fib236, text="Fib 23.6%: " + str.tostring(fib236, "#.##"), style=label.style_label_left, color=color.purple, textcolor=color.white, size=size.small)
label.new(bar_index, fib382, text="Fib 38.2%: " + str.tostring(fib382, "#.##"), style=label.style_label_left, color=color.blue, textcolor=color.white, size=size.small)
label.new(bar_index, fib50, text="Fib 50%: " + str.tostring(fib50, "#.##"), style=label.style_label_left, color=color.green, textcolor=color.white, size=size.small)
label.new(bar_index, fib618, text="Fib 61.8%: " + str.tostring(fib618, "#.##"), style=label.style_label_left, color=color.red, textcolor=color.white, size=size.small)

// Trend condition: Price uptrend or downtrend
trendCondition = close > fastEMA ? "Uptrending" : close < fastEMA ? "Downtrending" : "Neutral"

// Display Trend Status (Left of candle near price)
var label trendLabel = na
if (not na(trendLabel))
    label.delete(trendLabel)
trendLabel := label.new(bar_index, close, text="Trend: " + trendCondition, style=label.style_label_left, color=color.blue, textcolor=color.white, size=size.small)

// Buy and Sell orders with Stop Loss and Take Profit
if (longCondition)
    stopLossLevel = close * (1 - stopLossPercentage / 100)
    takeProfitLevel = close * (1 + takeProfitPercentage / 100)
    strategy.entry("BUY", strategy.long)
    strategy.exit("Sell", "BUY", stop=stopLossLevel, limit=takeProfitLevel)
    
    // Display TP, SL, and Buy label (Left of candle near price)
    label.new(bar_index, takeProfitLevel, text="TP\n" + str.tostring(takeProfitLevel, "#.##"), style=label.style_label_left, color=color.green, textcolor=color.white, size=size.small)
    label.new(bar_index, stopLossLevel, text="SL\n" + str.tostring(stopLossLevel, "#.##"), style=label.style_label_left, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, close, text="BUY\n" + str.tostring(close, "#.##"), style=label.style_label_left, color=color.blue, textcolor=color.white, size=size.small)

if (shortCondition)
    stopLossLevel = close * (1 + stopLossPercentage / 100)
    takeProfitLevel = close * (1 - takeProfitPercentage / 100)
    strategy.entry("SELL", strategy.short)
    strategy.exit("Cover", "SELL", stop=stopLossLevel, limit=takeProfitLevel)
    
    // Display TP, SL, and Sell label (Left of candle near price)
    label.new(bar_index, takeProfitLevel, text="TP\n" + str.tostring(takeProfitLevel, "#.##"), style=label.style_label_left, color=color.green, textcolor=color.white, size=size.small)
    label.new(bar_index, stopLossLevel, text="SL\n" + str.tostring(stopLossLevel, "#.##"), style=label.style_label_left, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, close, text="SELL\n" + str.tostring(close, "#.##"), style=label.style_label_left, color=color.orange, textcolor=color.white, size=size.small)

// Plot Buy/Sell Signals
plotshape(series=longCondition, title="BUY Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="SELL Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")