Strategi Perdagangan Keuntungan yang Dinamis

Penulis:ChaoZhang, Tanggal: 2024-02-27 14:43:17
Tag:

img

Gambaran umum

Artikel ini terutama memperkenalkan strategi perdagangan kuantitatif yang disebut Dynamic Trailing Take Profit Trading Strategy. Strategi ini menetapkan garis keuntungan yang dinamis berdasarkan indikator ATR untuk mewujudkan keuntungan cepat dengan mengambil dalam 1-2 lilin setelah pergerakan harga yang menguntungkan tiba-tiba, menghindari kerugian ketika harga berbalik lagi.

Prinsip-prinsip

Logika perdagangan dari strategi ini sangat sederhana dan jelas. Secara khusus mencakup langkah-langkah berikut:

  1. Gunakan crossover SMA 14 periode dan SMA 28 periode sebagai sinyal untuk panjang dan pendek. Ketika SMA 14 periode naik di atas SMA 28 periode, pergi panjang. Ketika SMA 14 periode turun di bawah SMA 28 periode, pergi pendek.

  2. Menghitung indikator ATR dan mengalikannya dengan faktor untuk mendapatkan posisi take profit dinamis. misalnya, mengatur panjang ATR menjadi 7, pengganda menjadi 1,5, maka lebar saluran take profit dinamis adalah 1,5 kali 7-periode ATR.

  3. Ketika arah posisi panjang, tambahkan harga tinggi dan lebar saluran take profit dinamis untuk mendapatkan garis take profit panjang. Ketika arah posisi pendek, kurangi lebar saluran take profit dinamis dari harga rendah untuk mendapatkan garis take profit pendek.

  4. Setelah harga melebihi garis take profit dinamis ini, take profit untuk keluar segera.

Melalui langkah-langkah di atas, strategi ini mencapai efek profit trailing yang sederhana namun efisien dan pengambilan keuntungan yang cepat. Saluran ATR menyediakan kemampuan penyesuaian dinamis untuk garis take profit, sementara kondisi 1 bar yang baru ditambahkan memastikan bahwa garis take profit hanya dipicu dalam kondisi pasar yang menguntungkan tiba-tiba. Ini dapat secara efektif mengurangi keluar dini karena mengambil keuntungan.

Keuntungan

Strategi Dynamic Trailing Take Profit Trading memiliki keuntungan berikut:

  1. Idenya sederhana dan jelas, mudah dimengerti dan diterapkan, cocok untuk pemula untuk belajar.

  2. Dinamis ATR mengambil keuntungan dapat secara otomatis melacak keuntungan dan menghindari meninggalkan keuntungan di atas meja.

  3. Menambahkan 1 bar kondisi tinggi / rendah mencegah mengambil keuntungan dari memicu pada gerakan yang lebih kecil.

  4. Panjang ATR dan pengganda dapat disesuaikan untuk menyesuaikan tingkat pengambilan keuntungan.

  5. Dapat keluar dengan cepat untuk menangkap pergerakan harga yang menguntungkan.

  6. Sangat dapat diperluas, mudah untuk menerapkan strategi stop loss/take profit lainnya berdasarkan kerangka kerja ini.

Analisis Risiko

Ada juga beberapa risiko dengan strategi ini:

  1. Ekspansi ATR tiba-tiba dapat menyebabkan keluarnya keuntungan awal.

  2. Tidak dapat secara efektif menyaring kebisingan pasar, rentan terhadap sinyal palsu.

  3. Hanya mengandalkan SMA crossover untuk pengambilan keputusan, tidak efektif untuk situasi pasar yang kompleks.

  4. Tidak ada mekanisme stop loss untuk membatasi kerugian secara efektif.

  5. Parameter default mungkin tidak cocok untuk semua produk, perlu optimasi.

Untuk mengurangi risiko di atas, kita dapat mengoptimalkan dari aspek berikut:

  1. Tambahkan aturan filter berdasarkan indikator lain untuk menghilangkan sinyal palsu.

  2. Tambahkan strategi stop loss untuk mengontrol kerugian secara ketat per perdagangan.

  3. Mengoptimalkan parameter menggunakan Walk Forward Analysis.

  4. Secara terpisah mengoptimalkan parameter untuk produk yang berbeda.

  5. Meningkatkan model pembelajaran mesin untuk keputusan yang lebih cerdas.

Arahan Optimasi

Berdasarkan analisis risiko, arah optimalisasi terutama meliputi:

  1. Tambahkan filter sinyal: Tambahkan aturan filter berdasarkan indikator seperti MACD, Bollinger Band dll setelah sinyal untuk menghindari kebisingan.

  2. Tambahkan garis stop loss: Tambahkan garis stop loss berdasarkan ATR atau trailing stop ke kontrol per trade loss.

  3. Optimasi parameter: Optimalkan parameter seperti Panjang ATR, ATR Multiplier menggunakan pembelajaran mesin.

  4. Penyesuaian risiko: Tune ukuran posisi, parameter risiko berdasarkan produk yang berbeda.

  5. Fusi model: Gabungkan strategi ini dengan pembelajaran mesin, jaringan saraf untuk meningkatkan akurasi.

  6. Intervensi manual: Memungkinkan penolakan manual tingkat mengambil keuntungan / stop loss pada saat-saat kritis.

Dengan optimalisasi di arah di atas, profitabilitas dan stabilitas strategi dapat ditingkatkan secara signifikan.

Kesimpulan

Secara singkat, Dynamic Trailing Take Profit Trading Strategy adalah strategi profit take yang sangat praktis dan efisien. Ini memiliki ide yang jelas dan mudah dipahami. Melalui dynamic take profit, ini dapat secara otomatis melacak keuntungan dan keluar dengan cepat selama tren yang kuat. Sementara itu, strategi ini juga memiliki beberapa risiko. Ini dapat ditingkatkan dengan menambahkan filter sinyal, stop loss, mengoptimalkan parameter dll untuk beradaptasi dengan lingkungan pasar yang lebih kompleks. Secara keseluruhan, strategi ini memberikan kerangka kerja yang sangat baik yang layak untuk penelitian dan aplikasi lebih lanjut.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-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/
// © Peter_O

//@version=5
strategy("TrailingTakeProfit example", overlay=true, margin_long=100, margin_short=100, default_qty_value = 1, initial_capital = 100)

longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))

if longCondition
    strategy.entry("Long", strategy.long, comment="long", alert_message="long")
if shortCondition
    strategy.entry("Short", strategy.short, comment="short", alert_message="short")

atr_length=input.int(7, title="ATR Length")
atr_multiplier = input.float(1.5, title="ATR Multiplier")
atr_multiplied = atr_multiplier * ta.atr(atr_length)
ttp_top_bracket = strategy.position_size>0 ? high[1]+atr_multiplied : na
ttp_bottom_bracket = strategy.position_size<0 ? low[1]-atr_multiplied : na

plot(ttp_top_bracket, title="ttp_top_bracket", color=color.lime, style=plot.style_linebr, offset=1)
plot(ttp_bottom_bracket, title="ttp_bottom_bracket", color=color.red, style=plot.style_linebr, offset=1)

strategy.exit("closelong", from_entry="Long", limit=ttp_top_bracket, alert_message = "closelong")
strategy.exit("closeshort", from_entry="Short", limit=ttp_bottom_bracket, alert_message = "closeshort")

// var table alertsDisplayTable = table.new(position.top_right, 1, 5, color.black)
// if barstate.islastconfirmedhistory
//     table.cell(alertsDisplayTable, 0, 0, "TradingConnector-compatible alerts sent", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 1, "at Long Entry: long", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 2, "at Short Entry: short", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 3, "at Long Exit: closelong", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 4, "at Short Exit: closeshort", text_color=color.white)


Lebih banyak