
Die Strategie nutzt Dynamikindikatoren, um kurzfristige Preisänderungen zu verfolgen, die Richtung der Markttrends zu bestimmen und Kauf- und Verkaufsaktionen durchzuführen. Die Strategie wird als Price Volume Trend Strategy bezeichnet und spiegelt die Idee der Strategie wider, die Preisänderungen und Transaktionsvolumen zu bestimmen.
Die Strategie berechnet zunächst die Dynamik der Preise. Durch die Berechnung der Differenz zwischen den Preisen der aktuellen und der vorherigen Periode kann die absolute Veränderung der Preise in der jüngsten Periode reflektiert werden. Positive Werte bedeuten einen Preisanstieg, negative Werte bedeuten einen Preisrückgang.
Wenn der neueste Preis größer als die durchschnittliche Dynamik ist, bedeutet dies, dass der Preis steigt. Wenn der neueste Preis kleiner als die durchschnittliche Dynamik ist, bedeutet dies, dass der Preis fällt.
Die Beurteilung des Preisanstiegs und des Preisrückgangs, die entsprechenden Kauf- und Verkaufsaktionen.
Die Strategie überall verfolgt kurzfristige Preisentwicklungen durch dynamische Indikatoren, um schnell zu entscheiden, wann man kauft und verkauft. Der Vorteil ist, schnell zu handeln, um den Rückgang zu verhindern. Der Nachteil ist, dass die Signalqualität und die langfristige Profitabilität zu berücksichtigen sind. Durch die Parameteranpassung und die Erhöhung der Windkontrollmechanismen kann die Strategie ein wichtiger Bestandteil der Hochfrequenzstrategie sein und in Kombination mit anderen Lowfrequency-Strategien verwendet werden.
/*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())