
Strategi ini berdasarkan kepada dinamika rata-rata garis petunjuk, untuk mewujudkan trend harga yang real-time pengesanan, melalui pemecahan garis rata-rata untuk menghantar isyarat perdagangan. Keuntungan strategi adalah parameter yang mudah, isyarat penilaian yang jelas, sesuai untuk memegang kedudukan panjang dan sederhana.
Strategi ini menggunakan indikator garis rata yang dinamik, termasuk pelbagai jenis garis rata seperti ALMA, EMA, SMA dan lain-lain. Prinsip asasnya adalah, apabila harga melewati garis rata di atas, lakukan lebih banyak; apabila harga melewati garis rata di bawah, lakukan kosong.
Khususnya, strategi menggunakan garis rata yang terbentuk pada titik rendah yang tinggi, dan kemudian menggunakan garis rata-rata rendah sebagai garis sinyal ganda, dan garis rata-rata tinggi sebagai garis sinyal pendek. Apabila harga penutupan lebih tinggi daripada garis rata-rata rendah, lakukan lebih banyak; Apabila harga penutupan lebih rendah daripada garis rata-rata tinggi, buat kosong.
Dengan cara ini, indikator garis rata digunakan untuk menentukan trend harga, dan kemudian digabungkan dengan prinsip penembusan untuk menghantar isyarat, membentuk strategi trend yang mudah dan praktikal.
Strategi ini menggunakan indikator garis rata untuk menentukan arah trend harga, dan menghantar isyarat perdagangan berdasarkan teori penembusan. Kelebihannya adalah mudah digunakan, sesuai untuk memegang kedudukan garis panjang dan menengah, dan boleh disesuaikan dengan parameter untuk menyesuaikan diri dengan perubahan pasaran. Perlu berhati-hati untuk mengelakkan guncangan jangka pendek dan risiko yang dibawa oleh pemegang jangka panjang, yang dapat diselesaikan dengan menghentikan kerugian.
/*backtest
start: 2023-12-02 00:00:00
end: 2024-01-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Baseline Strategy - evo", shorttitle="Baseline", overlay=true)
//INPUTS
mat = input("ALMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "ALMA"])
baseline = input(55, title="MA Length")
src = input(ohlc4, title="Closing Source")
offset = input(0.85, step=0.05, title="Offset (alma only)")
sigma = input(10, title="Sigma (alma only)")
useCurrentRes = input(true, title="Use Current Resolution")
resCustom = input("1440", title="Timeframe")
showsignals = input(false, title="Show Signals ?")
//BASELINE
baselinehigh =
mat=="SMA" ? sma(high,baseline) :
mat=="EMA" ? ema(high,baseline) :
mat=="WMA" ? wma(high,baseline) :
mat=="HMA" ? wma(2*wma(high, baseline/2)-wma(high, baseline), round(sqrt(baseline))) :
mat=="VWMA" ? vwma(high,baseline) :
mat=="RMA" ? rma(high,baseline) :
mat=="ALMA" ? alma(high, baseline, offset, sigma) : na
baselinelow =
mat=="SMA" ? sma(low,baseline) :
mat=="EMA" ? ema(low,baseline) :
mat=="WMA" ? wma(low,baseline) :
mat=="HMA" ? wma(2*wma(low, baseline/2)-wma(low, baseline), round(sqrt(baseline))) :
mat=="VWMA" ? vwma(low,baseline) :
mat=="RMA" ? rma(low,baseline) :
mat=="ALMA" ? alma(low, baseline, offset, sigma) : na
//RESOLUTION
res = useCurrentRes ? timeframe.period : resCustom
mtfhigh = security(syminfo.tickerid, res, baselinehigh)
mtflow = security(syminfo.tickerid, res, baselinelow)
//PLOTS
plot(mtfhigh, color=color.navy, linewidth=2, transp=0, title="Baseline High")
plot(mtflow, color=color.navy, linewidth=2, transp=0, title="Baseline Low")
long = src > mtfhigh
short = src < mtflow
barcolor(long ? #ffe0b2 : short ? #2a2e39 : not long and not short ? #b09e82 : na, title="BaseLine BarColor")
signal = 0
signal := long ? 1 : short ? 2 : nz(signal[1])
plotshape(showsignals ? (signal != signal[1] and long ? mtflow : na) : na, title="Long", location=location.absolute, size=size.small, style=shape.labelup, text="Long", textcolor=color.black, transp=40, color=#00ff00)
plotshape(showsignals ? (signal != signal[1] and short ? mtfhigh : na) : na, title="Short", location=location.absolute, size=size.small, style=shape.labeldown, text="Short", textcolor=color.white, transp=40, color=#ff0000)
alertcondition(signal != signal[1], title="Trend Change !", message="Trend Change !")
if (long)
strategy.entry("Long", strategy.long)
if (short)
strategy.entry("Short", strategy.short)