Strategi Tren Volume Harga

Penulis:ChaoZhang, Tanggal: 2023-12-25 13:09:48
Tag:

img

Gambaran umum

Strategi ini menggunakan indikator momentum untuk melacak pergerakan harga jangka pendek dan menentukan arah tren pasar untuk operasi beli dan jual.

Prinsip-prinsip

Strategi ini pertama-tama menghitung momentum harga. Dengan menghitung perbedaan antara harga periode saat ini dan harga periode sebelumnya, dapat mencerminkan perubahan absolut harga selama periode terakhir. Nilai positif menunjukkan kenaikan harga, dan nilai negatif menunjukkan penurunan harga. Kemudian rata-rata bergerak dari nilai perbedaan ini dihitung untuk penyaringan untuk mendapatkan indikator momentum rata-rata.

Bila harga terakhir lebih besar dari momentum rata-rata, ini menunjukkan bahwa harga naik. Ketika harga terakhir kurang dari momentum rata-rata, ini menunjukkan bahwa harga turun. Tentukan arah tren harga berdasarkan indikator ini. Dikombinasikan dengan penyaringan amplifikasi volume, hanya sinyal dengan volume perdagangan yang relatif besar yang dipilih dalam perdagangan aktual.

Menurut tren harga naik dan turun yang diidentifikasi, transaksi pembelian dan penjualan yang sesuai dilakukan.

Analisis Keuntungan

  • Strategi menilai tren dengan cepat dan dapat dengan cepat menangkap pergerakan harga jangka pendek, yang cocok untuk operasi jangka pendek
  • Hindari tertipu oleh kebohongan palsu melalui penyaringan volume
  • Mengimplementasikan logika operasi mengejar naik dan membunuh jatuh
  • Frekuensi perdagangan yang tinggi, cocok untuk investor agresif

Analisis Risiko

  • Kerentanan terhadap dampak fluktuasi pasar yang tidak normal, dengan risiko sinyal palsu tertentu
  • Risiko slippage yang disebabkan oleh perdagangan yang sering
  • Mungkin kehilangan tren jangka menengah dan panjang, dan profitabilitas jangka panjang perlu diverifikasi

Arahan Optimasi

  • Sesuaikan parameter indikator momentum untuk mengoptimalkan efek penilaian
  • Mengoptimalkan parameter penyaringan volume untuk meningkatkan kualitas sinyal
  • Meningkatkan mekanisme stop-loss untuk mengendalikan kerugian tunggal
  • Menggabungkan lebih banyak faktor untuk memastikan multi-faktor didorong

Kesimpulan

Strategi secara keseluruhan melacak tren perubahan harga jangka pendek melalui indikator momentum, dan dengan cepat menentukan waktu masuk dan keluar. Keuntungannya adalah operasi cepat, mengejar naik dan membunuh jatuh. Kelemahannya adalah kualitas sinyal dan profitabilitas jangka panjang perlu diperiksa. Melalui penyesuaian parameter dan mekanisme pengendalian risiko yang ditingkatkan, strategi dapat menjadi komponen penting dari strategi frekuensi tinggi, dikombinasikan dengan 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())








Lebih banyak