RSI Stochastic dengan Strategi Scalper Beli Otomatik

Penulis:ChaoZhang, Tarikh: 2023-10-31 11:34:47
Tag:

img

Ringkasan

Strategi ini bertujuan untuk melaksanakan strategi perdagangan scalper syiling pembelian dan memegang automatik berdasarkan indikator teknikal Stochastic RSI dan EMA. Ia direka untuk lilin 5 minit, dioptimumkan untuk BTC. Matlamatnya adalah untuk memegang syiling sebanyak mungkin semasa penurunan sampingan atau tidak signifikan.

Logika Strategi

Strategi ini menggunakan penunjuk RSI untuk menentukan tahap overbought dan oversold, digabungkan dengan hubungan antara nilai K dan D dari RSI Stochastic untuk menjana isyarat beli dan jual.

Ia akan mencetuskan isyarat beli apabila garisan RSI K Stochastic berada di bawah 20, dianggap oversold, dan K berada di atas D. Selepas itu, ia akan menentukan sama ada untuk menjual berdasarkan tiga syarat: 1) harga meningkat lebih dari 1% diikuti dengan pembalikan EMA; 2) garisan RSI K Stochastic di bawah D; 3) harga stop loss mencapai 98.5% daripada harga masuk.

Di samping itu, perubahan ke bawah EMA jangka pendek selepas aliran naik juga akan dianggap sebagai isyarat jual.

Kelebihan

  • Menggunakan RSI Stochastic untuk masa kemasukan adalah lebih boleh dipercayai, menapis pecah palsu dengan berkesan.
  • Memasukkan EMA dapat mengesan masa perubahan trend dengan lebih baik.
  • Menggunakan stop loss membantu mengawal kerugian dengan berkesan.
  • Memegang syiling sebanyak mungkin mengurangkan kekerapan perdagangan dan yuran.

Risiko

  • Potensi isyarat palsu dari penunjuk RSI. Parameter RSI yang disesuaikan dengan baik boleh membantu mengoptimumkan.
  • Set stop loss terlalu ketat boleh membawa kepada kerugian yang diperluaskan.
  • Tetapan parameter EMA yang tidak betul boleh terlepas masa perubahan trend.

Arahan pengoptimuman

  • Uji gabungan RSI dan parameter RSI Stochastic yang berbeza untuk tetapan yang optimum.
  • Cuba peratusan stop loss yang berbeza untuk mengimbangi pencegahan kerugian dan pulback.
  • Uji gabungan EMA panjang dan pendek untuk menentukan parameter terbaik untuk menangkap perubahan trend.
  • Pertimbangkan untuk menambah penunjuk lain untuk meningkatkan ketepatan masa masuk dan keluar.

Ringkasan

Strategi ini mengintegrasikan kekuatan Stochastic RSI, EMA dan penunjuk lain, menggunakan kaedah yang agak kukuh untuk menentukan masa kemasukan dan keluar. Penambahbaikan lanjut terhadap keuntungan dan kestabilan dapat dicapai melalui pengoptimuman parameter dan pengurusan risiko. Secara keseluruhan, logik strategi adalah baik dan bernilai disahkan dan dioptimumkan dalam perdagangan langsung.


/*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)



Lebih lanjut