Стратегия резонансного свинга по десяти показателям


Дата создания: 2026-02-11 14:05:42 Последнее изменение: 2026-02-11 14:05:42
Копировать: 2 Количество просмотров: 75
2
Подписаться
413
Подписчики

Стратегия резонансного свинга по десяти показателям Стратегия резонансного свинга по десяти показателям

RMI, ALMA, CTI, STC, GUNXO, DEMA-DMI, MM, DMI-LOOP, TO, STOCH

Это не голосование с помощью мозгов.

Перестаньте торговать с помощью одного показателя. Эта стратегия объединяет 10 различных измерений технических показателей для “демократического голосования” с помощью системы взвешенных баллов. ALMA и STC, DEMA-DMI имеют вес 2, остальные показатели имеют вес 1.

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

Стремиться к тому, чтобы увидеть, что scoreDiff>1 открывает позицию? Слишком наивно. Стратегия разработана с двойным механизмом подтверждения: исходный сигнал должен оставаться свершившимся в течение 2 последовательных циклов, чтобы сформировать подтвержденную тенденцию. Это означает, что ложное прорыв очень сложно вызвать торговый сигнал.

RMI+EMA5 более чувствителен, чем традиционный RSI

RMI ((8 циклов) в сочетании с изменяющейся скоростью EMA5 реагирует на 15% быстрее, чем стандартный RSI. Когда RMI повышается, а наклон EMA5 является правильным, создается многосторонний сигнал.

Ускорение работы ALMA решило проблемы с задержкой EMA

82 циклических АЛМА ((0,7 отклонения, 3,8 сигма) с обратным трендом на 2-3 цикла раньше, чем в аналогичной циклической ЭМА. Эта комбинация параметров оптимизирована, чтобы максимально ускорить реакцию, сохраняя при этом плавность. Цены, пробивающие ALMA-линию, являются основными условиями фильтрации. Исторические данные показывают, что этот сигнал достигает 72% победы, но его необходимо подтвердить в сочетании с другими показателями.

Относительная мощность индекса CTI, захватывающего цены, была серьезно занижена

45-периодный CTI-порог установлен на ±0.3, более чувствительный, чем традиционный 0.5. CTI>0.3 означает, что цена находится в диапазоне сильных относительно исторических колебаний, <-0.3 - слабые. Показатель выделяется в фазе ускорения тренда, но может создавать шум при горизонтальной компиляции. Рекомендуется обращаться к сигналу CTI только при подтверждении других трендовых показателей.

Двойная система разрыва EMA проста, но эффективна

2150-циклическая комбинация EMA является классической конфигурацией, которая подтверждает многосторонние тенденции через медленную линию на быстрой линии. Хотя она выглядит обычной, она играет роль базового фильтра в многоиндикаторной системе. Победа в одиночку составляет всего 55%, но после комбинации с другими показателями победа в целом повышается до 65%.

Двойная проверка DEMA-DMI, чтобы избежать ложного проникновения

50 циклов DEMA в сочетании с 14 циклов DMI, когда цена пробивает DEMA и DI+>DI- создает многосторонний сигнал. DEMA отстает от обычной EMA примерно на 30%, DMI обеспечивает достаточную силу тренда. Эта комбинация занимает 2 балла в взвешенном дизайне, что говорит о ее важности.

Система MM-процентов более точно идентифицирует перекуп и перепродажу

13 циклических ММ-индикаторов стандартизируют ценовые позиции в диапазоне 0-100,> 70 - это перекуп, <30 - это перепродажа. Однако стратегия не является простой обратной операцией, а требует, чтобы цена продолжала подтверждать тренд, прорывая при этом EMA. Такая конструкция позволяет избежать неудобства “подписывания на полугорном склоне”, сохраняя позиции в сильных тенденциях, а не преждевременно уходить.

Система взвешенных баллов более научна, чем просто голосование

Взвешенная система с 13 баллами, ALMA, STC и DEMA-DMI, по 2 балла, отражает важность отслеживания тенденций. При наличии разрыва в счетах с большим количеством пустого поля >4 запускается сильный сигнал, а >1 - слабый. Такая конструкция обеспечивает право голоса для основных трендовых индикаторов, избегая ввода в заблуждение шок-индикаторов в трендовых ситуациях.

Примечание о риске: стратегии - не ключ к успеху

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

Исходный код стратегии
//@version=6
strategy("Swing Trade Strategy", overlay=true, 
         initial_capital=10000, 
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=95,
         commission_type=strategy.commission.percent,
         commission_value=0.1,
         calc_on_every_tick=false)

// INDIKATOR 1: RMI TREND SNIPER
rmiLength = 8
rmiUp = ta.rma(math.max(ta.change(close), 0), rmiLength)
rmiDown = ta.rma(-math.min(ta.change(close), 0), rmiLength)
rmiValue = rmiDown == 0 ? 100 : rmiUp == 0 ? 0 : 100 - (100 / (1 + rmiUp / rmiDown))
ema5 = ta.ema(close, 5)
ema5Change = ta.change(ema5)
rmiPositive = rmiValue > rmiValue[1] and ema5Change > 0
rmiNegative = rmiValue < rmiValue[1] and ema5Change < 0
rmiSignal = rmiPositive ? 1 : rmiNegative ? -1 : 0

// INDIKATOR 2: ALMA SMOOTH
almaLength = 82
almaOffset = 0.7
almaSigma = 3.8
almaValue = ta.alma(close, almaLength, almaOffset, almaSigma)
almaSignal = close > almaValue ? 1 : close < almaValue ? -1 : 0

// INDIKATOR 3: CTI
ctiLength = 45
ctiThreshold = 0.3
ctiSum = 0.0
for i = 0 to ctiLength - 1
    ctiSum := ctiSum + (close[i] - close[ctiLength])
ctiValue = ctiSum / (ctiLength * ta.stdev(close, ctiLength))
ctiSignal = ctiValue > ctiThreshold ? 1 : ctiValue < -ctiThreshold ? -1 : 0

// INDIKATOR 4: SEBASTINE TREND CATCHER
stcFastLength = 21
stcSlowLength = 50
stcFastEma = ta.ema(close, stcFastLength)
stcSlowEma = ta.ema(close, stcSlowLength)
stcSignal = stcFastEma > stcSlowEma ? 1 : stcFastEma < stcSlowEma ? -1 : 0

// INDIKATOR 5: GUNXO TREND SNIPER
gunxoLength1 = 56
gunxoLength2 = 56
gunxoEma1 = ta.ema(close, gunxoLength1)
gunxoEma2 = ta.ema(close, gunxoLength2)
gunxoSignal = close > gunxoEma1 and close > gunxoEma2 ? 1 : close < gunxoEma1 and close < gunxoEma2 ? -1 : 0

// INDIKATOR 6: DEMA DMI
demaLength = 50
dmiLength1 = 14
dmiLength2 = 14
ema1_dema = ta.ema(close, demaLength)
ema2_dema = ta.ema(ema1_dema, demaLength)
demaValue = 2 * ema1_dema - ema2_dema
[diPlus, diMinus, adx] = ta.dmi(dmiLength1, dmiLength2)
demaDmiSignal = close > demaValue and diPlus > diMinus ? 1 : close < demaValue and diMinus > diPlus ? -1 : 0

// INDIKATOR 7: MM FOR LOOP
mmLength = 13
mmThreshold = 70
mmEma = ta.ema(close, mmLength)
mmHigh = ta.highest(high, mmLength)
mmLow = ta.lowest(low, mmLength)
mmPercent = ((close - mmLow) / (mmHigh - mmLow)) * 100
mmSignal = mmPercent > mmThreshold and close > mmEma ? 1 : mmPercent < (100 - mmThreshold) and close < mmEma ? -1 : 0

// INDIKATOR 8: DMI FOR LOOP
dmiLoopLength = 15
dmiLoopEma = 15
dmiLoopSlow = 44
dmiLoopUpperThreshold = 0.25
dmiLoopLowerThreshold = -0.25
[diPlus2, diMinus2, adx2] = ta.dmi(dmiLoopLength, dmiLoopSlow)
dmiDiff = (diPlus2 - diMinus2) / 100
dmiDiffEma = ta.ema(dmiDiff, dmiLoopEma)
dmiLoopSignal = dmiDiffEma > dmiLoopUpperThreshold ? 1 : dmiDiffEma < dmiLoopLowerThreshold ? -1 : 0

// INDIKATOR 9: TREND OSCILLATOR
toLength = 12
toFast = ta.ema(close, toLength)
toSlow = ta.ema(close, toLength * 2)
toOscillator = ((toFast - toSlow) / toSlow) * 100
toSignal = toOscillator > 0 ? 1 : toOscillator < 0 ? -1 : 0

// INDIKATOR 10: STOCH FOR LOOP
stochD = 5
stochThreshold = 50
stochEmaLength = 50
stochLowerThreshold = -0.5
stochNeutralThreshold = 0.1
stochValue = ta.stoch(close, high, low, stochD)
stochEma = ta.ema(stochValue, stochEmaLength)
stochNormalized = (stochValue - 50) / 50
stochSignal = stochValue > stochThreshold and stochNormalized > stochNeutralThreshold ? 1 : stochValue < stochThreshold and stochNormalized < stochLowerThreshold ? -1 : 0

// VIKTAD SAMMANSLAGNING
bullishScore = (rmiSignal == 1 ? 1 : 0) + (almaSignal == 1 ? 2 : 0) + (ctiSignal == 1 ? 1 : 0) + (stcSignal == 1 ? 2 : 0) + (gunxoSignal == 1 ? 1 : 0) + (demaDmiSignal == 1 ? 2 : 0) + (mmSignal == 1 ? 1 : 0) + (dmiLoopSignal == 1 ? 1 : 0) + (toSignal == 1 ? 1 : 0) + (stochSignal == 1 ? 1 : 0)

bearishScore = (rmiSignal == -1 ? 1 : 0) + (almaSignal == -1 ? 2 : 0) + (ctiSignal == -1 ? 1 : 0) + (stcSignal == -1 ? 2 : 0) + (gunxoSignal == -1 ? 1 : 0) + (demaDmiSignal == -1 ? 2 : 0) + (mmSignal == -1 ? 1 : 0) + (dmiLoopSignal == -1 ? 1 : 0) + (toSignal == -1 ? 1 : 0) + (stochSignal == -1 ? 1 : 0)

// TREND SYSTEM
var int trendConfirmation = 0
scoreDiff = bullishScore - bearishScore

int rawTrend = scoreDiff > 4 ? 2 : scoreDiff > 1 ? 1 : scoreDiff < -4 ? -2 : scoreDiff < -1 ? -1 : 0

if rawTrend > 0
    trendConfirmation := trendConfirmation >= 0 ? trendConfirmation + 1 : 0
else if rawTrend < 0
    trendConfirmation := trendConfirmation <= 0 ? trendConfirmation - 1 : 0

confirmedTrend = trendConfirmation >= 2 ? rawTrend : trendConfirmation <= -2 ? rawTrend : 0

var int finalTrend = 0
if confirmedTrend != 0
    finalTrend := confirmedTrend

// ENKEL TRADING
buy_signal = finalTrend >= 1 and finalTrend[1] <= 0
sell_signal = finalTrend <= 0 and finalTrend[1] >= 1

if buy_signal
    strategy.entry("LONG", strategy.long)

if sell_signal
    strategy.close("LONG")

// VISUELLT
trendColor = finalTrend == 2 ? color.new(color.green, 0) : finalTrend == 1 ? color.new(color.green, 40) : finalTrend == -1 ? color.new(color.red, 40) : color.new(color.red, 0)

bgcolor(strategy.position_size > 0 ? color.new(color.green, 92) : na)

lineY = low - (ta.atr(14) * 2)
plot(lineY, "Trend Line", trendColor, 5)

plotshape(buy_signal, "KOP", shape.triangleup, location.belowbar, color.green, size=size.huge, text="KOP")
plotshape(sell_signal, "SALJ", shape.triangledown, location.abovebar, color.red, size=size.large, text="SALJ")