Penunjuk momentum menjejaki strategi perubahan harga jangka pendek


Tarikh penciptaan: 2023-12-25 13:09:48 Akhirnya diubah suai: 2023-12-25 13:09:48
Salin: 0 Bilangan klik: 554
1
fokus pada
1623
Pengikut

Penunjuk momentum menjejaki strategi perubahan harga jangka pendek

Gambaran keseluruhan

Strategi ini menggunakan indikator momentum untuk mengesan perubahan harga jangka pendek, menentukan arah trend pasaran, melakukan pembelian dan penjualan. Strategi ini dinamakan “Price Volume Trend Strategy” dan mencerminkan strategi yang menggunakan perubahan harga dan perubahan volume transaksi untuk menentukan trend.

Prinsip Strategi

Strategi ini pertama-tama mengira pergerakan harga. Dengan mengira perbezaan harga kitaran semasa berbanding harga kitaran sebelumnya, ia dapat mencerminkan perubahan mutlak harga dalam kitaran terbaru. Nilai positif menunjukkan kenaikan harga, nilai negatif menunjukkan penurunan harga.

Apabila harga terkini lebih besar daripada pergerakan purata, harga meningkat; apabila harga terkini kurang daripada pergerakan purata, harga menurun. Berdasarkan petunjuk ini, arah trend harga ditentukan.

Mengambil tindakan pembelian dan penjualan yang sesuai mengikut trend kenaikan dan penurunan harga yang dinilai.

Analisis kelebihan

  • Strategi menilai trend dengan cepat, dapat menangkap perubahan harga jangka pendek dengan cepat, sesuai untuk operasi garis pendek
  • Mengelakkan penipuan oleh penembusan palsu dengan penapisan jumlah transaksi
  • Logik operasi untuk mengejar dan membunuh
  • Frekuensi dagangan yang tinggi, sesuai untuk pelabur aktif

Analisis risiko

  • Mudah terdedah kepada turun naik pasaran yang tidak normal, terdapat risiko isyarat palsu
  • Risiko tergelincir yang sering berlaku dalam perdagangan
  • Mungkin terlepas trend jangka panjang, keuntungan jangka panjang perlu disahkan

Arah pengoptimuman

  • Menyesuaikan parameter penunjuk pergerakan untuk mengoptimumkan keputusan
  • Optimumkan parameter penapisan kuantiti lalu lintas untuk meningkatkan kualiti isyarat
  • Meningkatkan mekanisme penangguhan kerugian dan mengawal kerugian tunggal
  • Menggabungkan lebih banyak faktor penilaian untuk memastikan pemanduan pelbagai faktor

ringkaskan

Strategi ini secara keseluruhan menjejaki trend perubahan harga jangka pendek melalui indikator dinamik, dengan cepat menilai masa membeli dan menjual. Kelebihan adalah operasi cepat, mengejar kejatuhan; kelemahan adalah kualiti isyarat dan keuntungan jangka panjang yang perlu dipertimbangkan. Dengan penyesuaian parameter, mekanisme kawalan angin dipertingkatkan, strategi ini boleh menjadi bahagian penting dalam strategi frekuensi tinggi, digunakan bersama dengan portfolio strategi frekuensi rendah yang lain.

Kod sumber strategi
/*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())