Indeks Deviasi Tren dengan Strategi Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2023-11-06 14:46:40
Tag:

img

Gambaran umum

Strategi ini menghitung Trend Deviation Index (TSI) harga, memproses TSI dengan moving average, dan membentuk garis moving average TSI. Dikombinasikan dengan arah lilin harga, strategi ini menentukan apakah harga saat ini berada dalam tren naik atau turun, dan dengan demikian menghasilkan sinyal beli dan jual.

Prinsip-prinsip

Langkah-langkah utama dari strategi ini adalah:

  1. Menghitung persentase perubahan harga
  2. Double smooth pct dengan HMA untuk mendapatkan double_smoothed_pc
  3. Menghitung HMA ganda pct mutlak untuk mendapatkan double_smoothed_abs_pc
  4. Menghitung nilai TSI: (100 * (double_smoothed_pc / double_smoothed_abs_pc))
  5. Nilai TSI proses dengan HMA untuk mendapatkan garis rata-rata bergerak TSI tsihmaline
  6. Bandingkan nilai TSI dan garis rata-rata bergerak TSI, di atas rata-rata bergerak adalah tren naik, di bawahnya adalah tren turun
  7. Dalam tren naik, jika harga juga naik, menghasilkan sinyal beli
  8. Dalam downtrend, jika harga juga turun, menghasilkan sinyal jual

Melalui langkah-langkah di atas, ia menentukan arah tren keseluruhan, dikombinasikan dengan pergerakan harga aktual, untuk menghasilkan sinyal perdagangan.

Keuntungan

  1. Double HMA smoothing menyaring keluar kebisingan jangka pendek dan kunci dalam tren utama
  2. TSI dan garis rata-rata bergeraknya menentukan arah tren keseluruhan
  3. Dikombinasikan dengan lilin harga menghindari pecah palsu, meningkatkan keandalan sinyal
  4. Parameter yang dapat disesuaikan menyesuaikan dengan pasar siklus yang berbeda
  5. Visualisasi grafis, hijau untuk tren naik, merah untuk tren turun

Risiko

  1. Dapat menghasilkan beberapa sinyal palsu selama pasar yang terikat jangkauan
  2. Delay garis rata-rata bergerak pada titik balik, mungkin hilang titik masuk terbaik
  3. Pengaturan parameter yang sering diperlukan untuk beradaptasi dengan perubahan pasar
  4. Berdasarkan indikator TSI tunggal, dapat dioptimalkan dengan indikator lain

Peningkatan

  1. Tambahkan filter untuk menghindari sinyal palsu selama konsolidasi
  2. Tambahkan indikator lain untuk mengkonfirmasi titik pembalikan tren
  3. Otomatis mengoptimalkan parameter melalui pembelajaran mesin dll
  4. Memperkenalkan stop loss untuk mengendalikan kerugian perdagangan tunggal

Kesimpulan

Strategi ini menggunakan TSI untuk menentukan arah tren dikombinasikan dengan lilin harga untuk menghasilkan sinyal perdagangan, yang secara efektif dapat menangkap tren, membeli dalam tren naik dan menjual dalam tren turun.


/*backtest
start: 2023-10-29 00:00:00
end: 2023-11-05 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="TSIHULLBOT", shorttitle="TSICCIHULL", default_qty_type=strategy.percent_of_equity, default_qty_value=100)
long = input(title="Long Length", type=input.integer, defval=50)
short = input(title="Short Length", type=input.integer, defval=50)
signal = input(title="Signal Length", type=input.integer, defval=7)
price = input(title="Source",type=input.source,defval=open)
lineupper = input(title="Upper Line", type=input.integer, defval=250)
linelower = input(title="Lower Line", type=input.integer, defval=-250)
double_smooth(price, long, short) =>
    fist_smooth = hma(price, long)
    hma(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = (100 * (double_smoothed_pc / double_smoothed_abs_pc))*5
tsihmaline=(hma(tsi_value,signal))*5
clr = tsihmaline < tsi_value ? color.red : color.lime
clr2 = tsi_value < tsi_value[1] ? color.red : color.lime
i1=plot(lineupper+3, color=color.black, linewidth=3)
i2=plot(linelower+3, color=color.black, linewidth=3)
i3=plot(lineupper, color=clr)
i4=plot(linelower, color=clr)
trendv=tsihmaline/5.6
plot(trendv, linewidth=7,  color=color.black)
plot(trendv, linewidth=4,  color=color.yellow)
j1=plot(tsi_value, linewidth=5, color=color.black)
j2=plot(tsi_value[1], linewidth=5, color=color.black)
j3=plot(tsi_value, color=clr2)
j4=plot(tsi_value[1], color=clr2)
fill(i3,i4,color=clr,transp=90)
fill(j3,j4,color=clr2,transp=15)
longCondition = tsihmaline>tsihmaline[1] and price>price[1]
if (longCondition)
    strategy.entry("Buy ⤴️", strategy.long)
shortCondition = tsihmaline<tsihmaline[1] and price<price[1]
if (shortCondition)
    strategy.entry("Sell ⤵️", strategy.short)

Lebih banyak