Sumber dimuat naik... memuat...

Strategi perdagangan silang purata bergerak berganda dengan mengambil keuntungan dinamik dan berhenti kerugian

Penulis:ChaoZhang, Tarikh: 2024-06-21 14:02:56
Tag:SMATPSL

img

Ringkasan

Strategi ini adalah sistem perdagangan automatik berdasarkan crossover Purata Bergerak Sederhana (SMA), digabungkan dengan mekanisme mengambil keuntungan dan menghentikan kerugian dinamik. Ia menggunakan dua SMA dari tempoh yang berbeza untuk menjana isyarat beli dan jual melalui crossover mereka. Di samping itu, strategi menetapkan tahap mengambil keuntungan dan menghentikan kerugian berasaskan peratusan untuk mengawal risiko dan mengunci keuntungan.

Prinsip Strategi

  1. Menggunakan dua SMA: jangka pendek (50 tempoh) dan jangka panjang (100-periode).
  2. Menghasilkan isyarat beli apabila SMA jangka pendek melintasi di atas SMA jangka panjang; Menghasilkan isyarat jual apabila SMA jangka pendek melintasi di bawah SMA jangka panjang.
  3. Mengira tahap mengambil keuntungan dan stop-loss berdasarkan harga semasa dan peratusan yang telah ditetapkan untuk setiap kemasukan perdagangan.
  4. Menutup kedudukan secara automatik apabila harga mencapai tahap mengambil keuntungan atau stop-loss.
  5. Tanda membeli dan menjual isyarat pada carta dan plot mengambil keuntungan dan hentikan kerugian garis tahap.

Kelebihan Strategi

  1. Mudah difahami: Persalinan purata bergerak berganda adalah kaedah analisis teknikal klasik, mudah difahami dan dilaksanakan.
  2. Mengikuti trend: Mampu menangkap trend jangka sederhana hingga panjang, yang bermanfaat untuk mendapat keuntungan daripada pergerakan pasaran yang signifikan.
  3. Pengurusan risiko: Mengendalikan risiko untuk setiap perdagangan dengan berkesan melalui penetapan dinamik tahap mengambil keuntungan dan stop-loss.
  4. Automasi: Diluluskan sepenuhnya oleh program, mengurangkan campur tangan manusia dan pengaruh emosi.
  5. Visualisasi: Tanda dengan jelas isyarat perdagangan dan tahap harga utama pada carta, memudahkan analisis dan pengujian belakang.

Risiko Strategi

  1. Tidak sesuai untuk pasaran yang berbeza: Boleh menghasilkan isyarat palsu yang kerap di pasaran sampingan, yang membawa kepada kerugian berturut-turut.
  2. Lag: SMA secara semula jadi mempunyai lag, berpotensi kehilangan titik masuk yang optimum atau menunda keluar.
  3. Risiko peratusan tetap: Menggunakan keuntungan peratusan tetap dan stop-loss mungkin tidak sesuai untuk semua keadaan pasaran.
  4. Kekurangan penunjuk pengesahan tambahan: Bergantung hanya pada persilangan purata bergerak mungkin mengabaikan maklumat pasaran penting yang lain.
  5. Tidak mengambil kira kos dagangan: Dagangan yang kerap boleh menghasilkan kos transaksi yang besar, yang mempengaruhi pulangan akhir.

Arahan Pengoptimuman Strategi

  1. Memperkenalkan penapis: Tambah jumlah, turun naik, atau penunjuk teknikal lain sebagai keadaan penapis untuk mengurangkan isyarat palsu.
  2. Penyesuaian dinamik tempoh SMA: Sesuaikan panjang SMA secara automatik berdasarkan turun naik pasaran untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza.
  3. Mengoptimumkan keuntungan dan hentian kerugian: Pertimbangkan untuk menggunakan ATR (Rentang Benar Purata) untuk menetapkan tahap keuntungan dan hentian kerugian dinamik untuk menyesuaikan diri dengan lebih baik dengan turun naik pasaran.
  4. Meningkatkan pengesahan trend: Memasukkan penunjuk trend lain seperti MACD atau ADX untuk meningkatkan kebolehpercayaan isyarat perdagangan.
  5. Melaksanakan saiz kedudukan: Sesuaikan saiz setiap perdagangan secara dinamik berdasarkan saiz akaun dan turun naik pasaran.
  6. Penapisan masa: Tambah sekatan jendela masa dagangan untuk mengelakkan tempoh turun naik yang tinggi atau kecairan yang rendah.
  7. Kawalan pengeluaran: Tambah had pengeluaran maksimum untuk menghentikan perdagangan apabila kerugian berturut-turut mencapai tahap tertentu.

Kesimpulan

Strategi perdagangan crossover purata bergerak berganda ini menyediakan kerangka kerja yang mudah namun berkesan yang sesuai untuk pemula yang memasuki perdagangan automatik. Ia menggabungkan unsur-unsur trend berikut dan pengurusan risiko dengan menetapkan tahap keuntungan dan stop-loss secara dinamik untuk melindungi modal. Walau bagaimanapun, untuk mencapai hasil yang lebih baik dalam perdagangan sebenar, pengoptimuman dan penyempurnaan yang lebih lanjut diperlukan. Pertimbangkan untuk menambah lebih banyak penunjuk teknikal sebagai penapis, mengoptimumkan kaedah untuk menetapkan tahap keuntungan dan stop-loss, dan memperkenalkan strategi pengurusan kedudukan yang lebih canggih. Pada masa yang sama, pengujian balik dan pengesahan menyeluruh di pelbagai persekitaran pasaran dan jangka masa adalah penting. Melalui peningkatan berterusan dan penyesuaian dengan perubahan pasaran, strategi ini berpotensi menjadi sistem perdagangan yang boleh dipercayai.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Pubgentleman

//@version=5
//@version=5
strategy("TSLA 1-Hour SMA Crossover Strategy with Buy/Sell Signals", overlay=true)

// Parameters
shortSmaLength = input.int(50, title="Short SMA Length")
longSmaLength = input.int(100, title="Long SMA Length")
takeProfitPerc = input.float(5.0, title="Take Profit Percentage", step=0.1) // 5.0% take profit
stopLossPerc = input.float(3.0, title="Stop Loss Percentage", step=0.1) // 3.0% stop loss

// Calculate SMAs
shortSma = ta.sma(close, shortSmaLength)
longSma = ta.sma(close, longSmaLength)

// Plot SMAs
plot(shortSma, color=color.blue, title="Short SMA")
plot(longSma, color=color.red, title="Long SMA")

// Entry Conditions
longCondition = ta.crossover(shortSma, longSma)
shortCondition = ta.crossunder(shortSma, longSma)

// Trade Management
var float entryPrice = na
var float takeProfitLevel = na
var float stopLossLevel = na

if (longCondition)
    entryPrice := close
    takeProfitLevel := entryPrice * (1 + takeProfitPerc / 100)
    stopLossLevel := entryPrice * (1 - stopLossPerc / 100)
    strategy.entry("Long", strategy.long)
    label.new(x=bar_index, y=low, text="Buy", style=label.style_label_up, color=color.green, textcolor=color.white)

if (shortCondition)
    entryPrice := close
    takeProfitLevel := entryPrice * (1 - takeProfitPerc / 100)
    stopLossLevel := entryPrice * (1 + stopLossPerc / 100)
    strategy.entry("Short", strategy.short)
    label.new(x=bar_index, y=high, text="Sell", style=label.style_label_down, color=color.red, textcolor=color.white)

// Exit Conditions
if (strategy.position_size > 0)
    if (close >= takeProfitLevel or close <= stopLossLevel)
        strategy.close("Long")

if (strategy.position_size < 0)
    if (close <= takeProfitLevel or close >= stopLossLevel)
        strategy.close("Short")

// Plot Take Profit and Stop Loss Levels
plot(strategy.position_size > 0 ? takeProfitLevel : na, title="Take Profit Level", color=color.green, style=plot.style_stepline)
plot(strategy.position_size > 0 ? stopLossLevel : na, title="Stop Loss Level", color=color.red, style=plot.style_stepline)
plot(strategy.position_size < 0 ? takeProfitLevel : na, title="Take Profit Level (Short)", color=color.green, style=plot.style_stepline)
plot(strategy.position_size < 0 ? stopLossLevel : na, title="Stop Loss Level (Short)", color=color.red, style=plot.style_stepline)

Berkaitan

Lebih lanjut