
Strategi ini menggunakan simpulan garis purata yang bersilang dan purata gelombang sebenar untuk menghasilkan isyarat membeli dan menjual, termasuk dalam strategi jenis trend. Ia menggunakan garis purata 50 hari dan garis purata 100 hari untuk menentukan trend, menggunakan penunjuk ATR untuk menetapkan titik berhenti untuk mengawal risiko.
Ia dapat dilihat bahawa strategi ini bergantung kepada keupayaan untuk menilai trend pada garis rata, dan keupayaan untuk mengawal risiko pada indikator ATR. Prinsip asasnya mudah dan jelas, mudah difahami dan dilaksanakan.
Kaedah untuk mengawal risiko:
Strategi ini adalah strategi trend-tracking yang tipikal, menggunakan arah trend penilaian rata-rata, ATR menetapkan stop loss untuk mengawal risiko, asasnya mudah dan mudah difahami. Tetapi terdapat beberapa keterlambatan dan risiko isyarat palsu, boleh diperbaiki dengan cara menyesuaikan parameter, pengoptimuman penunjuk, menggabungkan lebih banyak faktor, dan lain-lain, untuk menjadikan strategi lebih sesuai dengan keadaan pasaran yang berubah-ubah.
/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SMA and ATR Strategy", overlay=true)
// Step 1. Define strategy settings
lengthSMA1 = input.int(50, title="50 SMA Length")
lengthSMA2 = input.int(100, title="100 SMA Length")
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.int(4, title="ATR Multiplier")
// Step 2. Calculate strategy values
sma1 = ta.sma(close, lengthSMA1)
sma2 = ta.sma(close, lengthSMA2)
atr = ta.atr(atrLength)
// Step 3. Output strategy data
plot(sma1, color=color.blue, title="50 SMA")
plot(sma2, color=color.red, title="100 SMA")
// Step 4. Determine trading conditions
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)
longStopLoss = close - (atr * atrMultiplier)
shortStopLoss = close + (atr * atrMultiplier)
// Step 5. Execute trades based on conditions
if (longCondition)
strategy.entry("Buy", strategy.long)
strategy.exit("Sell", "Buy", stop=longStopLoss)
if (shortCondition)
strategy.entry("Sell", strategy.short)
strategy.exit("Buy", "Sell", stop=shortStopLoss)