Strategi ini berdagang berdasarkan tiga rata-rata bergerak dalam bentuk garisan emas dan garisan mati. Berdagang lebih banyak apabila bergerak cepat melalui garisan sederhana dan perlahan melalui garisan sederhana; berdagang kosong apabila bergerak cepat melalui garisan sederhana di bawah rata-rata bergerak dan perlahan melalui garisan sederhana.
Khususnya, strategi ini menggunakan persilangan antara tiga purata bergerak berkala yang berbeza untuk perdagangan. Garis cepat mewakili trend jangka pendek semasa, garis menengah mewakili trend jangka menengah, dan garis perlahan mewakili trend jangka panjang. Apabila tiga garis rata pendek dan panjang berturut-turut bersilang ke atas, ini menunjukkan permulaan trend, melakukan lebih banyak; apabila bersilang ke bawah, ini menunjukkan pembalikan trend, membuat kosong.
Risiko boleh diuruskan dengan cara menyesuaikan masa pegangan, mengoptimumkan parameter garis rata, memperkenalkan strategi hentikan kerugian dan sebagainya.
Strategi ini berdasarkan tiga garis rata yang bersilang menentukan arah trend untuk memegang kedudukan. Kelebihan adalah bahawa isyarat perdagangan mudah jelas dan boleh dikonfigurasi; Kelemahannya adalah mudah terlambat dan memerlukan pengoptimuman parameter.
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © DaynTrading
//@version=4
// strategy(
// title="Simple Moving Average Cross",
// overlay=true,
// initial_capital=5000,
// default_qty_type=strategy.percent_of_equity,
// default_qty_value=2,
// commission_type=strategy.commission.percent,
// commission_value=0.075,
// pyramiding=0
// )
sma_top_input = input(title="SMA Top", type=input.integer, defval=20)
sma_mid_input = input(title="SMA Mid", type=input.integer, defval=50)
sma_low_input = input(title="SMA Low", type=input.integer, defval=200)
bars_long = input(title="Long: After trigger, how many bars to wait?", type=input.integer, defval=5)
bars_short = input(title="Short: After trigger, how many bars to wait?", type=input.integer, defval=5)
sma_top = sma(close, sma_top_input)
sma_mid = sma(close, sma_mid_input)
sma_low = sma(close, sma_low_input)
long = sma_top > sma_mid and sma_mid > sma_low
short = sma_top < sma_mid and sma_mid < sma_low
long_condition = long and long[bars_long] and not long[bars_long + 1]
short_condition = short and short[bars_short] and not short[bars_short + 1]
close_long = sma_top < sma_mid and sma_mid < sma_low and not long[bars_long + 1]
close_short = sma_top > sma_mid and sma_mid > sma_low and not short[bars_short + 1]
plot(sma_top, title="SMA Top", color=#95f252, linewidth=2)
plot(sma_mid, title="SMA Mid", color=#FF1493, linewidth=2)
plot(sma_low, title="SMA Low", color=#6a0dad, linewidth=2)
strategy.entry("LongPosition", strategy.long, when = long_condition)
strategy.entry("ShortPosition", strategy.short, when = short_condition)
strategy.close("LongPosition", when = close_short)
strategy.close("ShortPosition", when = close_long)