
Эта стратегия использует RSI, MACD, Brin Belt и Stop Loss Factors для осуществления многофакторной динамической ротационной торговли. Сначала стратегия определяет, появляются ли одновременно сигналы о покупке или продаже по нескольким техническим показателям, и, если да, проводит соответствующие операции по покупке или продаже. В то же время стратегия использует мобильные стопы и стоп-лосы для блокирования прибыли и контроля риска.
Эта стратегия включает в себя следующие разделы:
Факторы оценки
Вход и выход
Оптимизация стратегии
Эта стратегия учитывает не только один технический показатель, но и несколько факторов, таких как последовательность RSI, MACD, TD, чтобы уменьшить ложные сигналы, вызванные одним показателем, и повысить точность входа.
Такие индикаторы, как RSI, MACD, обладают более заметными динамическими характеристиками и могут улавливать изменения в тренде цен на акции. По сравнению с индикаторами, отслеживающими тенденции, такими как средняя линия, эти индикаторы более чувствительны к поворотам.
Мобильный стоп позволяет лучше блокировать прибыль. Стоп-убыток позволяет контролировать убытки.
Эта стратегия в сочетании с обычными техническими показателями обладает определенной универсальностью. Правила относительно просты и понятны, легко понять и использовать.
Эта стратегия, основанная на обратном рынке, относится к обратной стратегии. В бычьем рынке, использование этой стратегии может часто приводить к убыткам и неэффективно.
Если параметры настроены слишком чувствительными, то частота торгов может быть слишком высокой, увеличивая расходы на торговлю и потерю скольжения.
Эта стратегия зависит от множества индикаторов, сигнализирующих о том же самом направлении, но иногда индикаторы могут отличаться друг от друга, в результате чего появляются ошибочные сигналы.
Установленный фиксированный стоп может быть нарушен, можно установить динамический стоп или рассмотреть возможность смены акций, чтобы избежать этого риска.
Можно проверить параметры RSI и параметры циклов средней линии, чтобы найти комбинацию с меньшей частотой торгов.
Для повышения эффективности стратегии параметры могут быть установлены в сочетании с собственными статистическими характеристиками акций, такими как волатильность, ликвидность и т. д.
Параметры стратегии могут быть скорректированы в соответствии с индексами общемаркетной паники, такими как 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)