Tren Momentum Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2023-10-30 11:36:26
Tag:

img

Gambaran umum

Strategi ini menggunakan indikator VIDYA (Variable Index Dynamic Average) untuk mengidentifikasi arah tren di pasar cryptocurrency dan perdagangan berdasarkan tren.

Logika Strategi

Strategi ini pertama kali menghitung indikator VIDYA. Indikator VIDYA didasarkan pada momentum harga dan dapat merespons perubahan tren lebih cepat. Secara khusus, ini menggabungkan Chande Momentum Oscillator (CMO) dan Simple Moving Average (SMA). CMO mengukur perbedaan antara momentum ke atas dan ke bawah untuk mengukur kekuatan tren. SMA meluruskan data harga. VIDYA secara dinamis menyesuaikan bobot SMA berdasarkan nilai CMO, memberikan lebih banyak bobot kepada CMO pada awal perubahan tren dan lebih banyak bobot kepada SMA setelah tren ditetapkan. Dengan demikian, VIDYA dapat dengan cepat merespons perubahan tren sambil juga mempertahankan pelacakan tren yang lancar.

Setelah menghitung VIDYA, strategi menilai arah tren berdasarkan kurva VIDYA.

Analisis Keuntungan

  • VIDYA merespon dengan cepat dan dapat menangkap perubahan tren lebih awal dibandingkan dengan indikator tradisional seperti SMA.

  • Menggabungkan kekuatan dan arah tren, dapat secara efektif membedakan tren kuat dan lemah dan menghindari tren palsu di pasar yang berbeda.

  • Bergantung hanya pada VIDYA membuat strategi sederhana. Tidak ada sinyal yang bertentangan atau menyesatkan dari beberapa indikator.

  • Pengaturan VIDYA yang lebih panjang memungkinkan melacak tren jangka panjang dan menangkap arah tren utama.

  • Hasil backtest yang baik dengan pengembalian yang diharapkan positif.

Analisis Risiko

  • VIDYA mungkin terlambat dalam menanggapi peristiwa pasar tiba-tiba dan kehilangan peluang perdagangan jangka pendek.

  • Pengaturan VIDYA yang panjang membuatnya kurang sensitif terhadap perubahan tren jangka pendek dan dapat menyebabkan penarikan yang lebih besar.

  • Berikut tren murni berkinerja buruk di pasar yang bergolak. filter tambahan dapat meningkatkan kinerja.

  • Data backtest terbatas tidak dapat sepenuhnya memverifikasi keandalan. Parameter membutuhkan optimasi dan pengujian iteratif dalam perdagangan langsung.

  • Volatilitas tinggi di pasar kripto. Ukuran posisi dan stop loss harus dikontrol dengan hati-hati untuk manajemen risiko yang ketat.

Arahan Optimasi

  • Uji menambahkan indikator volume atau volatilitas untuk meningkatkan sensitivitas terhadap perubahan tren.

  • Cobalah menggabungkan VIDYA dengan indikator tren lainnya untuk efek ensemble.

  • Mengoptimalkan strategi stop loss untuk keluar lebih awal ketika tren berbalik.

  • Mengoptimalkan ukuran posisi secara dinamis berdasarkan kondisi pasar.

  • Uji ketahanan di berbagai cryptocurrency dan kerangka waktu.

Kesimpulan

Secara keseluruhan ini adalah strategi tren kuantitatif. Ini menggunakan indikator VIDYA untuk menentukan arah tren, menangkap tren crypto dengan mudah dan efektif. Tetapi juga memiliki beberapa keterbatasan yang membutuhkan optimasi lebih lanjut dalam stop loss, ukuran posisi dll untuk membuat strategi lebih kuat dan praktis layak. Secara umum, ini memberikan kerangka kerja dasar dan pendekatan untuk membangun strategi tren crypto, tetapi penilaian yang bijaksana masih diperlukan untuk aplikasi dunia nyata.


/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
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/
// @version=5
// Author = TradeAutomation


strategy(title="VIDYA Trend Strategy", shorttitle="VIDYA Trend Strategy", process_orders_on_close=true, overlay=true, pyramiding=25,  commission_type=strategy.commission.percent, commission_value=.075, slippage = 1, initial_capital = 1000000, default_qty_type=strategy.percent_of_equity, default_qty_value=4)


// Backtest Date Range Inputs // 
StartTime = input(defval=timestamp('01 Jan 2000 08:00'), group="Date Range", title='Start Time')
EndTime = input(defval=timestamp('01 Jan 2099 00:00'), group="Date Range", title='End Time')
InDateRange = true

// Strategy Inputs //
len = input.int(title="VIDYA Length", defval=50, step=5,group="Trend Settings")
src = input.source(title="VIDYA Price Source",defval=ohlc4, group="Trend Settings")

// VIDYA Calculations //
valpha=2/(len+1)
vud1=src>src[1] ? src-src[1] : 0
vdd1=src<src[1] ? src[1]-src : 0
vUD=math.sum(vud1,9)
vDD=math.sum(vdd1,9)
vCMO=nz((vUD-vDD)/(vUD+vDD))
var VIDYA = 0.0
VIDYA := na(VIDYA[1]) ? ta.sma(src, len) : nz(valpha*math.abs(vCMO)*src)+(1-valpha*math.abs(vCMO))*nz(VIDYA[1])
plot(VIDYA, title="VIDYA",color=(VIDYA > VIDYA[1]) ? color.green : (VIDYA<VIDYA[1]) ? color.red : (VIDYA==VIDYA[1]) ? color.gray : color.black, linewidth=2)

// Entry & Exit Signals //
if (InDateRange)
    strategy.entry("Long", strategy.long, when = VIDYA>VIDYA[1])
    strategy.close("Long", when = VIDYA<VIDYA[1])
if (not InDateRange)
    strategy.close_all()
    

Lebih banyak