Strategi Mengikuti Trend Persilangan Purata Pergerakan

MA EMA SMA CROSSOVER
Tarikh penciptaan: 2025-02-24 10:15:28 Akhirnya diubah suai: 2025-02-24 10:15:28
Salin: 0 Bilangan klik: 423
2
fokus pada
319
Pengikut

Strategi Mengikuti Trend Persilangan Purata Pergerakan Strategi Mengikuti Trend Persilangan Purata Pergerakan

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan berasaskan persilangan purata bergerak, menyokong kedua-dua jenis purata bergerak EMA dan SMA, dan menyediakan parameter yang dioptimumkan untuk pelbagai tempoh masa seperti 1 jam, 4 jam, garis harian, garis pusingan, dan garis dua. Sistem ini menghasilkan isyarat perdagangan dengan persilangan purata bergerak cepat dan perlahan, dan memberikan pengisian ruang harga visual.

Prinsip Strategi

Inti strategi ini adalah untuk mengenal pasti perubahan trend yang berpotensi dengan memantau persilangan rata-rata bergerak cepat dan perlahan. Apabila rata-rata bergerak cepat ke atas melintasi rata-rata bergerak perlahan, ia menghasilkan isyarat melakukan banyak; apabila rata-rata bergerak cepat ke bawah melintasi rata-rata bergerak perlahan, ia menghasilkan isyarat kosong.

Kelebihan Strategik

  1. Sains pengoptimuman parameter: menyediakan kombinasi parameter yang dioptimumkan untuk tempoh masa yang berbeza dengan mengoptimumkan data sejarah
  2. Fleksibel: menyokong tetapan parameter tersuai, panjang dan jenis purata bergerak boleh disesuaikan dengan keadaan pasaran
  3. Intuisi visual: Trend kosong dipisahkan dengan warna, isyarat perdagangan jelas kelihatan
  4. Kebolehgunaan pelbagai kitaran: menyediakan tetapan parameter yang dioptimumkan secara khusus untuk tempoh masa yang berbeza
  5. Paparan maklumat lengkap: paparan seting dan parameter dasar semasa dalam masa nyata melalui panel maklumat

Risiko Strategik

  1. Risiko keterbelakangan: Rata-rata bergerak pada dasarnya adalah penunjuk keterbelakangan, yang mungkin menyebabkan kelewatan ketika pasaran berubah-ubah dengan cepat
  2. Tidak berlaku untuk pasaran bergolak: Dalam keadaan bergolak horizontal, isyarat silang yang kerap boleh menyebabkan kerugian berturut-turut
  3. Kepercayaan parameter: Walaupun parameter pengoptimuman disediakan, ia mungkin perlu disesuaikan dengan keadaan sebenar di pasaran
  4. Perubahan keadaan pasaran: Parameter yang dioptimumkan berdasarkan data sejarah mungkin tidak berfungsi apabila keadaan pasaran berubah pada masa akan datang

Arah pengoptimuman strategi

  1. Menambah penapis trend: Indikator trend seperti ADX boleh ditambahkan, dan isyarat perdagangan hanya dijalankan apabila trend kuat
  2. Memperkenalkan penyesuaian kadar turun naik: parameter purata bergerak yang disesuaikan secara dinamik dengan kadar turun naik pasaran
  3. Mekanisme hentian yang dioptimumkan: boleh digabungkan dengan kedudukan hentian dinamik ATR
  4. Peningkatan pengesahan jumlah transaksi: Menambah kebolehpercayaan isyarat dengan menambah analisis jumlah transaksi semasa isyarat dihasilkan
  5. Membangunkan parameter penyesuaian: Penyelidikan dan pembangunan sistem parameter yang dapat menyesuaikan secara automatik mengikut keadaan pasaran

ringkaskan

Ini adalah strategi lintas rata-rata bergerak yang dioptimumkan dengan ketat untuk beberapa tempoh masa. Strategi ini menyediakan pedagang dengan alat trend yang boleh dipercayai melalui pengoptimuman parameter saintifik dan pilihan konfigurasi yang fleksibel. Walaupun terdapat beberapa risiko yang wujud, strategi ini dapat meningkatkan kestabilan dan kebolehpercayaan dengan arah pengoptimuman yang disyorkan.

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

//@version=5
strategy("MA Crossover [ClémentCrypto]", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=20, initial_capital=10000,process_orders_on_close=true)

// Groupe pour le choix entre preset et personnalisé
usePreset = input.bool(title="Utiliser Preset", defval=true, group="Mode Selection")

// Inputs pour la stratégie
timeframeChoice = input.string(title="Timeframe Preset", defval="1H", options=["1H", "4H", "1D", "1W", "2W"], group="Preset Settings")
tradeDirection = input.string(title="Trading Direction", defval="Long Only", options=["Long Only", "Short Only", "Both Directions"], group="Strategy Settings")

// Paramètres personnalisés MA
customFastLength = input.int(title="Custom Fast MA Length", defval=23, minval=1, group="Custom MA Settings")
customSlowLength = input.int(title="Custom Slow MA Length", defval=395, minval=1, group="Custom MA Settings")
customMAType = input.string(title="Custom MA Type", defval="EMA", options=["SMA", "EMA"], group="Custom MA Settings")

// Paramètres MA optimisés pour chaque timeframe
var int fastLength = 0
var int slowLength = 0
var string maType = ""

if usePreset
    if timeframeChoice == "1H"
        fastLength := 23
        slowLength := 395
        maType := "EMA"
    else if timeframeChoice == "4H"
        fastLength := 41
        slowLength := 263
        maType := "SMA"
    else if timeframeChoice == "1D"
        fastLength := 8
        slowLength := 44
        maType := "SMA"
    else if timeframeChoice == "1W"
        fastLength := 32
        slowLength := 38
        maType := "SMA"
    else if timeframeChoice == "2W"
        fastLength := 17
        slowLength := 20
        maType := "SMA"
else
    fastLength := customFastLength
    slowLength := customSlowLength
    maType := customMAType

// Calcul des moyennes mobiles
fastMA = maType == "SMA" ? ta.sma(close, fastLength) : ta.ema(close, fastLength)
slowMA = maType == "SMA" ? ta.sma(close, slowLength) : ta.ema(close, slowLength)

// Conditions de trading simplifiées
longEntier = ta.crossover(fastMA, slowMA)
longExit = ta.crossunder(fastMA, slowMA)
shortEntier = ta.crossunder(fastMA, slowMA)
shortExit = ta.crossover(fastMA, slowMA)

// Définition des couleurs
var BULL_COLOR = color.new(#00ff9f, 20)
var BEAR_COLOR = color.new(#ff0062, 20)
var BULL_COLOR_LIGHT = color.new(#00ff9f, 90)
var BEAR_COLOR_LIGHT = color.new(#ff0062, 90)

// Couleurs des lignes MA
fastMAColor = fastMA > slowMA ? BULL_COLOR : BEAR_COLOR
slowMAColor = color.new(#FF6D00, 60)

// Gestion des positions
if tradeDirection == "Long Only"
    if (longEntier)
        strategy.entry("Long", strategy.long)
    if (longExit)
        strategy.close("Long")
        
else if tradeDirection == "Short Only"
    if (shortEntier)
        strategy.entry("Short", strategy.short)
    if (shortExit)
        strategy.close("Short")
        
else if tradeDirection == "Both Directions"
    if (longEntier)
        strategy.entry("Long", strategy.long)
    if (longExit)
        strategy.close("Long")
    if (shortEntier)
        strategy.entry("Short", strategy.short)
    if (shortExit)
        strategy.close("Short")

// Plots
var fastMAplot = plot(fastMA, "Fast MA", color=fastMAColor, linewidth=2)
var slowMAplot = plot(slowMA, "Slow MA", color=slowMAColor, linewidth=1)
fill(fastMAplot, slowMAplot, color=fastMA > slowMA ? BULL_COLOR_LIGHT : BEAR_COLOR_LIGHT)



// Barres colorées
barcolor(fastMA > slowMA ? color.new(BULL_COLOR, 90) : color.new(BEAR_COLOR, 90))