Strategi mengikuti tren berdasarkan zona gesekan harga


Tanggal Pembuatan: 2023-09-20 16:46:17 Akhirnya memodifikasi: 2023-09-20 16:46:17
menyalin: 2 Jumlah klik: 610
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini menghasilkan sinyal perdagangan pelacakan tren di zona bebas resistensi dengan menghitung berapa lama harga berada di berbagai zona dan menentukan apakah harga memasuki zona bebas resistensi baru. Strategi ini termasuk dalam kategori strategi pelacakan tren.

Prinsip Strategi

  1. Perhitungan persentase harga yang tinggal di sekitar tingkat saat ini selama N siklus terakhir, sebagai ukuran gesekan harga.

  2. Penjelasan apakah harga masuk ke area gesekan rendah di mana sedikit dari waktu yang lalu berhenti, sebagai area tanpa resistensi yang menghasilkan sinyal.

  3. Menggunakan Fast Weighted Moving Average untuk menentukan arah tren terbaru, dan melakukan perdagangan tren saat terjadi terobosan di zona bebas resistensi.

  4. Ketika harga kembali ke zona gesekan tinggi, prediksi akan membalikkan tren untuk keluar dari defisit.

  5. Parameter transaksi dapat disesuaikan, termasuk periode penilaian zona gesekan, penembusan zona masuk, dll.

Analisis Keunggulan

  1. Menggunakan harga gesekan untuk menentukan zona bebas resistensi, menghindari zona getaran.

  2. Garis rata cepat melacak tren terbaru, menggunakan kombinasi arah penilaian.

  3. Sebuah antarmuka visual yang intuitif untuk menunjukkan area gesekan harga.

  4. Parameter default dioptimalkan untuk transaksi frekuensi tinggi cryptocurrency.

  5. Peraturan kebijakan sederhana dan jelas, mudah dipahami dan dimodifikasi.

Analisis risiko

  1. Friksi harga tidak dapat memprediksi pergerakan harga secara akurat.

  2. Penghitungan waktu rata-rata cepat mungkin tidak akurat.

  3. Tidak dapat masuk dan keluar pasar dengan lancar.

  4. Ada risiko over-fitting pada saat optimasi.

  5. Parameter tetap mungkin tidak bekerja dengan baik ketika pasar berubah secara dramatis.

Arah optimasi

  1. Perhitungan friksi harga dengan parameter uji periode yang berbeda.

  2. Evaluasi berbagai jenis rata-rata untuk menilai tren terbaru.

  3. Optimalkan parameter untuk menembus zona bebas hambatan, meningkatkan stabilitas strategi.

  4. Menambahkan strategi stop loss dan manajemen risiko perdagangan.

  5. Pertimbangkan untuk mengadopsi parameter dinamis untuk beradaptasi dengan perubahan pasar.

  6. Terakhir, kami melakukan pengujian ulang pada lebih banyak varietas dan siklus.

Meringkaskan

Strategi ini memiliki beberapa keunggulan dalam melakukan perdagangan dengan menemukan area ledakan tren probabilitas tinggi melalui tingkat gesekan harga. Namun, ada juga keterbatasan parameter yang tetap. Dengan meningkatkan mekanisme pengoptimalan parameter dinamis, manajemen risiko, dan sebagainya, strategi dapat dibuat lebih stabil dan efisien.

Kode Sumber Strategi
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//made for 30m chart with BTCUSD or other cryptocurrency
strategy("LUBE",overlay=false )
friction=0.0
barsback=input(500,"bars back to measure friction",step=100)
flevel=input(50,"0-100 friction level to stop trade",step=2)
tlevel=input(-10,"pic lower than 0 to number selected above to initiate trade",step=2)
fl=flevel/100
tl=tlevel/100

for i = 1 to barsback
    friction := if high[i] >= close and low[i] <= close 
        friction+(1+barsback)/(i+barsback)
    else
        friction

range=input(100,"bars back to measure lowest friction",step=10)
lowf = lowest(friction,range)
highf = highest(friction,range)
midf = (lowf*(1-fl)+highf*fl)
lowf2 = (lowf*(1-tl)+highf*tl)
plot(friction)
m=plot(midf[5],color=color.red)
l=plot(lowf2[5],color=color.white)
h=plot(highf[5],color=color.white)
fill(l,h,color.white)

src = input(title="Source", type=input.source, defval=close)

//FIR Filter
_fir(src) =>
    (4 * src + 3 * nz(src[1]) + 2 * nz(src[2]) + nz(src[3])) / 10

fir = _fir(src)

trend =  fir > fir[1]? 1:-1

//bgcolor(trend==1?color.lime:color.red,transp=50)

long=friction<lowf2[5] and trend == 1
short=friction<lowf2[5] and trend == -1
end=friction > midf[5]

keeplong=0
keeplong:=long?1:nz(keeplong[1])
keeplong:=short or end?0:keeplong

keepshort=0
keepshort:=short?1:nz(keepshort[1])
keepshort:=long or end?0:keepshort

bgcolor(keeplong==1?color.lime:keepshort==1?color.red:na,transp=50)

leverage=input(2,"leverage",step=.5)
enableshort=input(true,"enable shorts?")

barcount=0
barcount:=nz(barcount[1])+1

contracts=min(max(.000001,(strategy.equity/close)*leverage),50000)
strategy.entry("Long",strategy.long,when=long and barcount>20, qty=contracts)

strategy.close("Long",when=short or end )

strategy.entry("Short",strategy.short,when=short and enableshort==true and barcount>20, qty=contracts)

strategy.close("Short",when=(long or end) and enableshort==true)

alertcondition(keeplong==1 and keeplong[1]==0,"LONG")
alertcondition(keepshort==1 and keepshort[1]==0,"SHORT")
alertcondition((keeplong[1]==1 or keepshort[1]==1) and (keeplong==0 and keepshort==0),"CLOSE TRADE")