
Движущаяся стоп-стоп-стратегия биткоина - это долгосрочная стратегия, основанная на динамике, которая предназначена для захвата восходящих тенденций биткоина и одновременного предотвращения риска падения путем динамической корректировки стоп-стоп. Эта стратегия использует простую и хитрую технику движения стоп-стоп-стоп, чтобы сдерживать стоп-стоп в период высокой колебательности, чтобы защитить рыночную прибыль, а во время продолжающейся движения потери, чтобы позволить прибыли бежать.
Эта стратегия использует круговой график и 20-недельную ЭМА в качестве фильтра на тренд, вступая в игру только тогда, когда цена выше 20-недельной ЭМА. 5-циклический ATR используется для динамической корректировки, чтобы отслеживать расстояние до остановки, а при тревожном состоянии сжимается остановка.
Простая и эффективная: логика стратегии проста, ясна, легко понятна и реализуема, а также эффективно улавливает основные восходящие тенденции биткоина.
Динамический стоп: более сбалансированный и устойчивый метод стоп, который позволяет контролировать отступление, но также позволяет бежать с прибылью.
Тренд-фильтрация: с помощью фильтрации на высоком уровне средней линии ((20-недельная ЭМА), играя только в ясных восходящих тенденциях, значительно повышается стратегическая выигрышная вероятность и убыточный коэффициент.
Управление позициями: по умолчанию, все позиции торгуются, что позволяет максимально использовать средства, повышая эффективность использования средств. При этом можно гибко регулировать размер позиции.
Широкая применимость: логика стратегии может быть легко перенесена на другие стандарты и рынки, имея хорошую универсальность.
Применимость параметров: параметры этой стратегии настроены на основе особенностей рынка биткойнов, их применимость к другим рынкам еще предстоит проверить, возможно, потребуется оптимизация параметров для разных стандартов.
Идентификация тенденций: стратегия основывается на высокоуровневых технических показателях, таких как EMA и ATR, для определения тенденций.
Стоп-риск: хотя динамический стоп может в некоторой степени контролировать риск, в экстремальных ситуациях (например, во время резкого падения или быстрого глубокого колебания) может возникнуть значительный отказ. Стоп-риск может быть более близким, и в шокирующих ситуациях может часто прекращаться.
Пространство для прибыли: стратегия хорошо работает в одностороннем восходящем тренде, но может быть ограничена в общем пространстве для прибыли, поскольку она более подвержена частому срыву при колебаниях рынка.
Реальная прибыль: Стратегия показала хорошие результаты в ретроспективном тестировании, однако реальная прибыль может быть затронута факторами, такими как скольжение, комиссионные и т. Д., которые могут иметь некоторое расхождение с теоретической прибылью, поэтому следует тщательно оценить.
Определение тенденций: можно попробовать ввести более высокие средние линии, показатели колебаний и даже базовые данные, чтобы повысить точность и надежность определения тенденций.
Динамические параметры: параметры Stop Loss и ATR могут быть дополнительно оптимизированы, вводя динамические механизмы корректировки, связанные с ценой или волатильностью, чтобы адаптироваться к различным состояниям рынка.
Управление позицией: можно динамически регулировать размер позиции в зависимости от интенсивности тренда, волатильности и других показателей, увеличивать позиции при сильной тенденции, уменьшать позиции при высокой волатильности, повышать доходность риска.
Дополнительный механизм: введение механизма диверсификации в медвежьем рынке, расширение применения стратегии и потенциального пространства для получения прибыли. Но необходимо перепроектировать правила входа, остановки и т. Д.
Комбинированная стратегия: сочетание этой стратегии с другими стратегиями (такими как инверсия, средневзвешенный регресс и т. д.), которые дополняют друг друга, повышают стабильность и прибыльность стратегии.
Движущаяся стоп-стратегия биткоина - это простая и эффективная динамическая стратегия, которая использует высокоуровневую среднюю линию и показатели ATR, чтобы захватить сильную восходящую тенденцию биткоина и контролировать нисходящий риск путем динамической корректировки стоп-убытков. Эта стратегия имеет четкую логику, проста в реализации и оптимизации и подходит для инвесторов средней и длинной линии, стремящихся к стабильной прибыли. Эта стратегия может использоваться в качестве базового шаблона, и инвесторы могут улучшить ее в зависимости от своих потребностей и опыта, в том числе в определении тенденций, оптимизации параметров, управлении позициями, многофункциональных механизмах, или в комбинации с другими стратегиями, чтобы получить более высокую доходность и риск. Однако следует отметить, что эффективность этой стратегии в реальном мире может отличаться от результатов отслеживания, поэтому необходимо тщательно оценивать и контролировать риск.
/*backtest
start: 2023-03-08 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ZenAndTheArtOfTrading
// ------------------------------------------------------------------------------------------------------
// System Concept: Capture as much Bitcoin upside volatility as possible while side-stepping downside volatility.
// Entry Rule #1: Bitcoin must be trading above higher-timeframe EMA (Weekly 20 EMA)
// Entry Rule #2: Bitcoin must not be in 'caution' condition
// -> Caution: True if BTC's recent swing high minus its current low is > 1.5x ATR OR close < Daily EMA
// Trailing Stop: Stop is trailed 1 ATR from recent swing high, OR 20% of ATR if in caution condition
// ------------------------------------------------------------------------------------------------------
// @version=5
strategy("Bitcoin Momentum Strategy",
overlay=true)
// Get user input
var const string G_STRATEGY = "Strategy Entry Settings"
var const string G_EXIT = "Strategy Exit Settings"
var const string G_FILTER = "Strategy Filters"
i_HigherTimeframe = input.timeframe("W", "Higher Timeframe", group=G_STRATEGY, tooltip="Higher timeframe MA reference")
i_EmaLength = input.int(20, "EMA Length", group=G_STRATEGY, tooltip="Moving average period length")
i_AtrLength = input.int(5, "ATR Length", group=G_STRATEGY, tooltip="ATR period length")
i_TrailStopSource = input.source(low, "Trail Stop Source", group=G_EXIT, tooltip="Lowest price source for trailing stop")
i_TrailStopLookback = input.int(7, "Trail Stop Lookback", group=G_EXIT, tooltip="How many bars to look back for trailing price source")
i_TrailStopMulti = input.float(0.2, "Trailing Stop Ratchet Multiplier", group=G_EXIT, tooltip="When momentum is yellow (caution), shrink ATR distance for TS by this much")
i_StartTime = input(timestamp("01 Jan 2000 13:30 +0000"), "Start Filter", group=G_FILTER, tooltip="Start date & time to begin searching for setups")
i_EndTime = input(timestamp("1 Jan 2099 19:30 +0000"), "End Filter", group=G_FILTER, tooltip="End date & time to stop searching for setups")
// Define custom security function which does not repaint
RequestSecurity_NonRP(_market, _res, _exp) => request.security(_market, _res, _exp[barstate.isrealtime ? 1 : 0])[barstate.isrealtime ? 0 : 1]
// Define date filter check
DateFilter(int start, int end) => time >= start and time <= end
// Get indicator values
float atrValue = ta.atr(i_AtrLength)
float emaValue = ta.ema(close, i_EmaLength)
float htfEmaValue = RequestSecurity_NonRP(syminfo.tickerid, i_HigherTimeframe, emaValue)
float marketPrice = close
// Check for bullishness / bearish volatility caution
bool isBullish = marketPrice > htfEmaValue
bool isCaution = isBullish and (ta.highest(high, 7) - low > (atrValue * 1.5) or marketPrice < emaValue)
// Set momentum color
color bgCol = color.red
if isBullish[1]
bgCol := color.green
if isCaution[1]
bgCol := color.orange
// Handle strategy entry, and reset trailing stop
var float trailStop = na
if isBullish and strategy.position_size == 0 and not isCaution
strategy.entry(id="Buy", direction=strategy.long)
trailStop := na
// Update trailing stop
float temp_trailStop = ta.highest(i_TrailStopSource, i_TrailStopLookback) - (isCaution[1] ? atrValue * i_TrailStopMulti : atrValue)
if strategy.position_size > 0
if temp_trailStop > trailStop or na(trailStop)
trailStop := temp_trailStop
// Handle strategy exit
if (close < trailStop or close < htfEmaValue) and barstate.isconfirmed
strategy.close("Buy", comment="Sell")
// Draw trailing stop, HTF EMA and color-coded momentum indicator
plotshape(true, color=bgCol, style=shape.square, location=location.bottom, size=size.auto, title="Momentum Strength")
plot(htfEmaValue, color=close > htfEmaValue ? color.green : color.red, linewidth=2, title="HTF EMA")
plot(emaValue, color=close > emaValue ? color.green : color.red, linewidth=1, title="CTF EMA")
plot(strategy.position_size[1] > 0 ? trailStop : na, style=plot.style_linebr, color=color.red, title="Stop Loss")