
Эта стратегия, основанная на среднем истинном диапазоне (Average True Range, ATR), построена на канале SuperTrend и генерирует сигналы покупки и продажи в соответствии с ценовым прорывом в канале SuperTrend. Эта стратегия объединяет преимущества отслеживания тенденций и управления остановками, чтобы эффективно отслеживать направление тенденции.
Верхние и нижние траектории сверхтенденционного канала рассчитываются по формуле:
Верхняя трасса = (высокая цена + низкая цена) / 2 + ATR (n) * фактор Нижняя линия = (высокая цена + низкая цена) / 2 - ATR (n) * фактор
При этом ATR ((n) представляет собой среднюю истинную амплитуду в течение n дней, а коэффициент является регулируемым параметром, по умолчанию 3.
При закрытии цены выше, чем в верхней части, это является позитивным сигналом, а при закрытии цены ниже, чем в нижней части, это является нисходящим сигналом. Стратегия определяет вход и выход на рынок на основе позитивных и нисходящих сигналов.
Решение риска:
Эта стратегия использует сверхтенденционный канал для отслеживания тенденций и управления потерями. Соответствие ATR-циклов и параметров факторов имеет решающее значение для эффективности стратегии. Следующий шаг - дальнейшая оптимизация стратегии с точки зрения оптимизации параметров, фильтрации сигналов и т. Д., Чтобы она могла адаптироваться к более сложной рыночной среде.
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Backtest", shorttitle="STBT", overlay=true)
// Input for ATR Length
atrLength = input.int(10, title="ATR Length", minval=1)
atrFactor = input.float(3.0, title="Factor", minval=0.01, step=0.01)
// Calculate SuperTrend
[supertrend, direction] = ta.supertrend(atrFactor, atrLength)
supertrend := barstate.isfirst ? na : supertrend
// Define entry and exit conditions
longCondition = ta.crossover(close, supertrend)
shortCondition = ta.crossunder(close, supertrend)
// Plot the SuperTrend
plot(supertrend, color=color.new(color.blue, 0), title="SuperTrend")
// Plot Buy and Sell signals
plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")
// Strategy Entry and Exit
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)