Strategi ini menggunakan penunjuk momentum untuk mengesan pergerakan harga jangka pendek dan menentukan arah trend pasaran untuk operasi membeli dan menjual.
Strategi ini mula-mula mengira momentum harga. Dengan mengira perbezaan antara harga tempoh semasa dan harga tempoh sebelumnya, ia dapat mencerminkan perubahan mutlak harga dalam tempoh terakhir. Nilai positif menunjukkan kenaikan harga, dan nilai negatif menunjukkan penurunan harga. Kemudian purata bergerak nilai perbezaan ini dikira untuk penapisan untuk mendapatkan penunjuk momentum purata.
Apabila harga terkini lebih besar daripada momentum purata, ia menunjukkan bahawa harga meningkat. Apabila harga terkini kurang daripada momentum purata, ia menunjukkan bahawa harga jatuh. Tentukan arah trend harga berdasarkan penunjuk ini. Digabungkan dengan penapisan amplifikasi jumlah, hanya isyarat dengan jumlah perdagangan yang agak besar dipilih dalam perdagangan sebenar.
Menurut trend harga menaik dan menurun yang dikenal pasti, operasi pembelian dan penjualan yang sepadan dijalankan.
Strategi secara keseluruhan mengesan trend perubahan harga jangka pendek melalui penunjuk momentum, dan dengan cepat menentukan masa masuk dan keluar. Kelebihannya adalah operasi cepat, mengejar kenaikan dan membunuh kejatuhan. Kelemahannya adalah kualiti isyarat dan keuntungan jangka panjang perlu diperiksa. Melalui penyesuaian parameter dan mekanisme kawalan risiko yang ditingkatkan, strategi boleh menjadi komponen penting strategi frekuensi tinggi, digabungkan dengan strategi frekuensi rendah yang lain.
/*backtest start: 2022-12-18 00:00:00 end: 2023-12-24 00:00:00 period: 1d basePeriod: 1h 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/ // © russtic //@version=2 strategy("HA smoothed eliminator v2 ",pyramiding=1, slippage=10, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.075, overlay=true, default_qty_value=100, initial_capital=1000) FromMonth1 = input(defval=1, title="From Month", minval=1, maxval=12) FromDay1 = input(defval=1, title="From Day", minval=1, maxval=31) FromYear1 = input(defval=2019, title="From Year", minval=2010) ToMonth1 = input(defval=12, title="To Month", minval=1, maxval=12) ToDay1 = input(defval=31, title="To Day", minval=1, maxval=31) ToYear1 = input(defval=2020, title="To Year", minval=2010) start1 = timestamp(FromYear1, FromMonth1, FromDay1, 00, 00) finish1 = timestamp(ToYear1, ToMonth1, ToDay1, 23, 59) window1() => true t1 = time(timeframe.period, "0300-1200") t2 = time(timeframe.period, "0930-1700") London = na(t1) ? na : green NY = na(t2) ? na : red bgcolor(London, title="London") bgcolor(NY, title="New York") /////////////////////////// // HA smoothed len=(1 ) o=ema(open,len) c=ema(close,len) h=ema(high,len) l=ema(low,len) haclose = (o+h+l+c)/4 haopen = na(haopen[1]) ? (o + c)/2 : (haopen[1] + haclose[1]) / 2 hahigh = max (h, max(haopen,haclose)) halow = min (l, min(haopen,haclose)) len2=(len) o2=ema(haopen, len2) c2=ema(haclose, len2) h2=ema(hahigh, len2) l2=ema(halow, len2) buy= (o2<c2) closebuy= (o2>c2) sell= (o2>c2) closesell= (o2<c2) // /// END NEW SCRIPT // // // MERGE SCRIPTS a1= o2<c2 b1=o2>c2 is_uptrend = (a1)// and (p> 0) is_downtrend = (b1)// and (p <0) barcolor(b1 ? red: a1 ? lime : blue) //end // =========================start PVT -GIVES EACH BAR A VALUE facton = (true)//, title="arrow elimination (factor) on ") Length1 = 2//input(2, title="PVT Length", minval=1) xPrice = close//input(title="Source", type=source, defval=close) xsma = wma(xPrice, Length1) nRes = xPrice - xsma pos = iff(nRes > 0, 1, iff(nRes < 0, -1, nz(pos[1], 0))) forex= input(true, title = 'strength toggle ') forexyes = (forex == true)? 10000 : (forex == false)? 1: na plot(nRes*forexyes , color=aqua, title="strength", transp=100) // ========================= end pvt // //============================= start factor // ELIMINATES weak signals // start trend // factor = input(600.00, title = "strength elimination") factor1 = factor - (factor*2)//input(-100.00, title = "sell strength elimination ") facton1 = (facton == true) and is_uptrend == 1 and nRes*forexyes>factor ? 1 : (facton == true) and is_downtrend == 1 and nRes*forexyes<factor1 ? -1 : (facton == false) // ==================== ===== // //=========================== end factor nRestrend = (nRes*forexyes) //=========================== plot arrows plot1 = iff(is_uptrend[1] == 1, 0 , 1) plot2 = iff(is_downtrend[1] == 1, 0 , 1) uparrowcond = is_downtrend ? false : nz(uparrowcond[1], false) == true ? uparrowcond[1] : (facton1 and is_uptrend and nRes*forexyes>factor) downarrowcond = is_uptrend ? false : nz(downarrowcond[1], false) == true ? downarrowcond[1] : (facton1 and is_downtrend and nRes*forexyes<factor1) //prevarrowstate = uparrowcond ? 1 : downarrowcond ? -1 : nz(prevarrowstate[1], 0) candledir = (open < close)? 1: (open>close)? -1 : na // ONLY OPENS ON SAME BAR DIRECTION AS SIGNAL up=nz(uparrowcond[1], false) == false and ( is_uptrend and nRes*forexyes>factor) and candledir ? 1:na dn=nz(downarrowcond[1], false) == false and ( is_downtrend and nRes*forexyes<factor1) and candledir? -1:na sig=0 if up==1 sig:=1 else if dn==-1 sig:=-1 else sig:=sig[1] plotarrow(sig[1]!=1 and sig==1?1:na, title="BUY ARROW", colorup=lime, maxheight=80, minheight=50, transp=0)// up arrow plotarrow(sig[1]!=-1 and sig==-1?-1:na, title="SELL ARROW", colordown=red, maxheight=80, minheight=50, transp=0)// down arrow //========================= alert condition alertcondition(sig[1]!=1 and sig==1?1:na, title="BUY eliminator", message="BUY " ) alertcondition(sig[1]!=-1 and sig==-1?-1:na, title="SELL eliminator", message="SELL ") strategy.entry("B", true, when=(sig[1]!=1 and sig==1?1:na) and window1()) strategy.entry("S", false,when=(sig[1]!=-1 and sig==-1?-1:na) and window1())