Торговая стратегия God
Основная логика этой стратегии основана на следующих моментах:
Вычислить 20-периодную простую скользящую среднюю цену закрытия как базовую среднюю полосу.
Вычислить верхнюю и нижнюю полосы на основе средней полосы. Верхняя полоса - это средняя полоса + 2 раза 20-периодного стандартного отклонения цены закрытия, а нижняя полоса - это средняя полоса - 2 раза 20-периодного стандартного отклонения цены закрытия.
Вычислить 14-периодный индикатор RSI для оценки феноменов перекупа и перепродажи.
Когда цена закрытия проходит через верхнюю рельсу вверх и индикатор RSI показывает сигнал перепродажи, генерируется сигнал покупки.
Когда цена закрытия проходит через верхний рельс вниз, и индикатор RSI показывает сигнал перекупленности, генерируется сигнал продажи.
Эта стратегия оценивает ритм и скорость колебаний цен с помощью индикатора Bollinger Bands и обнаруживает возможные точки перелома с помощью индикатора RSI для выпуска торговых сигналов.
Индикатор Bollinger Bands может определять ритм и направление волатильности рынка, а индикатор RSI оценивает явления перекупа и перепродажи.
Параметры индикатора RSI регулируемы и могут устанавливать различные уровни перекупленности и перепродажи для разных рынков, чтобы избежать ошибочных сигналов.
Параметры полос Боллинджера также могут быть скорректированы в соответствии с диапазоном волатильности рынка и скоростью, чтобы установить соответствующие параметры и повысить рентабельность.
Прорыв верхнего трека образует сигнал покупки, а прорыв верхнего трека вниз образует сигнал продажи.
Может использоваться на фондовых, валютных и криптовалютных рынках.
При устойчивом росте рынка это может привести к множественным ошибкам в оценке сигналов покупки.
В нестабильном рынке верхние и нижние треки полос Боллинджера часто колеблются, что может привести к частым нерентабельным сделкам.
Кодекс предполагает, что критерии перекупки и перепродажи установлены, но они должны устанавливаться в соответствии с различными уровнями волатильности рынка.
Как полосы Боллинджера, так и индикаторы RSI имеют задержки и не могут предсказывать движение цен заранее, но могут только отслеживать изменения цен.
В соответствии с особенностями различных рынков, корректировать параметры полос Боллинджера, увеличить ширину полос Боллинджера и уменьшить вероятность ошибочных транзакций.
Параметры RSI также должны быть скорректированы для различных рынков, а также надлежащим образом увеличить критерии перекупки и перепродажи, чтобы избежать множества ошибочных торговых сигналов.
Увеличить количество других показателей для оценки, таких как KDJ и MACD, чтобы избежать ошибок, вызванных отдельными диапазонами Боллинджера и индикаторами RSI.
Усилить стратегию стоп-лосса и установить разумные точки стоп-лосса, чтобы избежать чрезмерных потерь.
Для дальнейшего улучшения стабильности стратегии можно рассмотреть возможность прорывного тестирования или оптимизации параметров обратного тестирования.
Торговая стратегия God
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger Band + RSI Strategy", overlay=true) // Input variables numCandlesOutsideBB = input(3, "Number of Candles Outside BB") numCandlesOutsideUpperBB = input(3, "Number of Candles Outside Upper BB") rsiLength = input(14, "RSI Length") rsiOversoldLevel = input(20, "RSI Oversold Level") rsiOverboughtLevel = input(70, "RSI Overbought Level") // Bollinger Bands length = input(20, minval=1, title="BB Length") mult = input(2.0, minval=0.001, maxval=50, title="BB Standard Deviation") basis = sma(close, length) dev = mult * stdev(close, length) upperBB = basis + dev lowerBB = basis - dev // RSI rsi = rsi(close, rsiLength) // Buy condition buyCondition = crossover(close, upperBB) and rsi > rsiOversoldLevel // Sell condition sellCondition = crossunder(close, upperBB) and rsi > rsiOverboughtLevel // Strategy if buyCondition strategy.entry("Buy", strategy.long) if sellCondition strategy.close("Buy") // Plotting plot(upperBB, color=color.blue) plot(lowerBB, color=color.red) plot(rsi, "RSI", color=color.green)