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.
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.
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)