Strategi ini mengukur waktu tinggal harga di zona yang berbeda untuk mengidentifikasi zona gesekan rendah, dan perdagangan breakout di zona ini.
Menghitung rasio harga tinggal di sekitar tingkat saat ini selama periode N terakhir sebagai gesekan harga.
Tentukan apakah harga memasuki zona gesekan rendah dengan waktu tinggal minimal baru-baru ini.
Menggunakan MA yang diimbang cepat untuk menentukan arah tren baru-baru ini.
Ambil keuntungan ketika harga kembali memasuki zona gesekan tinggi mengantisipasi pembalikan tren.
Parameter yang dapat disesuaikan termasuk lookback gesekan, zona istirahat dll.
Pergeseran harga menghindari pasar yang berbeda dan menemukan zona terjadinya tren.
MA cepat menggabungkan dengan gesekan untuk menentukan arah.
Visual intuitif menampilkan tingkat gesekan harga.
Parameter default dioptimalkan untuk perdagangan frekuensi tinggi kripto.
Logika sederhana dan jelas mudah dimengerti dan disesuaikan.
Ketegangan harga tidak dapat sepenuhnya memprediksi pergerakan masa depan.
MA cepat dapat menghasilkan waktu yang tidak akurat.
Perataan masuk dan keluar dari perdagangan yang tidak efektif.
Optimasi berisiko terlalu pas.
Parameter tetap dapat berkinerja buruk di pasar yang tidak stabil.
Uji periode yang berbeda untuk menghitung gesekan harga.
Mengevaluasi berbagai jenis MA untuk menentukan tren terbaru.
Mengoptimalkan parameter zona breakout untuk stabilitas yang lebih tinggi.
Tambahkan stop loss dan mengambil keuntungan untuk manajemen risiko.
Pertimbangkan parameter dinamis untuk beradaptasi dengan perubahan pasar.
Uji balik di lebih banyak simbol dan kerangka waktu.
Strategi ini memperdagangkan zona gesekan harga dengan potensi breakout probabilitas tinggi, dengan pro dan kontra. Peningkatan seperti optimasi dinamis dan manajemen risiko dapat membuatnya lebih kuat 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")