비트 코인 동적 추적 중지 전략은 비트 코인의 상승 추세를 포착하고 동적으로 중지하는 것을 조정하여 하락의 위험을 회피하기 위해 동력을 기반으로 한 긴 포지션 전략입니다. 이 전략은 간단하고 기발한 동적 추적 중지 기술을 사용하여, 높은 하향의 변동 기간 동안 마이너스를 강화하여 마이너스를 보호하고, 지속적인 부주의 움직임 동안 느슨한 중지 손실을 허용합니다. 비트 코인 가격이 20 주 평균 EMA보다 높으면 이 전략은 계속 포지션을 유지하며, 가격이 20 주 평균 EMA보다 떨어지면 포지션 중지됩니다. 이 전략은 단 하나의 포지션을 거래하며, 공백을하지 않지만, 당신이 무엇을하고 있는지 알고 있다면, 당신이 좋아하는 무엇이든 쉽게 조정 할 수 있습니다.
이 전략은 회선 차트와 20주간 EMA를 트렌드 필터로 사용하며, 가격이 20주간 EMA보다 높을 때만 진입한다. 5주기 ATR은 동적으로 조정하기 위해 스톱의 거리를 추적하며, 경보 상태에서는 스톱을 강화한다. 경보 상태는 두 가지 조건에 의해 정의된다.
간단하고 효과적: 이 전략의 논리는 간단하고 명확하며, 이해하기 쉽고 실행할 수 있으며, 비트코인의 주요 상승 추세를 효과적으로 포착할 수 있다.
동적 스톱: 시장의 변동 상황에 따라 동적으로 스톱 포지션을 조정하여 회수를 제어하고 수익을 달릴 수 있는 균형 잡힌 스톱 방법이다.
트렌드 필터링: 고급 평균선 ((20주 EMA) 필터링을 통해, 명확한 상향 추세에서만 출전하여 전략 승률과 상패율을 크게 향상시켰다.
포지션 관리: 기본적으로 포지션 전체를 거래하여 자금을 최대한 활용하고 자금 사용 효율을 높일 수 있습니다. 또한 포지션 크기를 유연하게 조정할 수 있습니다.
광범위하게 적용 가능: 이 전략 논리는 다른 표준 및 시장에 편리하게 이식될 수 있으며, 우수한 보편성을 갖는다.
매개 변수 적용성: 이 전략 매개 변수는 비트코인 시장의 특성에 따라 설정되어 있으며, 다른 시장의 적용성은 검증될 예정이며, 다른 기준에 대해 매개 변수 최적화가 필요할 수 있습니다.
트렌드 식별: 이 전략은 주로 상위 수준의 EMA와 ATR과 같은 기술 지표 판단 트렌드에 의존합니다. 시장 상황을 파악하는 것은 기본적 분석보다 포괄적이지 않으며 시장 전환점에서 오류가 발생할 수 있습니다.
스톱 로즈 위험: 동적 스톱 로즈는 어느 정도 위험을 통제할 수 있지만, 극단적인 상황 (如暴跌或快速深度震荡) 에서, 여전히 큰 회전이 발생할 수 있다. 그리고 스톱 로즈 지점은 비교적 가깝고, 충격적인 상황에서는 자주 스톱 로즈가 발생할 수 있다.
수익 공간: 전략은 일방적인 상승 추세에서 우수한 성적을 거뒀지만, 불안정한 시장에서 빈번한 손실의 곤경에 빠지기 쉽다. 전체적인 수익 공간은 제한적일 수 있다.
실적 실적: 이 전략은 재검토에서 잘 수행되지만 실적은 슬라이드 포인트, 수수료 등의 요인에 의해 영향을 받으며 이론적 수익과 약간의 차이가 있을 수 있으므로 신중하게 평가해야 한다.
트렌드 판단: 더 많은 고급 평균선, 변동률 지표, 심지어 기본 데이터를 도입하여 트렌드 식별의 정확성과 신뢰성을 향상시킬 수 있습니다.
동적 변수: 스톱 로드 및 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")