
Strategi ini berdasarkan kepada dua garis rata-rata dan penunjuk kekuatan relatif, digabungkan dengan kadar turun naik sejarah saham, untuk membeli dan menjual saham secara automatik. Kelebihan strategi ini adalah mewujudkan gabungan garis panjang dan garis pendek, yang dapat mengawal risiko dengan berkesan. Tetapi ada ruang untuk penambahbaikan tertentu, seperti boleh mempertimbangkan untuk memasukkan mekanisme penangguhan kerugian.
Strategi ini menggunakan sistem dua garis rata-rata yang terdiri daripada garis rata-rata 150 minggu dan garis rata-rata 50 hari, dan garis rata-rata 20 hari yang paling cepat. Apabila harga melewati garis 150 hari, ia dianggap sebagai permulaan kenaikan harga, dan apabila harga melewati garis 50 hari, ia dianggap sebagai permulaan penurunan.
Di samping itu, strategi ini juga menggunakan harga tertinggi fluktuasi tahunan dan penunjuk kekuatan relatif untuk menentukan masa pembelian tertentu. Isyarat beli dikeluarkan hanya apabila harga penutupan melebihi harga tertinggi yang dikira pada kadar fluktuasi tahunan dan penunjuk kekuatan relatif adalah positif.
Untuk menyelesaikan risiko, anda boleh menetapkan tahap stop loss, atau menggunakan kelipatan indikator ATR sebagai amplitudo stop loss. Selain itu, anda boleh mengoptimumkan parameter dengan pengukuran semula yang lebih ketat.
Strategi ini secara keseluruhan adalah strategi pelaburan saham yang lebih konservatif. Menggunakan garis rata dua untuk menilai trend utama, dan digabungkan dengan kadar turun naik dan kekuatan penunjuk masuk, dapat menyaring penembusan palsu dengan berkesan.
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//Relative Strength
strategy("Stan my man", overlay=true)
comparativeTickerId = input("BTC_USDT:swap", title="Comparative Symbol")
l = input(50, type=input.integer, minval=1, title="Period")
baseSymbol = security(syminfo.tickerid, timeframe.period, close)
comparativeSymbol = security(comparativeTickerId, timeframe.period, close)
hline(0, color=color.black, linestyle=hline.style_dotted)
res = baseSymbol / baseSymbol[l] /(comparativeSymbol / comparativeSymbol[l]) - 1
plot(res, title="RS", color=#1155CC)
//volume ma
vol1 = sma(volume,20)
// 30 week ma
ema1 = ema(close, 150)
//consolidation
h1 = highest(high[1],365)
fastPeriod = input(title="Fast MA", type=input.integer, defval=50)
slowPeriod = input(title="Slow MA", type=input.integer, defval=150)
fastestperiod = input(title="Fastest MA", type=input.integer, defval=20)
fastEMA = ema(close, fastPeriod)
slowEMA = ema(close, slowPeriod)
fastestEMA = ema(close, fastestperiod)
monitorStrategy = close < close[20]
// trade conditions
buytradecondition1 = close >ema1 and res>0 and volume> 1.5*vol1 and close > h1
buytradecondition2 = close > fastEMA and volume> 1.5* vol1
selltradecondition1 = close< 0.95 * fastEMA
selltradecondition2 = close< 0.90 * open
if (buytradecondition1)
strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
alert("Buy Alert Price (" + tostring(close) + ") crossed over Slow moving average",alert.freq_all)
if (buytradecondition2)
strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
alert("Buy Alert Price (" + tostring(close) + ") crossed over fast moving average",alert.freq_all)
if (selltradecondition1)
strategy.close("long",alert_message ="Seems ready to Sell")
alert("Sell Alert Price (" + tostring(close) + ") crossed down fast moving average",alert.freq_all)
if (selltradecondition2)
strategy.close("long",alert_message ="Seems ready to Sell")
alert("Sell Alert Price (" + tostring(close) + ") crossed down 10% below open price ",alert.freq_all)
//alertcondition(buytradecondition1,title ="BuySignal", message ="Price Crossed Slow Moving EMA ")
plot(fastEMA, color=color.navy)
plot(slowEMA, color=color.fuchsia)
plot(fastestEMA, color=color.green)