Tren Mengikuti Strategi Perdagangan Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2024-01-05 13:48:07
Tag:

img

Gambaran umum

Strategi ini menggunakan rata-rata bergerak dari harga tertinggi dan terendah dengan pengaturan parameter yang berbeda untuk menentukan tren pasar dan menghasilkan sinyal perdagangan pada titik balik. Strategi ini berjalan panjang ketika harga melanggar di atas garis rata-rata bergerak yang melacak ke atas dan berjalan pendek ketika harga melanggar di bawah garis pelacakan ke bawah. Strategi ini juga memanfaatkan ATR untuk mengatur stop loss dan mengambil tingkat keuntungan.

Logika Strategi

Strategi ini menggunakan rata-rata bergerak sederhana dari harga tertinggi dan terendah dengan parameter yang berbeda untuk mendefinisikan tren pasar.

  1. Sistem h1 dan l1 melacak tren dari atas. h1 adalah rata-rata bergerak sederhana dari harga tertinggi, bertindak sebagai band atas tren; l1 dibangun oleh h1 dikurangi nilai ATR, berfungsi sebagai band bawah. Sinyal panjang dihasilkan ketika harga pecah di atas h1, dan sinyal dekat dihasilkan ketika harga turun di bawah l1.

  2. Sistem h2 dan l2 melacak tren dari ke bawah. h2 adalah rata-rata bergerak sederhana dari harga terendah, bertindak sebagai band bawah; l2 dibangun oleh h2 ditambah nilai ATR, berfungsi sebagai band atas. Sinyal pendek dihasilkan ketika harga pecah di bawah h2, dan sinyal dekat dihasilkan ketika harga naik di atas l2.

Sistem dual-band dapat lebih akurat mengidentifikasi titik balik tren dan menyaring beberapa perdagangan yang bising. Sementara itu, nilai ATR digunakan untuk mengatur stop loss dan mengambil tingkat keuntungan untuk mengontrol rasio risiko-manfaat per perdagangan.

Analisis Keuntungan

Keuntungan utama dari strategi ini meliputi:

  1. Sistem dual-band menyaring kebisingan dan mengidentifikasi titik balik dengan lebih tepat.
  2. ATR secara dinamis melacak volatilitas, memungkinkan kontrol stop loss yang efektif per perdagangan.
  3. Logikanya sederhana dan mudah dimengerti, cocok untuk pemula untuk belajar.
  4. Parameter dapat disesuaikan secara fleksibel untuk beradaptasi dengan lingkungan pasar yang berbeda.

Analisis Risiko

Ada juga beberapa risiko yang terkait dengan strategi ini:

  1. Sinyal pecah dari band bisa tertinggal, kehilangan peluang pada tahap awal tren.
  2. Melacak moving average memiliki kemampuan yang lebih lemah dalam menangkap tren yang melengkung.
  3. Biaya perdagangan tidak dipertimbangkan.

Solusi:

  1. Mengurangi periode rata-rata bergerak untuk sinyal yang lebih sensitif.
  2. Masukkan indikator lain seperti MACD untuk menentukan jenis tren, menghindari overtrading di zona berkisar.
  3. Sesuaikan ukuran posisi dengan frekuensi perdagangan yang lebih rendah.

Arahan Optimasi

Strategi dapat dioptimalkan dari aspek berikut:

  1. Menggunakan algoritma pembelajaran mesin untuk menyesuaikan parameter secara otomatis untuk beradaptasi dengan perubahan pasar.
  2. Sertakan volume perdagangan untuk menghindari breakout palsu.
  3. Tambahkan aturan ukuran posisi mikro untuk menghubungkan ukuran posisi dengan kekuatan tren.
  4. Mengoptimalkan mekanisme stop loss dengan trailing stop dll.

Kesimpulan

Dalam kesimpulan, ini adalah strategi tren yang sederhana dan praktis. Filsafat inti adalah untuk mengidentifikasi titik balik tren dan mengendalikan kerugian per perdagangan melalui penyaringan dual-band dan berhenti ATR dinamis. Ini memiliki manfaat praktis yang pasti dan juga ruang besar untuk optimasi. Kinerja yang lebih baik dapat dicapai melalui penyesuaian parameter, menggabungkan indikator lain dll.


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

//@version=4
strategy("I Like Winners And Love Loosers!", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

highest_length = input(200, type=input.integer, minval=1, title="Highest Length")
highest_average = input(10, type=input.integer, minval=1, title="Highest Average Length")

lowest_length = input(200, type=input.integer, minval=1, title="Lowest Length")
lowest_average = input(10, type=input.integer, minval=1, title="Lowest Average Length")

atr_length = input(14, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(2, type=input.integer, minval=1, title="ATR Multiplier")
a = atr(atr_length) * atr_multiplier

h1 = sma(highest(high, highest_length), highest_average)
l1 = h1 - a

h2 = sma(lowest(low, lowest_length), lowest_average)
l2 = h2 + a

buy1_signal = crossover(close, h1)
sell1_signal = crossunder(close, l1)
strategy.entry("Buy", strategy.long, when=buy1_signal)
strategy.close("Buy", when=sell1_signal)

buy2_signal = crossunder(close, h2)
sell2_signal = crossover(close, l2)
strategy.entry("Sell", strategy.short, when=buy2_signal)
strategy.close("Sell", when=sell2_signal)

y1 = plot(h1, title="H1", color=color.green, transp=50, linewidth=2)
y2 = plot(l1, title="L1", color=color.red, transp=50, linewidth=2)
y3 = plot(h2, title="H2", color=color.green, transp=50, linewidth=2)
y4 = plot(l2, title="L2", color=color.red, transp=50, linewidth=2)

fill(y1,y2,color=color.green)
fill(y3,y4,color=color.red)


Lebih banyak