
Strategi ini didasarkan pada dua garis rata-rata dan indikator kekuatan relatif, digabungkan dengan volatilitas historis saham, untuk melakukan pembelian dan penjualan saham secara otomatis. Keuntungan dari strategi ini adalah penggabungan garis panjang dan garis pendek, yang dapat secara efektif mengendalikan risiko. Namun, ada juga ruang untuk perbaikan tertentu, misalnya dapat dipertimbangkan untuk memasukkan mekanisme stop loss.
Strategi ini menggunakan sistem garis rata ganda yang terdiri dari garis rata-rata linea 150 minggu dan garis rata-rata cepat 50 hari, serta garis rata-rata tercepat 20 hari. Ketika harga melewati garis 150 minggu, maka dianggap sebagai awal kenaikan, dan ketika harga melewati garis 50 hari, maka dianggap sebagai awal penurunan.
Selain itu, strategi ini juga menggunakan harga tertinggi fluktuasi tahunan dan indikator kekuatan relatif untuk menentukan waktu pembelian tertentu. Hanya ketika harga penutupan melebihi harga tertinggi yang dihitung dari fluktuasi tahunan dan indikator kekuatan relatif positif, sinyal beli akan dikirim.
Untuk mengatasi risiko, Anda dapat mengatur stop loss, atau menggunakan kelipatan indikator ATR sebagai stop loss. Selain itu, Anda dapat mengoptimalkan parameter dengan pengukuran yang lebih ketat.
Strategi ini secara keseluruhan merupakan strategi investasi saham yang relatif konservatif. Strategi ini menggunakan dua garis rata untuk menilai tren utama, dan digabungkan dengan volatilitas dan intensitas indikator masuk, dapat secara efektif menyaring terobosan palsu.
/*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)