Esta estratégia utiliza indicadores de momento para rastrear os movimentos de preços a curto prazo e determinar as direções da tendência do mercado para as operações de compra e venda.
A estratégia primeiro calcula o ímpeto dos preços. Ao calcular a diferença entre o preço do período atual e o preço do período anterior, pode refletir a mudança absoluta nos preços no último período. Um valor positivo indica um aumento de preço e um valor negativo indica uma diminuição de preço. Em seguida, a média móvel desse valor de diferença é calculada para filtragem para obter o indicador de ímpeto médio.
Quando o último preço é maior que o momento médio, ele indica que o preço está subindo. Quando o último preço é menor que o momento médio, ele indica que o preço está caindo. Determine a direção da tendência do preço com base neste indicador. Combinado com a filtragem de amplificação de volume, apenas sinais com volumes de negociação relativamente grandes são selecionados na negociação real.
De acordo com as tendências ascendentes e descendentes de preços identificadas, são realizadas operações de compra e venda correspondentes.
A estratégia global rastreia as tendências de mudança de preço a curto prazo através de indicadores de impulso e determina rapidamente o tempo de entrada e saída. As vantagens são a operação rápida, perseguindo subidas e matando quedas. As desvantagens são a qualidade do sinal e a rentabilidade a longo prazo precisam ser examinadas. Através de ajustes de parâmetros e mecanismos aprimorados de controle de risco, a estratégia pode se tornar um componente importante das estratégias de alta frequência, combinada com outras estratégias de baixa frequência.
/*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())