Strategi Pelacakan Tren Berbasis Penyimpangan

Penulis:ChaoZhang, Tanggal: 2024-01-22 11:51:28
Tag:

img

Gambaran umum

Strategi ini mengidentifikasi dan melacak tren berdasarkan indikator deviasi harga yang dikombinasikan dengan area retracement Fibonacci.

Logika Strategi

Strategi ini menggunakan VWAP sebagai garis titik tengah harga. Kemudian band atas dan bawah 1.618 dan 2.618 standar deviasi fluktuasi harga dihitung. Sinyal panjang dihasilkan ketika harga menerobos band bawah ke atas. Sinyal pendek dihasilkan ketika harga menerobos band atas ke bawah.

Sinyal stop loss EXIT setelah membuka posisi panjang atau pendek adalah: garis stop loss untuk posisi panjang adalah band bawah, dan untuk posisi pendek adalah band atas.

Secara khusus, ini melibatkan langkah-langkah berikut:

  1. Menghitung VWAP sebagai garis titik tengah harga

  2. Menghitung standar deviasi sd dari harga sebagai indikator volatilitas harga

  3. Menghitung band atas dan bawah berdasarkan sd. Band atas adalah VWAP + 1.618sd dan VWAP + 2.618Band bawah adalah VWAP - 1.618sd dan VWAP - 2.618Sd.

  4. Sinyal panjang dihasilkan ketika harga menembus jalur bawah 1,618 ke atas. Sinyal pendek dihasilkan ketika harga menembus jalur atas 1,618 ke bawah.

  5. Long stop loss EXIT: price breaks through 2.618 lower band; Short stop loss EXIT: price breaks through 2.618 upper band.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Indikator deviasi harga dapat secara efektif menentukan tren harga dan melacak tren

  2. Daerah retracement Fibonacci membuat entri dan stop loss keluar lebih jelas

  3. VWAP sebagai garis titik tengah harga juga meningkatkan nilai referensi indikator

  4. Parameter dapat disesuaikan sesuai dengan produk dan kerangka waktu yang berbeda

Analisis Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Hal ini dapat menimbulkan kerugian yang lebih besar selama pembalikan tren

  2. Pengaturan parameter yang tidak benar juga dapat mempengaruhi kinerja strategi

  3. Ada risiko stop loss yang lebih tinggi selama fluktuasi harga yang keras

Pengendalian:

  1. Singkatkan periode kepemilikan dengan tepat dan hentikan kerugian tepat waktu

  2. Mengoptimalkan parameter untuk menemukan kombinasi parameter terbaik

  3. Meningkatkan manajemen ukuran posisi untuk mengendalikan kerugian tunggal

Arahan Optimasi

Strategi ini juga dapat dioptimalkan di bidang berikut:

  1. Menggabungkan indikator tren untuk menghindari perdagangan kontra-tren

  2. Tambahkan mekanisme manajemen ukuran posisi

  3. Mengoptimalkan pengaturan parameter

  4. Backtest dan mengoptimalkan lebih dari beberapa kerangka waktu

Ringkasan

Strategi ini mengidentifikasi dan melacak tren berdasarkan konsep deviasi harga dikombinasikan dengan VWAP dan band deviasi standar Fibonacci. Dibandingkan dengan menggunakan indikator tunggal seperti moving average, strategi ini memiliki penilaian dan pengendalian risiko yang lebih jelas. Melalui penyesuaian parameter dan optimalisasi, strategi dapat disesuaikan dengan produk dan kerangka waktu yang berbeda untuk mencapai kinerja yang lebih baik.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1m
basePeriod: 1m
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/
// © Mysteriown

//@version=4
strategy(title="VWAP + Fibo Dev Extensions Strategy", overlay=true, pyramiding=5, commission_value=0.08)

// -------------------------------------
// ------- Inputs Fibos Values ---------
// -------------------------------------

fib1 = input(title="Fibo extension 1", type=input.float, defval=1.618)
fib2 = input(title="Fibo extension 2", type=input.float, defval=2.618)
reso = input(title="Resolution VWAP", type=input.resolution, defval="W")
dev = input(title="Deviation value min.", type=input.integer, defval=150)


// -------------------------------------
// -------- VWAP Calculations ----------
// -------------------------------------

t = time(reso)
debut = na(t[1]) or t > t[1]

addsource = hlc3 * volume
addvol = volume
addsource := debut ? addsource : addsource + addsource[1]
addvol := debut ? addvol : addvol + addvol[1]
VWAP = addsource / addvol

sn = 0.0
sn := debut ? sn : sn[1] + volume * (hlc3 - VWAP[1]) * (hlc3 - VWAP)
sd = sqrt(sn / addvol)

Fibp2 = VWAP + fib2 * sd
Fibp1 = VWAP + fib1 * sd
Fibm1 = VWAP - fib1 * sd
Fibm2 = VWAP - fib2 * sd


// -------------------------------------
// -------------- Plots ----------------
// -------------------------------------

plot(VWAP, title="VWAP", color=color.orange)
pFibp2 = plot(Fibp2, color=color.red)
pFibp1 = plot(Fibp1, color=color.red)
pFibm1 = plot(Fibm1, color=color.lime)
pFibm2 = plot(Fibm2, color=color.lime)

fill(pFibp2,pFibp1, color.red)
fill(pFibm2,pFibm1, color.lime)


// -------------------------------------
// ------------ Positions --------------
// -------------------------------------

bull = crossunder(low[1],Fibm1[1]) and low[1]>=Fibm2[1] and low>Fibm2 and low<Fibm1 and sd>dev
bear = crossover(high[1],Fibp1[1]) and high[1]<=Fibp2[1] and high<Fibp2 and high>Fibp1 and sd>dev

//plotshape(bear, title='Bear', style=shape.triangledown, location=location.abovebar, color=color.red, offset=0)
//plotshape(bull, title='Bull', style=shape.triangleup, location=location.belowbar, color=color.green, offset=0)


// -------------------------------------
// --------- Strategy Orders -----------
// -------------------------------------

strategy.entry("Long", true, when = bull)
strategy.close("Long", when = crossover(high,VWAP) or crossunder(low,Fibm2))

strategy.entry("Short", false, when = bear)
strategy.close("Short", when = crossunder(low,VWAP) or crossover(high,Fibp2))

Lebih banyak