Стратегия многофакторной ротации импульсов


Дата создания: 2023-10-25 11:52:19 Последнее изменение: 2023-10-25 11:52:19
Копировать: 0 Количество просмотров: 754
1
Подписаться
1617
Подписчики

Стратегия многофакторной ротации импульсов

Обзор

Эта стратегия использует RSI, MACD, Brin Belt и Stop Loss Factors для осуществления многофакторной динамической ротационной торговли. Сначала стратегия определяет, появляются ли одновременно сигналы о покупке или продаже по нескольким техническим показателям, и, если да, проводит соответствующие операции по покупке или продаже. В то же время стратегия использует мобильные стопы и стоп-лосы для блокирования прибыли и контроля риска.

Стратегический принцип

Эта стратегия включает в себя следующие разделы:

  1. Факторы оценки

    • RSI: рассчитывает 14-циклический RSI, чтобы определить, находится ли он ниже установленной линии покупки или выше установленной линии продажи
    • TD-последовательность: рассчитывает количество дней, в течение которых торги прекращаются, чтобы определить, достигнуты ли условия покупки или продажи
    • MACD: рассчитывает MACD и исторические значения MACD, чтобы определить, достигнуты ли условия покупки и продажи
    • Брин-пояса: расчет 20-дневного Брин-пояса, чтобы определить, коснулась ли цена Брин-пояса
  2. Вход и выход

    • Условия покупки: покупка производится, когда RSI, MACD и TD последовательности одновременно подают сигнал покупки
    • Условия продажи: продажа осуществляется, когда RSI, MACD и TD сигнализируют о продаже одновременно
    • Остановка: движущаяся остановка с фиксированным числом или процентом
    • Стоп-убыток: устанавливается максимально допустимый уровень потерь и накладывается стоп-убыток
  3. Оптимизация стратегии

    • Настройка параметров RSI: оптимизация параметров RSI
    • Регулирование циклов MA: оптимизация циклических параметров средней линии
    • Настройка входных условий: увеличение или уменьшение входного сигнала
    • Добавление других факторов: в сочетании с большим количеством технических показателей и статистических факторов

Анализ преимуществ стратегии

  • Многофакторная комбинация, гарантирующая точность входа

Эта стратегия учитывает не только один технический показатель, но и несколько факторов, таких как последовательность RSI, MACD, TD, чтобы уменьшить ложные сигналы, вызванные одним показателем, и повысить точность входа.

  • Мощные характеристики, улавливающие тенденции

Такие индикаторы, как RSI, MACD, обладают более заметными динамическими характеристиками и могут улавливать изменения в тренде цен на акции. По сравнению с индикаторами, отслеживающими тенденции, такими как средняя линия, эти индикаторы более чувствительны к поворотам.

  • Механизмы сдерживания убытков, управление рисками

Мобильный стоп позволяет лучше блокировать прибыль. Стоп-убыток позволяет контролировать убытки.

  • Стратегия ясна и проста.

Эта стратегия в сочетании с обычными техническими показателями обладает определенной универсальностью. Правила относительно просты и понятны, легко понять и использовать.

Анализ стратегических рисков

  • В случае с несколькими главами, это не так эффективно.

Эта стратегия, основанная на обратном рынке, относится к обратной стратегии. В бычьем рынке, использование этой стратегии может часто приводить к убыткам и неэффективно.

  • Возможно, частота торгов слишком высока

Если параметры настроены слишком чувствительными, то частота торгов может быть слишком высокой, увеличивая расходы на торговлю и потерю скольжения.

  • Показатели риска

Эта стратегия зависит от множества индикаторов, сигнализирующих о том же самом направлении, но иногда индикаторы могут отличаться друг от друга, в результате чего появляются ошибочные сигналы.

  • Ограничение риска

Установленный фиксированный стоп может быть нарушен, можно установить динамический стоп или рассмотреть возможность смены акций, чтобы избежать этого риска.

Направление оптимизации стратегии

  • Оптимизация параметров, снижение частоты торгов

Можно проверить параметры RSI и параметры циклов средней линии, чтобы найти комбинацию с меньшей частотой торгов.

  • Повышение статистических показателей и повышение эффективности

Для повышения эффективности стратегии параметры могут быть установлены в сочетании с собственными статистическими характеристиками акций, такими как волатильность, ликвидность и т. д.

  • В сочетании со всеми рыночными показателями, такими как VIX

Параметры стратегии могут быть скорректированы в соответствии с индексами общемаркетной паники, такими как VIX, чтобы снизить частоту торговли во время паники на рынке.

  • Тестирование различных периодов

Можно проверить различные периоды удержания позиций, чтобы определить влияние долгосрочного удержания или краткосрочного ротации на эффективность стратегии.

  • Оптимизация и тестирование стратегий стоп-стоп

Можно исследовать более продвинутые методы остановки динамического торможения, чтобы отследить эффективность.

Подвести итог

Стратегия учитывает различные технические показатели, использует мобильные стоп-стоп-лосс для блокирования прибыли и контроля риска на основе обеспечения высокой точности входа. Стратегия проста, понятна и легко понятна. Ее действие может быть улучшено путем оптимизации параметров и выбора показателей.

Исходный код стратегии
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("RSI, TD Seq, MACD, BB Strategy - Calculation Trailing Profit",overlay=true)


RSIDifference = input(-7, minval=-50, maxval=50, title="RSI Difference") 


TD = close > close[4] ?nz(TD[1])+1:0
TS = close < close[4] ?nz(TS[1])+1:0
TDUp = TD - valuewhen(TD < TD[1], TD , 1 )
TDDn = TS - valuewhen(TS < TS[1], TS , 1 )
TDcheckUP = iff(TD == 2, true, false)
TDCheckDOWN = iff(TS == 2, true, false)

[_, _, histLine] = macd(close, 12, 26, 9)
MACDCheckDown = iff(histLine > 0 and histLine[1] > 0 and histLine[2] > 0 and histLine[3] > 0  and histLine[4] > 0, true, false)
MACDCheckUp = iff(histLine < 0 and histLine[1] < 0 and histLine[2] < 0 and histLine[3] < 0 and histLine[4] < 0, true, false)

RSICal = rsi(close, 14)
RSICalNewUp = 50 + RSIDifference
RSICalNewDown = 50 - RSIDifference
RSICheckUp = iff(RSICal <= RSICalNewUp, true, false)
RSICheckDown = iff(RSICal >= RSICalNewDown, true, false)

basis = sma(close, 20)
dev = 2 * stdev(close, 20)
upperBB = basis + dev
lowerBB = basis - dev
BBCheckUp = iff(close > upperBB, true, false)
BBCheckDown = iff(close < lowerBB, true, false)
//BBCheckUp = false
//BBCheckDown = false


BuyCheck = iff(TDcheckUP == true and MACDCheckUp == true and RSICheckUp == true and BBCheckUp == false, true, false)
SellCheck = iff(TDCheckDOWN == true and MACDCheckDown == true and RSICheckDown == true and BBCheckDown == false, true, false)


ProfitStratA = input(50, minval=0, maxval=10000, title="Profit", step=0.5) 
ProfitTrailingA = input(10, minval=0, maxval=10000, title="Profit", step=0.5) 
useStopLoss = input(false, title="Use Stop Loss?")
LossstratA = input(145, minval=0, maxval=10000, title="Stop Loss", step=0.5) 
colB = input(100, minval=0, maxval=100, title="0-show / 100-hide Strategy", step=100) 

ProfitStrat = ProfitStratA * 10
ProfitTrailing = ProfitTrailingA * 10
Lossstrat = useStopLoss ? LossstratA * 10 : 1000000

if (strategy.position_size > 0)
    strategy.exit("BuyClose", "Buy", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
    
    
if (strategy.position_size < 0)   
    strategy.exit("SellClose", "Sell", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat) 
    

if (BuyCheck == true and strategy.position_size == 0)
    strategy.entry("Buy", strategy.long, comment="Long Entry")
    


if (SellCheck == true and strategy.position_size == 0)
    strategy.entry("Sell", strategy.short, comment="Short Entry")
    


plotshape(BuyCheck, color=blue, transp=colB, style=shape.arrowup, text="Buy\n", location=location.belowbar)
plotshape(SellCheck, color=orange, transp=colB, style=shape.arrowdown, text="Sell\n", location=location.abovebar)