Strategi Perdagangan Breakout Saluran Rata-rata Bergerak


Tanggal Pembuatan: 2024-01-29 14:31:25 Akhirnya memodifikasi: 2024-01-29 14:31:25
menyalin: 0 Jumlah klik: 369
1
fokus pada
1226
Pengikut

Strategi Perdagangan Breakout Saluran Rata-rata Bergerak

Ringkasan

Strategi ini didasarkan pada prinsip mata uang yang bergerak sederhana, membuat keputusan pembelian dan penjualan melalui persilangan garis rata-rata 7 hari dan garis rata-rata 14 hari. Sinyal beli dikirim ketika garis rata-rata 7 hari menerobos garis rata-rata 14 hari dari bawah; Sinyal jual dikirim ketika garis rata-rata 7 hari dari atas ke bawah. Strategi ini memiliki fungsi stop loss, stop loss dan tracking stop loss untuk mengunci keuntungan dan mengendalikan risiko.

Prinsip Strategi

Logika perdagangan inti dari strategi ini didasarkan pada prinsip silang antara 7 hari rata-rata dan 14 hari rata-rata. Tren jangka pendek dari harga reaksi rata-rata 7 hari, tren jangka menengah dari harga reaksi rata-rata 14 hari.

Secara khusus, strategi ini menggunakan indikator SMA untuk menghitung rata-rata bergerak sederhana pada hari ke-7 dan ke-14. Setelah setiap garis K terbentuk, bandingkan hubungan ukuran antara garis ke-7 dan garis ke-14 saat ini. Jika garis ke-7 melewati garis ke-14, maka akan ada sinyal plus untuk masuk posisi panjang; Jika garis ke-7 melewati garis ke-14 di bawahnya, maka akan ada sinyal kosong untuk masuk posisi pendek.

Selain itu, strategi juga mengatur stop loss, stop-loss dan tracking stop loss untuk mengunci keuntungan dan mengendalikan risiko. Parameter spesifik dapat dioptimalkan berdasarkan hasil pengukuran ulang.

Keunggulan Strategis

Strategi ini memiliki keuntungan sebagai berikut:

  1. Peraturan yang sederhana, jelas, mudah dipahami, dan cocok untuk pemula;
  2. Prinsip persilangan rata-rata berjalan dengan baik, dan tingkat kemenangan yang lebih tinggi;
  3. Dilengkapi dengan Stop Loss, Stop Stop dan Trace Stop yang dapat mengontrol risiko secara efektif;
  4. Parameter yang lebih sedikit, mudah untuk diuji dan dioptimalkan.

Risiko dan Pengendalian

Strategi ini juga memiliki beberapa risiko:

  1. Ketika terjadi pergeseran tren, sinyal persimpangan rata-rata akan terlambat, tidak dapat bereaksi tepat waktu terhadap pergeseran tren, dan dapat menyebabkan kerugian yang lebih besar;
  2. Dalam pasar horizontal yang serius, sinyal persilangan rata-rata sering terjadi, yang akan menghasilkan lebih banyak sinyal palsu yang mempengaruhi efektivitas strategi.

Untuk mengatasi risiko di atas, langkah-langkah berikut dapat dipertimbangkan:

  1. Dalam kombinasi dengan indikator lain yang memfilter sinyal persilangan rata-rata, seperti MACD, KDJ, dan lain-lain, untuk menghindari kesalahan sinyal pada titik-titik perubahan tren;
  2. Meningkatkan stop loss margin dan mempersingkat periode kepemilikan untuk mengurangi dampak kerugian tunggal;
  3. Mengoptimalkan parameter garis rata-rata sesuai dengan situasi pasar yang berbeda, meningkatkan siklus garis rata-rata dengan tepat di pasar horizontal, mengurangi frekuensi sinyal silang.

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Uji kombinasi dan parameter garis rata yang berbeda untuk menemukan parameter optimal;
  2. Menambahkan indikator lain untuk memfilter sinyal dan meningkatkan efektivitas strategi;
  3. Mengoptimalkan parameter stop loss, stop loss, mengurangi penarikan, dan meningkatkan tingkat pengembalian;
  4. Parameter disesuaikan dengan varietas dan periode perdagangan.

Meringkaskan

Strategi ini secara keseluruhan sangat cocok untuk belajar pemula, prinsipnya sederhana, mudah dipahami dan diterapkan. Selain itu, juga memiliki adaptasi pasar yang baik, ruang yang lebih besar untuk menyesuaikan dan mengoptimalkan parameter, dan diharapkan untuk mendapatkan keuntungan yang stabil. Layak digunakan oleh pemula Quantitative Trading untuk memulai dan belajar.

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

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © bensonsuntw

strategy("Strategy Template[Benson]", pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

backtest_year = input(2019, type=input.integer, title='backtest_year')
backtest_month = input(01, type=input.integer, title='backtest_month', minval=1, maxval=12)
backtest_day = input(01, type=input.integer, title='backtest_day', minval=1, maxval=31)
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)
stop_loss_and_tp = input(title="Enable Stop Loss and Take Profit", type=input.bool, defval=true)
trail_stop = input(title="Enable Trail Stop", type=input.bool, defval=true)
buy_stop_loss = input(0.2, type=input.float, title='buy_stop_loss')
sell_stop_loss = input(0.1, type=input.float, title='sell_stop_loss')
buy_tp = input(0.4, type=input.float, title='buy_tp')
sell_tp =input(0.2, type=input.float, title='sell_tp')
trail_stop_long = input(1.1, type=input.float, title='trail_stop_long')
trail_stop_short = input(0.9, type=input.float, title='trail_stop_short')
trail_stop_long_offset = input(0.05, type=input.float, title='trail_stop_long_offset')
trail_stop_short_offset = input(0.05, type=input.float, title='trail_stop_short_offset')


// you can set your own logic here
shortCondition = crossunder(sma(close,7),sma(close,14))
longCondition = crossover(sma(close,7),sma(close,14))

strategy.entry("Buy", strategy.long, when=longCondition  )
strategy.close("Buy", when=shortCondition)
strategy.exit("Close Buy","Buy", limit= stop_loss_and_tp?strategy.position_avg_price * (1+buy_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1-buy_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_long:na,trail_offset=trail_stop?-strategy.position_avg_price *trail_stop_long_offset:na)

strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition)
strategy.exit("Close Sell","Sell", limit= stop_loss_and_tp?strategy.position_avg_price * (1-sell_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1+sell_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_short:na,trail_offset=trail_stop?strategy.position_avg_price *trail_stop_short_offset:na)


net_profit = strategy.netprofit + strategy.openprofit

plot(net_profit, title="Net Profit", linewidth=2, style=plot.style_area, transp=50, color=net_profit >= 0 ? #26A69A : color.red)