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.
Perhitungan persentase harga yang tinggal di sekitar tingkat saat ini selama N siklus terakhir, sebagai ukuran gesekan harga.
Penjelasan apakah harga masuk ke area gesekan rendah di mana sedikit dari waktu yang lalu berhenti, sebagai area tanpa resistensi yang menghasilkan sinyal.
Menggunakan Fast Weighted Moving Average untuk menentukan arah tren terbaru, dan melakukan perdagangan tren saat terjadi terobosan di zona bebas resistensi.
Ketika harga kembali ke zona gesekan tinggi, prediksi akan membalikkan tren untuk keluar dari defisit.
Parameter transaksi dapat disesuaikan, termasuk periode penilaian zona gesekan, penembusan zona masuk, dll.
Menggunakan harga gesekan untuk menentukan zona bebas resistensi, menghindari zona getaran.
Garis rata cepat melacak tren terbaru, menggunakan kombinasi arah penilaian.
Sebuah antarmuka visual yang intuitif untuk menunjukkan area gesekan harga.
Parameter default dioptimalkan untuk transaksi frekuensi tinggi cryptocurrency.
Peraturan kebijakan sederhana dan jelas, mudah dipahami dan dimodifikasi.
Friksi harga tidak dapat memprediksi pergerakan harga secara akurat.
Penghitungan waktu rata-rata cepat mungkin tidak akurat.
Tidak dapat masuk dan keluar pasar dengan lancar.
Ada risiko over-fitting pada saat optimasi.
Parameter tetap mungkin tidak bekerja dengan baik ketika pasar berubah secara dramatis.
Perhitungan friksi harga dengan parameter uji periode yang berbeda.
Evaluasi berbagai jenis rata-rata untuk menilai tren terbaru.
Optimalkan parameter untuk menembus zona bebas hambatan, meningkatkan stabilitas strategi.
Menambahkan strategi stop loss dan manajemen risiko perdagangan.
Pertimbangkan untuk mengadopsi parameter dinamis untuk beradaptasi dengan perubahan pasar.
Terakhir, kami melakukan pengujian ulang pada lebih banyak varietas dan siklus.
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.
/*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")