Tren Breakout Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2023-12-08 17:16:34
Tag:

img

Gambaran umum

Strategi ini melacak tren harga mata uang kripto dengan menetapkan harga tinggi dan rendah.

Prinsip Strategi

Strategi ini terutama menggunakan metode rata-rata bergerak tertimbang untuk menentukan apakah ada tren naik atau turun yang jelas. Secara khusus, ini akan mencatat harga tertinggi dan terendah selama periode tertentu. Ketika harga perdagangan aktual melebihi harga tertinggi yang tercatat, dinilai bahwa tren naik telah terjadi, dan itu akan panjang. Ketika harga perdagangan aktual lebih rendah dari harga terendah yang tercatat, dinilai bahwa tren turun telah terjadi, dan itu akan pendek.

Harga pembukaan untuk panjang dan pendek ditetapkan melalui parameter input ENTRY, dan harga penutupan ditetapkan melalui parameter EXIT.

Secara khusus, logika utama dari strategi ini adalah:

  1. Catat harga tertinggi dan terendah selama periode tertentu (bisa disesuaikan)
  2. Periksa apakah harga perdagangan sebenarnya lebih tinggi dari harga tertinggi
    1. Jika lebih tinggi, ada peluang panjang, buka posisi panjang berdasarkan tingkat harga yang ditetapkan oleh parameter ENTRY
    2. Jika harga perdagangan yang sebenarnya lebih rendah dari harga terendah, ada peluang pendek, buka posisi pendek berdasarkan tingkat harga yang ditetapkan oleh parameter EXIT
  3. Setelah membuka posisi panjang, tutup ketika harga turun di bawah level yang ditetapkan oleh parameter EXIT
  4. Setelah membuka posisi pendek, tutup ketika harga naik di atas level yang ditetapkan oleh parameter ENTRY

Melalui loop logika ini, dapat menangkap tren harga naik dan turun dan mencapai tren berikut.

Keuntungan

Keuntungan terbesar dari strategi ini adalah bahwa dengan menyesuaikan parameter, ia dapat secara otomatis menangkap tren harga tanpa perlu penilaian manual arah tren. Selama parameter ditetapkan dengan tepat, ia dapat secara otomatis melacak fluktuasi harga cryptocurrency.

Selain itu, strategi ini sangat cocok untuk perdagangan kuantitatif dan dapat dengan mudah mencapai penempatan pesanan otomatis. Tanpa operasi manual, hal ini mengurangi risiko perdagangan emosional dan sangat meningkatkan efisiensi perdagangan.

Akhirnya, strategi ini juga dapat memaksimalkan pengembalian dengan menyesuaikan parameter. Dengan menguji parameter ENTRY dan EXIT yang berbeda, parameter optimal dapat ditemukan untuk memaksimalkan pengembalian.

Risiko

Risiko terbesar dari strategi ini adalah bahwa pengaturan parameter yang tidak tepat dapat menyebabkan perdagangan yang terlalu sering, meningkatkan biaya perdagangan dan kerugian slippage.

Selain itu, penyesuaian parameter yang tidak tepat juga dapat menyebabkan kegagalan untuk menangkap tren harga tepat waktu, kehilangan peluang perdagangan.

Akhirnya, strategi ini terlalu sensitif terhadap kebisingan pasar jangka pendek, yang dapat menghasilkan sinyal perdagangan yang salah.

Arahan Optimasi

Aspek berikut dapat dioptimalkan lebih lanjut untuk strategi ini:

  1. Tambahkan logika stop loss. Ini memungkinkan stop loss ketika kerugian melebihi persentase tertentu untuk menghindari kerugian yang lebih besar.

  2. Tambahkan filter indikator teknis seperti moving average, KDJ untuk menilai tren keseluruhan untuk menghindari terlalu banyak perdagangan karena kebisingan jangka pendek.

  3. Mengoptimalkan logika pengaturan parameter. Mekanisme perubahan adaptif dapat diatur untuk parameter ENTRY dan EXIT daripada pengaturan statis sehingga mereka dapat menyesuaikan berdasarkan kondisi pasar.

  4. Gunakan pembelajaran mesin untuk melatih parameter optimal. Dapatkan pengaturan ENTRY dan EXIT yang optimal untuk lingkungan pasar saat ini melalui pelatihan data historis yang besar.

Kesimpulan

Keuntungan terbesar dari strategi ini adalah bahwa dengan menangkap tren harga, ia mencapai perdagangan otomatis, yang dapat mengurangi dampak emosi manusia pada perdagangan, mengurangi risiko, dan meningkatkan efisiensi.

Risiko utama dari strategi ini adalah pengaturan parameter yang tidak tepat dan sensitivitas berlebihan terhadap kebisingan pasar. hal ini perlu ditingkatkan melalui stop loss, filter indikator, optimasi parameter adaptif dan banyak lagi.

Secara keseluruhan, ini adalah tren yang sederhana dan efektif mengikuti strategi yang cocok untuk perdagangan kuantitatif dan otomatis.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JstMtlQC

//@version=4
strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)


/////////////// INPUT ENTRY EXIT
entry= input(100, "ENTRY H/L")
exit= input(50, "EXIT H/L")

/////////////// Backtest Input
FromYear = input(2015, "Backtest Start Year")
FromMonth = input(1, "Backtest Start Month")
FromDay = input(1, "Backtest Start Day")
ToYear = input(2999, "Backtest End Year")
ToMonth = input(1, "Backtest End Month")
ToDay = input(1, "Backtest End Day")

/////////////// Backtest Setting
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => time >= start and time <= finish ? true : false 

/////////////// BUY OPEN PLOT
highestpricelong = highest(high,entry)[1]
plot(highestpricelong, color=color.green, linewidth=2)

/////////////// BUY CLOSE PLOT
lowestpricelong = lowest(high,exit)[1]
plot(lowestpricelong, color=color.green, linewidth=2)

/////////////// SHORT OPEN PLOT
lowestpriceshort = lowest(low,entry)[1]
plot(lowestpriceshort, color=color.red, linewidth=2)

/////////////// SHORT CLOSE PLOT
highestpriceshort = highest(low,exit)[1]
plot(highestpriceshort, color=color.red, linewidth=2)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// CONDITION LONG SHORT //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// SHORT 

entryshort= crossunder(close, lowestpriceshort)
exitshort= crossover(close,highestpriceshort)

/////////////// LONG 

exitlong= crossover(close, lowestpricelong)
entrylong= crossover(close,highestpricelong)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// LONG and SHORT ORDER //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// LONG 

if (entrylong)
    strategy.entry("LongEntry", strategy.long, when = window())
if (exitlong or entryshort)
    strategy.close("LongEntry", when=window())

/////////////// SHORT 

if (entryshort)
    strategy.entry("short", strategy.short, when = window())
if (exitshort or entrylong)
    strategy.close("short", when=window())



Lebih banyak