Стратегия обращения ворот использует индикатор ворот для выявления потенциальных переворотов тренда и улавливания благоприятных движений рынка.
Индикатор вихря- оценивать направление и силу тренда путем анализа положительных и отрицательных движений цен.
Экспоненциальная скользящая средняя- упрощение ценообразования на закрытие рынка с целью более гибкого показателя тренда; более длительные периоды скользящих средних приводят к более стабильным оценкам тренда.
Эта стратегия использует индикатор вихря для определения основного направления тренда. Торговые сигналы генерируются, когда линии индикатора пересекают пороговое значение. При дальнейшей фильтрации от линии скользящей средней можно избежать ошибочных сигналов. В частности, сигнал покупки генерируется, когда индикатор вихря пересекает пороговую линию, а цена выше скользящей средней; сигнал продажи возникает, когда индикатор пересекает пороговую линию и цена ниже скользящей средней.
Дополнительные фильтры, перекрестная проверка между показателями, оптимизация параметров и надлежащее внедрение стоп-лосса могут помочь устранить вышеуказанные риски.
Стратегия "Вортекс" демонстрирует хорошую устойчивость в улавливании потенциальных изменений, обладая при этом разумными возможностями фильтрации. При надлежащей оптимизации и управлении рисками эта стратегия обещает получить высокую доходность, скорректированную с учетом риска.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/ // © AstroHub //@version=5 strategy("Vortex Strategy [AstroHub]", shorttitle="VS [AstroHub]", overlay=true) // Vortex Indicator Settings length = input(14, title="Length", group ="AstroHub Vortex Strategy", tooltip="Number of bars used in the Vortex Indicator calculation. Higher values may result in smoother but slower responses to price changes.") mult = input(1.0, title="Multiplier", group ="AstroHub Vortex Strategy", tooltip="Multiplier for the Vortex Indicator calculation. Adjust to fine-tune the sensitivity of the indicator to price movements.") threshold = input(0.5, title="Threshold",group ="AstroHub Vortex Strategy", tooltip="Threshold level for determining the trend. Higher values increase the likelihood of a trend change being identified.") emaLength = input(20, title="EMA Length", group ="AstroHub Vortex Strategy", tooltip="Length of the Exponential Moving Average (EMA) used in the strategy. A longer EMA may provide a smoother trend indication.") // Calculate Vortex Indicator components a = math.abs(close - close[1]) b = close - ta.sma(close, length) shl = ta.ema(b, length) svl = ta.ema(a, length) // Determine trend direction upTrend = shl > svl downTrend = shl < svl // Define Buy and Sell signals buySignal = ta.crossover(shl, svl) and close > ta.ema(close, emaLength) and (upTrend != upTrend[1]) sellSignal = ta.crossunder(shl, svl) and close < ta.ema(close, emaLength) and (downTrend != downTrend[1]) // Execute strategy based on signals strategy.entry("Sell", strategy.short, when=buySignal) strategy.entry("Buy", strategy.long, when=sellSignal) // Background color based on the trend bgcolor(downTrend ? color.new(color.green, 90) : upTrend ? color.new(color.red, 90) : na) // Plot Buy and Sell signals with different shapes and colors buySignal1 = ta.crossover(shl, svl) and close > ta.ema(close, emaLength) sellSignal1 = ta.crossunder(shl, svl) and close < ta.ema(close, emaLength) plotshape(buySignal1, style=shape.square, color=color.new(color.green, 10), size=size.tiny, location=location.belowbar, title="Buy Signal") plotshape(sellSignal1, style=shape.square, color=color.new(color.red, 10), size=size.tiny, location=location.abovebar, title="Sell Signal") plotshape(buySignal1, style=shape.square, color=color.new(color.green, 90), size=size.small, location=location.belowbar, title="Buy Signal") plotshape(sellSignal1, style=shape.square, color=color.new(color.red, 90), size=size.small, location=location.abovebar, title="Sell Signal")