Strategi Autonomous Buy-Swing Scalper Berdasarkan Stochastic RSI dan EMA


Tarikh penciptaan: 2023-10-31 11:34:47 Akhirnya diubah suai: 2023-10-31 11:34:47
Salin: 0 Bilangan klik: 808
1
fokus pada
1617
Pengikut

Strategi Autonomous Buy-Swing Scalper Berdasarkan Stochastic RSI dan EMA

Gambaran keseluruhan

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.

Prinsip Strategi

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.

Kelebihan Strategik

  • Penggunaan RSI rawak untuk menentukan masa pembelian lebih dipercayai, dan dapat menyaring penembusan palsu dengan berkesan.
  • Kaedah EMA ini boleh digunakan untuk menilai perubahan trend pada masa tertentu.
  • Pengekalan kerugian boleh mengawal kerugian dengan berkesan.
  • Dengan memiliki sebanyak mungkin mata wang, anda dapat mengurangkan frekuensi transaksi dan mengurangkan yuran.

Risiko Strategik

  • Kemungkinan RSI memberi isyarat palsu. Parameter RSI boleh disesuaikan dengan betul untuk mengoptimumkannya.
  • Penetapan harga stop loss yang terlalu kecil boleh menyebabkan kerugian berkembang. Anda boleh menyesuaikan tahap stop loss dengan sewajarnya.
  • Tetapan parameter penunjuk EMA yang tidak betul mungkin terlepas masa perubahan trend. Anda boleh menguji parameter untuk kitaran EMA yang berbeza.

Arah pengoptimuman

  • Uji RSI yang berbeza dan set parameter RSI rawak untuk mencari kombinasi parameter yang optimum
  • Cuba pelbagai stop loss untuk mengimbangi kerugian dan keuntungan yang ditarik balik
  • Uji kombinasi jangka panjang dan jangka pendek EMA untuk menentukan parameter yang paling baik untuk menentukan perubahan trend
  • Penambahan penunjuk lain boleh dipertimbangkan untuk meningkatkan ketepatan penilaian masa pembelian dan penjualan

ringkaskan

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.

Kod sumber strategi
/*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)