Эта стратегия сочетает в себе использование скользящих средних и Stochastic Relative Strength Index (Stochastic RSI) для поиска торговых возможностей. В частности, она рассматривает среднесрочную скользящую среднюю в восходящем тренде и показатель Stochastic RSI с перекупленным / перепроданным, чтобы принимать торговые решения, когда появляются оба сигнала. Это сочетание может отфильтровать некоторые ложные сигналы и улучшить стабильность стратегии.
Основными составляющими этой стратегии являются:
Вычислить две скользящие средние, MA1 и MA2, с разными периодами.
Вычислить индекс относительной силы стохастического показателя (Stochastic RSI). Этот показатель включает в себя RSI и стохастические принципы, чтобы показать, является ли RSI перекупленным или перепроданным.
Сигнал покупки генерируется, когда стохастический RSI пересекает превышение порога перепродажи, в то время как сигнал продажи генерируется, когда он пересекает превышение порога покупки.
Введите длинный, когда стохастические сигналы RSI выравниваются с более быстрой скользящей средней выше более медленной.
Вычислить сумму риска и размер позиции.
Установите стоп-лосс и возьмите цену прибыли.
Стратегия сочетания скользящей средней и стохастического RSI имеет следующие преимущества:
Сочетание средне- и долгосрочных скользящих сред может определить общее направление тенденции рынка.
Стохастический RSI полезен для выявления ситуаций перекупки и перепродажи, чтобы уловить возможности реверсии.
Комбинированное использование фильтрует ложные сигналы и улучшает стабильность.
Процентный метод фиксированного риска управляет риском путем ограничения единого убытка ниже допустимого уровня.
Остановите убытки и возьмите прибыль, блокируйте прибыль и ограничьте риск снижения.
В этой стратегии также есть некоторые риски:
На рыночных диапазонах комбинированные скользящие средние могут давать ложные сигналы.
Стохастический RSI чувствителен к волатильному ценовому движению и также может иногда давать ложные сигналы.
Распределение риска на фиксированный риск не может полностью избежать больших потерь.
В экстремально волатильных сценариях разумные цены стоп-лосса/прибыли недоступны.
Стратегия может быть дополнительно оптимизирована в следующих аспектах:
Проверьте больше комбинаций параметров, чтобы найти оптимальные периоды.
Попробуйте комбинировать скользящие средние с другими индикаторами, такими как KDJ, MACD и т. Д. Определите наилучшее соответствие.
Тест и оптимизация на различных торговых инструментах.
Использование моделей машинного обучения для динамической оптимизации параметров с течением времени в зависимости от изменения рынков.
Стратегия сочетания скользящей средней и стохастического RSI идентифицирует тренд с скользящими средними и уровни обратного движения со стохастическим RSI для формирования торговых сигналов, наряду с остановкой потери / прибыли и контролем рисков для формирования надежной стратегии логики.
/*backtest start: 2023-01-09 00:00:00 end: 2024-01-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average and Stochastic RSI Strategy", shorttitle="MA+Stoch RSI", overlay=true) // Input variables ma1_length = input.int(20, title="MA1 Length") ma2_length = input.int(50, title="MA2 Length") stoch_length = input.int(14, title="Stochastic RSI Length") overbought = input.int(80, title="Overbought Level") oversold = input.int(20, title="Oversold Level") risk_percentage = input.float(2.0, title="Risk Percentage") // Calculate moving averages ma1 = ta.sma(close, ma1_length) ma2 = ta.sma(close, ma2_length) // Calculate Stochastic RSI rsi1 = ta.rsi(close, stoch_length) rsiH = ta.highest(rsi1, stoch_length) rsiL = ta.lowest(rsi1, stoch_length) stoch = (rsi1 - rsiL) / (rsiH - rsiL) * 100 // Determine buy and sell signals based on Stochastic RSI buySignal = ta.crossover(stoch, oversold) sellSignal = ta.crossunder(stoch, overbought) // Plot signals on the chart plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Calculate position size based on equity and risk percentage equity = strategy.equity riskAmount = equity * risk_percentage / 100 positionSize = riskAmount / ta.atr(14) // Entry and exit conditions var float stopLoss = na var float takeProfit = na if buySignal stopLoss := low takeProfit := high strategy.entry("Buy", strategy.long) else if sellSignal strategy.exit("Sell", from_entry="Buy", stop=stopLoss, limit=takeProfit)