Strategi Trend Jangkauan Harga

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

img

Ringkasan

Strategi ini menggunakan penunjuk momentum untuk mengesan pergerakan harga jangka pendek dan menentukan arah trend pasaran untuk operasi membeli dan menjual.

Prinsip-prinsip

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.

Analisis Kelebihan

  • Strategi ini menilai trend dengan cepat dan dapat menangkap pergerakan harga jangka pendek dengan cepat, yang sesuai untuk operasi jangka pendek
  • Elakkan disesatkan oleh gangguan palsu melalui penapisan jumlah
  • Melaksanakan logik operasi mengejar naik dan membunuh jatuh
  • Frekuensi dagangan yang tinggi, sesuai untuk pelabur agresif

Analisis Risiko

  • Ringan terhadap kesan turun naik pasaran yang tidak normal, dengan risiko isyarat palsu tertentu
  • Risiko lipatan yang disebabkan oleh perdagangan yang kerap
  • Mungkin terlepas trend jangka sederhana dan jangka panjang, dan keuntungan jangka panjang perlu disahkan

Arahan pengoptimuman

  • Sesuaikan parameter penunjuk momentum untuk mengoptimumkan kesan penilaian
  • Mengoptimumkan parameter penapisan jumlah untuk meningkatkan kualiti isyarat
  • Meningkatkan mekanisme stop-loss untuk mengawal kerugian tunggal
  • Menggabungkan lebih banyak faktor untuk memastikan pelbagai faktor didorong

Kesimpulan

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())








Lebih lanjut