
Strategi ini bertujuan untuk mewujudkan strategi perdagangan Scalper untuk membeli dan memegang mata uang secara otonom berdasarkan indikator RSI dan EMA acak. Ini berlaku untuk K-line 5 menit dan dioptimalkan untuk BTC.
Strategi ini menggunakan indikator RSI untuk menentukan apakah ada zona overbought atau oversold, dan menggabungkan hubungan nilai K dan nilai D dari indikator RSI acak untuk mengirim sinyal beli dan jual.
Ketika K-line RSI acak di bawah 20 dianggap oversold, dan menghasilkan sinyal beli ketika K-line lebih besar dari D-line. Setelah itu, akan dinilai apakah dijual berdasarkan tiga kondisi: 1) Reversal EMA terjadi setelah kenaikan harga lebih dari 1%; 2) K-line RSI acak di bawah D-line; 3) Stop loss harga mencapai 98.5% dari harga masuk.
Selain itu, ketika EMA jangka pendek berbalik ke bawah setelah naik, itu juga dianggap sebagai sinyal jual.
Strategi ini mengintegrasikan keunggulan dari beberapa indikator, seperti RSI dan EMA acak, menggunakan metode yang lebih solid untuk menentukan kapan harus membeli dan menjual. Dengan pengoptimalan parameter dan manajemen risiko, strategi ini dapat meningkatkan keuntungan dan stabilitas strategi lebih lanjut. Secara keseluruhan, strategi ini logis dan layak untuk diverifikasi dan dioptimalkan di lapangan.
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Stochastic RSI W Auto Buy Scalper Scirpt III ", shorttitle="Stoch RSI_III", format=format.price, precision=2)
smoothK = input.int(3, "K", minval=1)
smoothD = input.int(3, "D", minval=1)
lengthRSI = input.int(14, "RSI Length", minval=1)
lengthStoch = input.int(14, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = ta.sma(k, smoothD)
plot(k, "K", color=#2962FF)
plot(d, "D", color=#FF6D00)
h0 = hline(80, "Upper Band", color=#787B86)
hline(50, "Middle Band", color=color.new(#787B86, 50))
h1 = hline(20, "Lower Band", color=#787B86)
longStopLoss = strategy.opentrades.entry_price(0)* (.985)
stochDropping = ta.falling(k,2)
shortSma = ta.sma(hlc3,12)
shorterSma = ta.sma(hlc3,3)
plot(shortSma[3])
shortSmaFlip = (ta.change(shortSma,3)>0) and ta.falling(hlc3,1)
shorterSmaFlip = (ta.change(shorterSma,2)>0) and ta.falling(hlc3,1)
messageSellText ='"type": "sell", "symbol": "BTCUSD", "marketPosition": "{{strategy.market_position}}"'
messageBuyText ='"type": "buy", "symbol": "BTCUSD", "marketPosition": {{strategy.market_position}}"'
fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")
strategy.entry("Tech", strategy.long, when=(strategy.position_size <= 0 and k<17 and k>d),alert_message=messageBuyText)
//original: strategy.close("TL", when=(strategy.position_size >= 0 and (k>90 and k<d)))
takeProfit = hlc3 > strategy.opentrades.entry_price(0)*1.01
//longStopLoss = strategy.opentrades.entry_price(0)* (.995)
strategy.close("Tech", when=(strategy.position_size >= 0 and (k>90 and k<d and stochDropping)) or close<longStopLoss, comment="rsi or Stop sell",alert_message=messageSellText)
//strategy.close("Tech", when=(strategy.position_size >= 0 and close<longStopLoss), comment="stopLoss sell",alert_message=messageSellText)
strategy.close("Tech", when=(shortSmaFlip and k>20 and takeProfit),comment="Sma after profit",alert_message=messageSellText)