
Strategi ini menggunakan indikator dinamika untuk melacak perubahan harga jangka pendek, menilai arah tren pasar, melakukan pembelian dan penjualan. Strategi ini disebut Price Volume Trend Strategy, yang mencerminkan strategi yang menggunakan perubahan harga dan perubahan volume transaksi untuk menilai tren.
Strategi ini pertama-tama menghitung pergerakan harga. Dengan menghitung perbedaan harga periode saat ini dari harga periode sebelumnya, dapat mencerminkan perubahan mutlak harga dalam periode terbaru. Positif menunjukkan kenaikan harga, negatif menunjukkan penurunan harga.
Ketika harga terbaru lebih besar dari pergerakan rata-rata, berarti harga naik; ketika harga terbaru lebih kecil dari pergerakan rata-rata, berarti harga turun. Berdasarkan indikator ini, arah tren harga ditentukan.
Dengan harga yang naik dan turun, maka Anda dapat melakukan pembelian dan penjualan sesuai dengan tren tersebut.
Strategi overall melacak tren perubahan harga jangka pendek melalui indikator dinamis, dan dengan cepat menilai waktu pembelian dan penjualan. Keuntungan adalah operasi cepat, mengejar ketinggalan; kekurangan adalah kualitas sinyal dan profitabilitas jangka panjang yang harus dipertimbangkan. Dengan penyesuaian parameter, peningkatan mekanisme pengendalian angin, strategi ini dapat menjadi bagian penting dari strategi frekuensi tinggi, yang digunakan bersama dengan portofolio strategi frekuensi rendah lainnya.
/*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())