Эта стратегия объединяет индикатор Dual SSL и индикатор скользящей средней, используя индикатор Dual SSL для определения направления тренда рынка и скользящие средние для подтверждения тренда.
Вычислить верхнюю рельсу, взяв SMA самой высокой цены за определенный период по сравнению с закрытием вчера. Вычислить нижнюю рельсу, взяв SMA самой низкой цены за определенный период по сравнению с закрытием вчера.
Сравните текущую цену закрытия с верхней и нижней рельсами, чтобы определить направление текущего тренда. Если цена закрытия выше верхней рельсы, тенденция определяется как быстрая. Если цена закрытия ниже нижней рельсы, тенденция определяется как медвежий.
Вычислить 200-периодную СВМ цены закрытия в качестве ориентира для среднесрочных и долгосрочных тенденций.
При бычьем, если цена закрытия превышает SMA снизу, генерируется сигнал покупки. При медвежьем, если цена закрытия превышает SMA снизу, генерируется сигнал продажи.
После входа в длинную позицию, если цена закрытия превышает верхний рельс, это сигнал закрытия. После входа в короткую позицию, если цена закрытия превышает нижний рельс, это сигнал закрытия.
Установите фиксированную процентную точку стоп-лосса. Если цена закрытия превышает точку стоп-лосса, запускается ордер стоп-лосса.
Использование индикатора Dual SSL для определения направления тренда может эффективно идентифицировать тенденции и увеличить вероятность выхода в правильном направлении.
Добавление скользящих средних может отфильтровать некоторые шумные сигналы и избежать неправильных сделок на нестабильных рынках.
Использование стоп-лосса для контроля риска одной сделки может эффективно избежать чрезмерных потерь.
Логика стратегии относительно проста и легко понятна, подходит для начинающих.
Показатель Dual SSL чувствителен к настройке параметров, различные комбинации периодов могут привести к очень разным результатам. Параметры должны быть тщательно оптимизированы.
Слишком длинный МР отфильтровывает слишком много торговых возможностей, а слишком короткий не может эффективно обозначить.
Слишком широкий диапазон стоп-лосса не способствует эффективному контролю риска, в то время как слишком узкий может быть вызван нормальными колебаниями цен.
Стратегия в значительной степени опирается на оптимизацию параметров. Неправильные параметры могут не идентифицировать тенденции правильно, что приводит к неправильным торговым решениям.
Проверить различные комбинации периодов, чтобы найти параметры, которые могут улучшить точность определения тренда для индикатора Dual SSL.
Испытывать различные периоды МА для поиска оптимального баланса между деноизацией и сохранением сигналов.
Исследуйте адаптивные стоп-потери, которые корректируются на основе волатильности рынка, чтобы сделать стоп-потерю более отзывчивой.
Для повышения надежности включать другие индикаторы для подтверждения, такие как объем, слияние с несколькими временными рамками.
Для обеспечения надежности следует проводить анализ развития оптимизированной стратегии.
Эта стратегия сочетает в себе сильные стороны индикатора Dual SSL и скользящих средних. С значительным потенциалом для оптимизации параметров, это следующая стратегия тренда. При разумной настройке и оптимизации параметров можно достичь хороших результатов. Однако риск перенастройки следует контролировать, чтобы обеспечить надежность. В целом эта стратегия служит хорошим примером для исследования и обучения.
/*backtest start: 2022-10-30 00:00:00 end: 2023-11-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //@Isaac //Estrategia vista en ▼▼ //YT: Trading Zone strategy('SSL Strategy + EMA 200 AND Stop Loss', overlay=true) ema = ta.ema(close, 200) stop_loss = input.float(2.00, title='Stop Loss', step=0.10) period = input(title='Period', defval=10) len = input(title='Period', defval=10) smaHigh = ta.sma(high, len) smaLow = ta.sma(low, len) Hlv = int(na) Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1] sslDown = Hlv < 0 ? smaHigh : smaLow sslUp = Hlv < 0 ? smaLow : smaHigh cruceArriba = ta.crossover(sslUp, sslDown) cruceAbajo = ta.crossunder(sslUp, sslDown) alcista = (close > ema ) and (cruceArriba) bajista = (close < ema) and (cruceAbajo) var SL = 0.0 //Cerrar compra por cruce por_cruce = ta.crossunder(sslUp, sslDown) //Cerrar venta por cruce por_cruceAB = ta.crossunder(sslDown, sslUp) //Cerrar compra y venta por stop loss Stop = SL comprado = strategy.position_size > 0 vendido = strategy.position_size < 0 UTmpconvertL = strategy.position_avg_price * (1 + 0.1) UTmpdefineL = (UTmpconvertL > close and strategy.openprofit > 0.1) UTSPL = UTmpdefineL SPL = UTSPL /////////////////////////////////////////////////////////////////////// UTmpconvertLS = strategy.position_avg_price * (1 + 0.1) UTmpdefineLS = (UTmpconvertLS > close and strategy.openprofit > 0.1) UTSPLS = UTmpdefineLS SPLS = UTSPLS //////////////////////////////////////////////////////////////////////// if not comprado and not vendido and alcista cantidad = (strategy.equity / close) strategy.entry('Compra', strategy.long, qty=cantidad, comment="Long") SL := sslDown if comprado and not vendido and por_cruce and SPL strategy.close("Compra", comment="Exit Long") SL := 0 if comprado and not vendido and Stop strategy.exit('Compra', stop=Stop, comment="SL") SL := 0 /////////////////////////////////////////////////////////////////// if not comprado and not vendido and bajista cantidad = (strategy.equity / close) strategy.entry('Venta', strategy.short, qty=cantidad, comment="Short") SL := sslDown if not comprado and vendido and por_cruceAB and SPLS strategy.close("Venta", comment="Exit Short") SL := 0 if not comprado and vendido and Stop strategy.exit('Venta', stop=Stop, comment="SLS") SL := 0 plot(Stop > 0 ? Stop : na, style=plot.style_circles, color=color.new(color.yellow,0)) plot(ema) plot(sslDown, linewidth=2, color=color.new(color.red, 0)) plot(sslUp, linewidth=2, color=color.new(color.lime, 0))