Эта стратегия использует полосы Боллинджера, индикатор RSI и 162-дневную EMA для генерации сигналов покупки, когда цены на золото/серебро превышают верхнюю полосу Боллинджера и RSI перепродан, и сигналов продажи, когда цены превышают нижнюю полосу Боллинджера и RSI перекуплен.
Стратегия основана на следующих принципах:
Для определения основного направления тренда используйте 162-дневную EMA. Цена выше EMA предполагает восходящий тренд, а цена ниже EMA предполагает нисходящий.
Используйте полосы Боллинджера для выявления прорывов цены. Прорыв цены выше верхней полосы Боллинджера сигнализирует о прорыве вверх, а прорыв цены ниже нижней полосы Боллинджера сигнализирует о прорыве вниз.
Используйте индикатор RSI для определения уровня перекупленности/перепроданности.
Комбинируйте основные сигналы тренда, ценового прорыва и перекупленности/перепроданности, чтобы генерировать сигналы входа и выхода:
Купите, когда цена пройдет через верхнюю полосу Боллинджера, а RSI ниже 35.
Продайте, когда цена опустится ниже нижней полосы Боллинджера, а показатель RSI превысит 65.
Используйте стоп-лосс для контроля риска:
Для длинной торговли, выйдите, когда цена опустится ниже 162-дневной ЭМА.
Для короткой торговли, выйдите, когда цена поднимется выше 162-дневной EMA.
Подводя итог, это типичная стратегия следования тренду, которая использует полосы Боллинджера для определения направления тренда и RSI для предотвращения ложных прорывов.
Основными преимуществами этой стратегии являются:
Двойное подтверждение от полос Боллинджера и RSI позволяет избежать ложных прорывов и уменьшить колебания на волатильных рынках.
Только занятие позиций в подтвержденных направлениях тренда минимизирует влияние рынков, на которых не наблюдается тренд.
162-дневный EMA определяет основные направления средне- и долгосрочных тенденций.
Настройки RSI разумны для того, чтобы избежать сбоев при обнаружении переворотов тренда.
Механизм стоп-лосса блокирует прибыль, контролируя риски.
В обратном тесте используются реальные рыночные данные, поэтому результаты более реалистичны и надежны.
В целом стратегия сводит к минимуму основные риски трендовой торговли, обеспечивая при этом хорошую отдачу от риска.
Основными рисками этой стратегии являются:
Боллингерские полосы не могут полностью избежать ложных прорывов.
Дивергенция РСИ может генерировать неправильные сигналы. Период РСИ может быть сокращен для повышения чувствительности.
EMA имеет задерживающий эффект и может быть слишком консервативным, упуская возможности тренда.
Торговля прорывом имеет тенденцию "гоняться за максимумами и продавать минимумы".
Тенденции могут измениться, поэтому будьте осторожны, чтобы изменить направление стратегии.
Человеческие ошибки в реальной торговле могут вызывать отклонения.
Решения:
Сократить период полос Боллинджера, чтобы повысить чувствительность к прорыву.
Оптимизировать параметры RSI для обеспечения способности реагировать на изменения тренда.
Обязательно сократить период EMA, чтобы улучшить реакцию на изменения тренда при сохранении возможности выявления основных тенденций.
Усилить управление рисками путем ограничения размеров позиций и диапазонов стоп-лосса.
Следите за изменением тренда и своевременно корректируйте направление стратегии.
Проверить жизнеспособность стратегии в бумажной торговле и контролировать влияние человека на прямую торговлю.
Стратегия может быть улучшена в следующих аспектах:
Добавьте другие индикаторы, такие как KDJ, MACD для большего подтверждения для повышения точности.
Оптимизировать такие параметры, как RSI и полосы Боллинджера, чтобы повысить прибыльность.
Включить силу тренда для увеличения размера позиции в сильных тенденциях и уменьшения размера в слабых тенденциях.
Добавьте алгоритмические элементы, такие как автоматизированная остановка потерь, остановки отслеживания, перемещение целей прибыли для лучшего контроля рисков.
Внедрить машинное обучение для автоматической оптимизации параметров или даже автоматического создания стратегий.
Испытать жизнеспособность стратегии в более длительные сроки для долгосрочной торговли или более короткие сроки для скальпирования.
Принять концепции количественной торговли и управления портфелем для объединения нескольких стратегий, уменьшения рисков одной стратегии и повышения стабильности.
В заключение, стратегия может быть модернизирована в нескольких аспектах, таких как применение индикаторов, настройка параметров, контроль рисков, автоматизация для достижения лучшей производительности.
Это типичная стратегия, которая определяет направление тренда через полосы Боллинджера и RSI и использует EMA для фильтрации краткосрочного шума. Она избегает сбоев при захвате трендов. Стратегия демонстрирует точность и контролируемые риски с положительными результатами бэкстеста. Но все еще есть возможности для улучшения, и ее обновление с нескольких аспектов может привести к превосходной производительности в режиме реального времени. В целом, она обеспечивает надежный, простой и эффективный подход к торговле трендом для количественной торговли и создает прочную техническую основу.
/*backtest start: 2023-10-09 00:00:00 end: 2023-10-16 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("My Strategy", overlay = false, commission_value = 0.01, pyramiding = 1) // Custom RSI RSIlength = input( 14, minval=1 , title="lookback length of RSI") RSIOverBought = input(65, title="OB") RSIOverSold = input(35, title="OS") RSIprice = close vrsi = rsi(RSIprice, RSIlength) plot(vrsi) //Bollinger Bands BBlength = input(40, minval=1,title="Bollinger Period Length") BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation") BBbasis = sma(close, BBlength) BBdev = BBmult * stdev(close, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev source = close //RSI Levels x=hline(RSIOverSold) z=hline(RSIOverBought) strategy.entry("Buy", strategy.long, 1, when = close > ema(close, 162) and vrsi < RSIOverSold) strategy.exit("Buy", when = vrsi > RSIOverBought and close < ema(close, 162)) strategy.entry("Sell", strategy.short, 1, when = close < ema(close, 162) and vrsi > RSIOverSold) strategy.exit("Sell", when = vrsi > RSIOverBought and close > ema(close, 162))