
Ini adalah strategi trend mengikut kuantiti bergerak ETF indeks berdasarkan purata bergerak. Ia menggunakan arah dan salinitas persilangan purata bergerak cepat dan purata bergerak perlahan untuk menentukan arah trend dan mencapai trend mengikut kuantiti bergerak aset ETF indeks risiko rendah.
Strategi ini menggunakan purata bergerak 50 kitaran dan 150 kitaran. Apabila rata-rata bergerak cepat melintasi rata-rata bergerak perlahan dan rata-rata bergerak cepat lebih besar daripada paras paras paras paras, maka ia dianggap sebagai perubahan trend, lebih banyak; apabila rata-rata bergerak perlahan melintasi rata-rata bergerak cepat di bawah rata-rata bergerak cepat, atau rata-rata bergerak cepat lebih kecil daripada paras paras paras, maka ia dianggap sebagai pembalikan trend, kedudukan rata.
Strategi ini mudah dan langsung menggunakan arah dan kecenderungan purata bergerak untuk menentukan trend pasaran, mengelakkan penyusunan kurva, dan mengawal risiko dengan berkesan. Pada masa yang sama, purata bergerak secara semula jadi mempunyai ciri-ciri yang tidak bising, yang dapat menyaring bunyi pasaran dengan berkesan.
Ini adalah ETF indeks berisiko rendah yang mempunyai strategi trend trend yang dinamik dan mempunyai kelebihan seperti berikut:
Strategi ini mempunyai beberapa risiko:
Penyelesaian:
Strategi ini juga boleh dioptimumkan dalam beberapa aspek:
Strategi ini adalah strategi trend mengikut kuantiti indeks ETF yang rendah risiko, mudah dilaksanakan. Ia menggunakan arah trend penentuan silang rata-rata bergerak, dengan kelebihan seperti keupayaan kawalan risiko yang kuat, untuk mencapai kos yang rendah, kestabilan pendapatan.
/*backtest
start: 2023-11-04 00:00:00
end: 2023-12-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//please use on daily SPY, or other indexes only
strategy("50-150 INDEX TREND FOLLOWING", overlay=true)
//user input
fastSMA = input(title="Fast Moving Average (Int)",type=input.integer,minval=1,maxval=1000,step=1,defval=50,confirm=false)
slowSMA = input(title="Slow Moving Average (Int)",type=input.integer,minval=1,maxval=1000,step=1,defval=150,confirm=false)
longSlopeThreshold = input(title="Bullish Slope Angle (Deg)",type=input.integer,minval=-90,maxval=90,step=1,defval=5,confirm=false)
shortSlopeThreshold = input(title="Bearish Slope Angle (Deg)",type=input.integer,minval=-90,maxval=90,step=1,defval=-5,confirm=false)
atrValue = input(title="Average True Range (Int)",type=input.integer,minval=1,maxval=100,step=1,defval=14,confirm=false)
risk = input(title="Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=100,confirm=false)
//create indicator
shortSMA = sma(close, fastSMA)
longSMA = sma(close, slowSMA)
//calculate ma slope
angle(_source) =>
rad2degree=180/3.14159265359
ang=rad2degree*atan((_source[0] - _source[1])/atr(atrValue))
shortSlope=angle(shortSMA)
longSlope=angle(longSMA)
//specify crossover conditions
longCondition = (crossover(shortSMA, longSMA) and (shortSlope > longSlopeThreshold)) or ((close > shortSMA) and (shortSMA > longSMA) and (shortSlope > longSlopeThreshold))
exitCondition = crossunder(shortSMA, longSMA) or (shortSlope < shortSlopeThreshold)
strategy.initial_capital = 50000
//units to buy
amount = (risk / 100) * (strategy.initial_capital + strategy.netprofit)
units = floor(amount / close)
//long trade
if (longCondition and strategy.position_size == 0)
strategy.order("Long", strategy.long, units)
//close long trade
if (exitCondition and strategy.position_size > 0)
strategy.order("Exit", strategy.short, strategy.position_size)
// Plot Moving Average's to chart
plot(shortSMA, color=color.blue)
plot(longSMA, color=color.green)