Strategi Tren Saham Penembusan Volatilitas ATR Periode Ganda


Tanggal Pembuatan: 2024-01-17 16:34:23 Akhirnya memodifikasi: 2024-01-17 16:34:23
menyalin: 1 Jumlah klik: 728
1
fokus pada
1617
Pengikut

Strategi Tren Saham Penembusan Volatilitas ATR Periode Ganda

Strategi ini memungkinkan perdagangan untuk melacak tren saham dengan menghitung volatilitas harga ATR, VWAP rata-rata dalam siklus yang berbeda, dan menetapkan kondisi masuk dan keluar posisi panjang.

Tinjauan Strategi

Strategi ini terutama diterapkan untuk pelacakan tren produk seperti saham, dengan menghitung ATR volatilitas dan menggabungkan harga VWAP dari siklus yang berbeda, mengatur kondisi jual beli, untuk mencapai penilaian dan pelacakan tren. Strategi ini lebih fleksibel, dapat beralih antara garis panjang dan garis pendek, cocok untuk menangkap tren garis panjang menengah.

Prinsip Strategi

Strategi ini menggunakan indikator ATR untuk menghitung volatilitas harga, dan digabungkan dengan apakah harga menerobos saluran volatilitas untuk menentukan arah tren. Sementara memperkenalkan VWAP harga untuk menentukan konsistensi tren garis pendek dan panjang dari periode yang berbeda. Logika spesifiknya adalah sebagai berikut:

  1. Saluran fluktuasi ATR untuk menghitung harga
  2. Menentukan apakah harga telah menembus saluran fluktuasi
    1. Namun, ada beberapa hal yang perlu diperhatikan.
    2. “Saya tidak tahu apa-apa tentang itu”, katanya.
  3. Memperkenalkan garis lingkar dan garis matahari harga VWAP
    1. Ketika harga menerobos tren fluktuasi, sinyal long position akan dihasilkan jika garis matahari dan garis lingkar VWAP berada di atas harga
    2. Ketika harga menerobos turun naik, sinyal kosong akan dihasilkan jika garis matahari dan garis lingkar VWAP berada di bawah harga

Ini adalah logika inti dari strategi tersebut. ATR volatilitas menilai tren jangka pendek, VWAP harga menilai tren jangka panjang, keduanya digabungkan untuk menilai konsistensi tren, sehingga menghasilkan sinyal perdagangan.

Keunggulan Strategis

  • Menggunakan kombinasi ATR dan VWAP untuk menilai tren, lebih handal
  • Parameter siklus ATR yang dapat dikonfigurasi untuk menyesuaikan sensitivitas strategi
  • Masukkan VWAP periode yang berbeda untuk menilai konsistensi tren garis pendek dan panjang
  • Fleksibel untuk beralih antara panjang dan pendek
  • Berguna untuk melacak tren garis panjang dalam saham

Risiko dan optimasi strategi

  • Sebagai strategi trend-following, lebih banyak transaksi akan dihasilkan pada fase penyesuaian goyangan, yang membawa risiko slippage.
  • Pengaturan parameter ATR dan VWAP dapat mempengaruhi kinerja strategi dan perlu diuji dengan hati-hati untuk varietas yang berbeda
  • Mempertimbangkan untuk memasukkan Stop Loss Mechanism untuk mengendalikan kerugian tunggal
  • Dapat menggabungkan indikator seperti garis rata untuk memfilter sinyal masuk, mengurangi transaksi yang tidak perlu

Meringkaskan

Strategi ini memungkinkan pelacakan tren saham melalui penilaian ganda ATR dan VWAP. Ada ruang yang luas untuk pengoptimalan strategi, parameter dapat disesuaikan atau sinyal pengoptimalan indikator teknis lainnya dapat ditambahkan. Secara keseluruhan, logika strategi jelas dan mudah dimengerti, berkinerja stabil, cocok untuk melacak tren garis panjang.

Kode Sumber Strategi
/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 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/
// © exlux99

//@version=4
strategy(title="VWAP MTF STOCK STRATEGY", overlay=true )

// high^2 / 2 - low^2 -2

h=pow(high,2) / 2
l=pow(low,2) / 2

o=pow(open,2) /2
c=pow(close,2) /2


x=(h+l+o+c) / 4
y= sqrt(x)

source = y
useTrueRange = false
length = input(27, minval=1)
mult = input(0, step=0.1)
ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult
crossUpper = crossover(source, upper)
crossLower = crossunder(source, lower)
bprice = 0.0
bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1])
sprice = 0.0
sprice := crossLower ? low -syminfo.mintick : nz(sprice[1])
crossBcond = false
crossBcond := crossUpper ? true
     : na(crossBcond[1]) ? false : crossBcond[1]
crossScond = false
crossScond := crossLower ? true
     : na(crossScond[1]) ? false : crossScond[1]
cancelBcond = crossBcond and (source < ma or high >= bprice )
cancelScond = crossScond and (source > ma or low <= sprice )

longOnly = true

fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

srcX = input(ohlc4)
t = time("W")
start = na(t[1]) or t > t[1]

sumSrc = srcX * volume
sumVol = volume
sumSrc := start ? sumSrc : sumSrc + sumSrc[1]
sumVol := start ? sumVol : sumVol + sumVol[1]

vwapW= sumSrc / sumVol

 
//crossUpper = crossover(source, upper)
//crossLower = crossunder(source, lower)
shortCondition = close < vwap and time_cond and (close < vwapW)
longCondition = close > vwap and time_cond and (close > vwapW)

 


if(longOnly and time_cond)
    if (crossLower and close < vwapW )
        strategy.close("long")
    if (crossUpper and close>vwapW)
        strategy.entry("long", strategy.long, stop=bprice)