Strategi pelacakan momentum berdasarkan integrasi indikator

Penulis:ChaoZhang, Tanggal: 2023-10-17 15:26:49
Tag:

img

Gambaran umum

Strategi ini didasarkan pada integrator indikator khusus untuk menentukan arah tren harga dengan mengumpulkan jumlah jarak antara harga dan rata-rata bergerak, dan dengan demikian melacak tren.

Logika Strategi

Strategi ini menggunakan indikator khusus untuk mengintegrasikan jarak antara harga dan rata-rata bergerak, diimplementasikan sebagai berikut:

  1. Hitung jarak antara harga dan rata-rata bergerak sederhana 200 periode k=close-sma ((close,200)

  2. Mendefinisikan periode integrasi s = 29, akumulasi jumlah k selama s terakhir periode: jumlah = 0, untuk i = 0 untuk s, jumlah := jumlah + k[i]

  3. Ketika jumlah > 0, sinyal panjang dihasilkan. Ketika jumlah < 0, sinyal pendek dihasilkan.

  4. Ketika posisi panjang dibuka, jika jumlah <0, tutup posisi panjang. Ketika posisi pendek dibuka, jika jumlah>0, tutup posisi pendek.

Strategi ini menilai arah tren secara keseluruhan dengan melacak apakah jumlah akumulasi jarak antara harga dan moving average positif atau negatif. Ketika integral positif, itu menunjukkan tren naik dan posisi panjang harus dipegang. Ketika integral negatif, itu menunjukkan tren menurun dan posisi pendek harus dipegang.

Keuntungan

  1. Integrator indikator khusus dapat secara efektif menentukan arah tren harga.

  2. Konsep integrasi mengumpulkan jarak antara harga dan MA, meningkatkan akurasi penentuan tren.

  3. Logika yang relatif sederhana, mudah dipahami dan dioptimalkan.

  4. Pengaturan periode integrasi yang fleksibel untuk mengoptimalkan sensitivitas.

  5. Hasil backtest yang baik, keuntungan yang stabil, berlaku dalam perdagangan langsung.

Risiko

  1. Pengaturan periode integrasi yang tidak tepat dapat menyebabkan reaksi yang tidak sensitif dan kehilangan titik balik tren.

  2. Pengaturan panjang MA yang tidak tepat dapat menyebabkan penilaian yang salah tentang tren.

  3. Kejadian besar tiba-tiba dapat menyebabkan sinyal yang salah.

  4. Pemilihan simbol yang tidak tepat, simbol yang sangat mudah menguap dapat memperburuk efektivitas.

Solusi yang sesuai:

  1. Optimalkan periode integrasi untuk sensitivitas yang lebih baik.

  2. Uji panjang MA yang berbeda untuk menemukan yang optimal untuk penentuan tren.

  3. Tutup strategi sebelum peristiwa besar untuk menghindari kesalahan dari perubahan harga besar.

  4. Pilih simbol volatilitas rendah untuk kinerja yang lebih baik.

Arah Peningkatan

  1. Pertimbangkan untuk menambahkan indikator lain seperti RSI untuk penentuan yang komprehensif.

  2. Hasil integrasi penelitian menggunakan berbagai jenis MA.

  3. Coba otomatis mengoptimalkan periode integrasi untuk simbol yang berbeda.

  4. Tambahkan indikator volume untuk menghindari kesalahan selama perubahan harga yang besar.

  5. Gunakan pembelajaran mesin untuk mengoptimalkan parameter untuk ketahanan.

Kesimpulan

Strategi ini menilai arah tren menggunakan integrator indikator khusus dengan mengumpulkan jarak antara harga dan MA. Logika sederhana dan jelas, dan hasil backtest baik. Ini dapat ditingkatkan dengan menyesuaikan parameter integrasi, menambahkan indikator tambahan, pengoptimalan otomatis dll untuk aplikasi praktis yang lebih andal. Secara keseluruhan ini adalah strategi pelacakan tren kuantitatif yang berlaku.


/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=29)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na


longCondition = sum>0
exitlong = sum<0

shortCondition = sum<0
exitshort = sum>0

strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)

Lebih banyak