Strategi Perdagangan Breakout Berdasarkan Rata-rata Pergerakan


Tanggal Pembuatan: 2023-11-28 13:50:49 Akhirnya memodifikasi: 2023-11-28 13:50:49
menyalin: 2 Jumlah klik: 697
1
fokus pada
1617
Pengikut

Strategi Perdagangan Breakout Berdasarkan Rata-rata Pergerakan

Ringkasan

Ini adalah strategi perdagangan breakout berdasarkan moving average. Ini menghasilkan sinyal perdagangan ketika harga melewati rata-rata dengan menghitung harga rata-rata untuk periode tertentu sebagai rata-rata.

Prinsip Strategi

Strategi ini didasarkan pada indikator Moving Average. Ini menggunakan fungsi sma untuk menghitung harga tutup rata-rata dalam periode tertentu dan mendapatkan Moving Average. Ini menghasilkan sinyal beli ketika harga tutup terbaru melintasi Moving Average dari bawah ke atas; Ini menghasilkan sinyal jual ketika penutupan terbaru melintasi Moving Average dari atas ke bawah.

Secara khusus, ia mendefinisikan dalam strategi sumber penghitungan rata-rata bergerak (harga penutupan terbaru) dan panjang siklus, dan mendapatkan urutan data rata-rata bergerak. Kemudian ia menetapkan dua kondisi: membuat pesanan beli ketika harga melewati rata-rata di atas; membuat pesanan jual ketika harga melewati rata-rata di bawah. Setelah pesanan dibuat, ia juga menetapkan stop loss: posisi yang kosong sebagian ketika pesanan mencapai keuntungan proporsi yang ditetapkan, dan seluruh posisi yang kosong ketika pesanan mencapai harga stop atau stop loss yang ditetapkan.

Analisis Keunggulan

Ini adalah strategi pelacakan tren yang sederhana dan praktis. Ini memiliki beberapa keuntungan:

  1. Berpikir jernih, mudah dimengerti dan menyesuaikan parameter.
  2. Moving Average adalah indikator teknis yang umum digunakan dan dapat diandalkan untuk menyaring kebisingan pasar dan mengidentifikasi tren.
  3. Anda juga dapat mengatur stop loss, mengunci sebagian keuntungan, dan mengontrol risiko.
  4. Hanya perlu parameter sederhana untuk menjalankan, dan ini berlaku untuk entri kuantitatif.

Analisis risiko

Meskipun ada banyak keuntungan dari strategi ini, ada beberapa risiko:

  1. Garis rata-rata bergerak mudah mengalami lag dan mungkin akan melewatkan pembalikan jangka pendek.
  2. Tidak mempertimbangkan lingkungan yang luas, mudah dipenjarakan.
  3. Tidak ada optimasi parameter, parameter yang tidak tepat akan mempengaruhi kinerja kebijakan.
  4. Tidak ada penyaringan dengan indikator lain, dan ada tingkat kesalahan.

Untuk mengontrol risiko ini, kita dapat mengoptimalkan penyaringan dengan indikator lain, memasukkan penilaian tren jangka pendek dalam skala besar, atau menggunakan metode pembelajaran mesin untuk menemukan kombinasi parameter terbaik.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Menambahkan penilaian indikator teknis lainnya, membentuk sistem perdagangan, meningkatkan peluang strategi. Misalnya, menambahkan indikator penilaian tambahan seperti MACD, KD.

  2. Masukkan mekanisme stop loss. Gunakan tracking stop loss atau time stop loss untuk mengunci keuntungan dan menghindari kerugian.

  3. Optimalkan parameter. Ubah parameter periodik dari rata-rata bergerak untuk menemukan kombinasi parameter yang optimal. Juga dapat menguji berbagai jenis rata-rata bergerak.

  4. Meningkatkan penilaian pembelajaran mesin. Menggunakan algoritma hutan acak, LSTM dan lain-lain untuk menentukan arah tren.

  5. Mengoptimalkan masuk dan keluar logika. Mengatur kondisi penyaringan tren, menghindari operasi terbalik pada akhir tren. Pertimbangkan untuk menggunakan batch playout logika.

Meringkaskan

Strategi Mobile Equilibrium Breakthrough ini secara keseluruhan sangat cocok sebagai strategi awal untuk perdagangan kuantitatif. Idealnya sederhana, mudah dipahami dan dioperasikan, dan memiliki efek nyata. Pada saat yang sama, ada banyak ruang untuk pengujian dan pengoptimalan selanjutnya.

Kode Sumber Strategi
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-22 08:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//  |-- Initialize Strategy Parameters:
strategy( 
     // |-- Strategy Title.
     title='[Tutorial][RS]Working with orders', 
     // |-- if shorttitle is specified, it will overwrite the name on the chart window.
     shorttitle='WwO', 
     // |-- if true it overlays current chart window, otherwise it creates a drawer to display plotting outputs.
     overlay=true, 
     // |-- Strategy unit type for default quantity, possible arguments: (strategy.cash, strategy.fixed, strategy.percent_of_equity)
     default_qty_type=strategy.cash, 
     // |-- Value to use for default trade size
     default_qty_value=1000, 
     // |-- Default Account size 
     initial_capital=100000, 
     // |-- Account Currency parameter
     currency=currency.USD
     )

//  |-- Strategy Profit/loss parameters:
profit = input(defval=5000, title='Take Profit')
loss = input(defval=5000, title='Stop Loss')
ratio = input(defval=2.0, title='Ratio at wich to take out a percentage off the table (take profit / ratio).')
percent = input(defval=50.0, title='Percentage of position to take profit.')
//  |-- Signal Parameters:
//  |
//  |-- Moving Average input source and length parameters.
src = input(defval=close)
length = input(defval=100)
//  |-- Moving Average Data series.
ma = sma(src, length)

//  |-- Condition for triggering a buy(long) order(trade).
if crossover(src, ma)
    //  |-- Create the order.
    strategy.order(id='Buy', long=true)
    //  |-- Issue a exit order to close a percentage of the trade when a specified ratio(take profit / ratio) is reached.
    strategy.exit(id='Buy Half Exit', from_entry='Buy', qty_percent=percent, profit=profit/ratio)
    //  |-- Issue a exit order to close the full position, when take profit or stop loss's are reached.
    strategy.exit(id='Buy Full Exit', from_entry='Buy', qty_percent=100, profit=profit, loss=loss)
if crossunder(src, ma)
    //  |-- Create the order.
    strategy.order(id='Sell', long=false)
    //  |-- Issue a exit order to close a percentage of the trade when a specified ratio(take profit / ratio) is reached.
    strategy.exit(id='Sell Half Exit', from_entry='Sell', qty_percent=percent, profit=profit/ratio)
    //  |-- Issue a exit order to close the full position, when take profit or stop loss's are reached.
    strategy.exit(id='Sell Full Exit', from_entry='Sell Half Exit', qty_percent=100, profit=profit, loss=loss)

//  |-- Output Functions.
plot(series=ma, title='MA', color=black)