
Strategi ini bertujuan untuk mewujudkan strategi perdagangan Scalper untuk membeli dan memegang mata wang secara automatik berdasarkan RSI dan EMA secara rawak. Ia digunakan untuk garis K 5 minit dan dioptimumkan untuk BTC.
Strategi ini menggunakan indikator RSI untuk menentukan sama ada terdapat kawasan overbought atau oversold, dan menggabungkan hubungan nilai K dan nilai D indikator RSI secara rawak untuk menghantar isyarat beli dan jual.
Apabila garis K RSI secara rawak berada di bawah 20, ia dianggap sebagai oversold dan menghasilkan isyarat beli apabila garis K lebih besar daripada garis D. Kemudian, ia akan dinilai berdasarkan tiga syarat untuk menentukan sama ada dijual: 1) EMA berbalik selepas kenaikan harga lebih daripada 1%, 2) apabila garis K RSI secara rawak berada di bawah garis D, 3) apabila harga henti mencapai 98.5% daripada harga masuk.
Di samping itu, EMA jangka pendek yang berbalik ke bawah selepas kenaikan juga dianggap sebagai isyarat menjual.
Strategi ini mengintegrasikan kelebihan pelbagai petunjuk seperti RSI dan EMA secara rawak, menggunakan kaedah yang lebih mantap untuk menentukan masa membeli dan menjual. Dengan pengoptimuman parameter dan pengurusan risiko, anda dapat meningkatkan lagi keuntungan dan kestabilan strategi. Secara keseluruhannya, strategi ini logiknya masuk akal dan layak untuk disahkan dan dioptimumkan 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)