Эта стратегия направлена на реализацию автоматической стратегии покупки и хранения монет на основе стохастических RSI и EMA. Она предназначена для 5-минутных свечей, оптимизированных для BTC. Цель состоит в том, чтобы держать монету как можно больше во время боковых или незначительных нисходящих тенденций.
Стратегия использует индикатор RSI для определения уровней перекупленности и перепроданности в сочетании с взаимосвязью между значениями K и D стохастического RSI для генерации сигналов покупки и продажи.
Он запускает сигнал покупки, когда линия Stochastic RSI K ниже 20, считается перепроданной, а K выше D. После этого он будет определять, следует ли продавать на основе трех условий: 1) рост цены более 1% с последующим изменением EMA; 2) линия Stochastic RSI K ниже D; 3) цена стоп-лосса достигает 98,5% от цены входа.
Кроме того, снижение краткосрочной EMA после восходящего тренда также будет считаться сигналом продажи.
Эта стратегия объединяет сильные стороны стохастического RSI, EMA и других индикаторов, используя относительно надежные методы для определения времени входа и выхода. Дальнейшее улучшение прибыльности и стабильности может быть достигнуто посредством оптимизации параметров и управления рисками. В целом логика стратегии хороша и стоит проверить и оптимизировать в режиме реального времени.
/*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)