
이 글은 “시간 지연과 손해 차단으로 적응하는 변동률 트렌드 추적 허드 전략”이라는 수량 거래 전략을 자세히 소개합니다. 이 전략은 하향 트렌드를 식별하고 허드 거래를 수행하는 데 초점을 맞추고 있으며, 여러 필터링 메커니즘, 시간 지연 출장 및 손해 차단을 통해 거래 성능을 최적화합니다. 이 전략의 핵심은 빠른 속도와 느린 이동 평균 교차와 가격 돌파구를 사용하여 트렌드를 확인하고, 변동률 필터링과 구역 간 필터링을 결합하여 거래 품질을 향상시킵니다.
이 공허 전략은 다음과 같은 핵심 기술 원칙에 기초하고 있습니다.
양평선 트렌드 확인전략은 빠른 이동 평균 (FMA) 과 느린 이동 평균 (SMA) 의 상대적인 위치를 사용하여 트렌드 방향을 판단한다. FMA가 SMA보다 낮으면 하향 트렌드가 있을 수 있음을 나타냅니다. 전략은 추가로 가격의 FMA를 침범하는 것을 입문 신호로 요구하며, 이는 더 강한 트렌드 확인을 제공합니다.
적응 필터링 시스템:
시간 기반 탈퇴 메커니즘전략: 교차 퇴출 신호를 고려하기 전에 시간 지연을 실시하여 거래가 일정 시간 동안 지속되도록 허용하여 수익 잠재력을 실현 할 수있는 기회를 증가시킵니다. 지연 후, 가격이 또는 FMA가 SMA를 다시 뚫을 때 공백 포지션을 닫습니다. 이는 잠재적인 추세 반전을 나타냅니다.
손해 방지 장치: 입시 가격에 기반한 비율의 스톱로스를 사용하여, 가격 역동이 스톱로스 레벨에 도달했을 때 자동으로 포지션을 청산하여 잠재적인 손실을 제한한다.
구체적인 거래 논리는 다음과 같습니다.
이 전략의 코드에 대한 심층적인 분석을 통해 다음과 같은 몇 가지 중요한 장점을 요약할 수 있습니다.
다중 인증 메커니즘이 전략은 평행선 교차에만 의존하지 않고, 가격 돌파구, 변동률 조건 및 간격 분석을 결합하여 여러 가지 확인을 제공하여 잘못된 신호의 가능성을 줄입니다.
시장 조건에 적응: 변동률 필터 (ATR) 와 간격 필터로, 전략은 서로 다른 시장 환경에 적응할 수 있고, 유리한 조건에서만 거래하고, 부적절한 시장 상태에서 입시를 피한다.
위험과 이익의 균형시간 연장 출구 메커니즘은 트렌드가 충분히 발전하도록 허용하며, 잠재적인 수익 트렌드를 조기 종료하는 것을 방지하며, 백분율 정지 보호는 명확한 위험 제어 경계를 제공합니다.
유연한 변수 설정전략: 전략은 평균 길이, ATR 감성, 분기율, 회귀 기간, 지연 시간 및 중지 비율을 포함한 여러 조정 가능한 매개 변수를 제공하여 거래자가 특정 시장 및 개인 위험 선호도에 따라 조정할 수 있습니다.
투명성의 논리전략 논리는 명확하고, 각 구성 요소의 역할과 상호 작용 방식은 명확하게 정의되어 있으며, 이해하기 쉽고 모니터링 할 수 있습니다.
자동화 실행전략은 완전히 자동화되어 진출 신호를 인식하는 것부터 상쇄 트리거 및 출전 시간을 지연하는 것까지 감정적 인 요소의 영향을 줄입니다.
이 전략은 합리적으로 설계되었지만 다음과 같은 잠재적인 위험과 도전이 있습니다.
시장의 역전 위험시장의 급격한 역전시에는, 특히 시장이 급격하게 상승할 때, 스톱로스 보호가 있더라도, 전략은 여전히 큰 손실을 입을 수 있습니다.
매개변수 민감도전략 성능은 파라미터 설정에 크게 의존하며, 파라미터 선택이 잘못되면 과도한 거래 또는 놓친 기회가 발생할 수 있습니다.
시간 지연의 위험: 고정 시간 지연은 모든 시장 조건에 적용되지 않을 수 있으며, 빠르게 변화하는 시장에서 지연 퇴출을 초래할 수 있다.
지역 시장구역 필터가 있음에도 불구하고, 전략은 구역 시장에서 잘 작동하지 않을 수 있습니다. 특히 시장이 구역 내에서 변동하지만 필터링 조건에 부합하지 않는 경우입니다.
역사적인 데이터에 의존합니다.: 계산 범위의 하위/고위 점의 회귀 창은 시장 조건의 변화로 인해 이상적이지 않을 수 있다.
전략에 기반한 기존의 프레임워크에서 몇 가지 잠재적인 최적화 방향은 다음과 같습니다.
동적 변수 조정: 시장 조건에 따라 자동으로 조정되는 매개 변수 시스템을 구현합니다. 특히 평균 선 길이와 ATR 민감도. 이것은 전략이 시장 구조의 변화에 더 잘 적응하고 추세와 간격 시장 사이에 원활하게 전환 할 수 있습니다.
추가된 출입 필터:
손해 방지 전략의 최적화:
다중 시간 프레임 분석더 높은 시간 프레임의 트렌드 확인을 통합하여 거래의 방향이 더 큰 트렌드와 일치하는지 확인하는 것은 전략의 승률과 리스크 수익률을 향상시킬 수 있습니다.
시장 상태 분류: 모델이 변동성, 트렌드 강도 및 가격 구조에 따라 다양한 시장 상태를 자동으로 식별하는 능력 (강한 트렌드, 약한 트렌드, 간격) 을 구현하고 그에 따라 전략 파라미터를 조정합니다.
기계 학습 강화: 최적의 변수 설정이나 시장 상태를 예측하기 위해 간단한 기계 학습 알고리즘을 통합하는 것을 고려하여 시스템을 더 적응적이고 예측할 수 있습니다.
감정 지표 통합: 시장의 감정이나 RSI 또는 MACD와 같은 과매매 / 과매매 지표를 추가하여 진입 / 출퇴치를 확인하고 극단적인 시장 상태에서 진입하는 것을 피하십시오.
“시간 지연 및 스톱 보호의 적응 변동률 트렌드 추적 허드 전략”은 허드 시장 시나리오에 대한 완벽하게 설계 된 트렌드 추적 시스템입니다. 기술 분석의 여러 핵심 요소를 결합합니다. 동선 교차로 트렌드 방향을 식별하고, 진입 품질을 향상시키는 변동률 및 간격 필터링, 시간 지연 출구 및 스톱 보호의 위험 관리.
이 전략의 주요 장점은 여러 층의 필터링 시스템과 명확한 위험 관리 프레임워크로 인해 하향 추세 시장에서 거래 기회를 찾는 데 적합합니다. 그러나 모든 거래 시스템과 마찬가지로 성공적인 적용은 적절한 매개 변수 조정과 지속적인 모니터링이 필요합니다.
제안의 최적화, 특히 동적 변수 조정 및 강화된 입출력 조건의 실행을 통해 전략의 적응성과 안정성을 더욱 향상시킬 수 있습니다. 무엇보다도 거래자는 잘 설계된 전략조차도 정기적으로 평가되고 변화하는 시장 조건에 적응하기 위해 조정되어야한다는 것을 기억해야합니다.
/*backtest
start: 2025-02-20 00:00:00
end: 2025-02-27 00:00:00
period: 2m
basePeriod: 2m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Profit Guard Short Strategy with Time Delay & Stop Loss", shorttitle="PGSS", overlay=true)
// Inputs
fastMA_length = input.int(50, title="Fast MA Length")
slowMA_length = input.int(200, title="Slow MA Length")
atrLength = input.int(14, title="ATR Length")
atrSensitivity = input.float(1.0, title="ATR Sensitivity")
rangePercent = input.float(0.03, title="Range Percent (%)")
rangeLookback = input.int(20, title="Range Lookback")
delayMinutes = input.int(10, title="Delay Before Close (Minutes)")
stopLossPercent = input.float(0.5, title="Stop Loss (%)")
shortAlertMsg = input.string("Short", title="Short Alert Message")
closeAlertMsg = input.string("Close", title="Close Alert Message")
stopLossAlertMsg = input.string("Stop loss!", title="Stop Loss Alert Message") // Custom stop loss alert message
// Calculations
fastMA = ta.sma(close, fastMA_length)
slowMA = ta.sma(close, slowMA_length)
atr = ta.atr(atrLength)
atrMA = ta.sma(atr, atrLength * 2)
volatilityCondition = atr > atrMA * atrSensitivity
rangeHigh = ta.highest(high, rangeLookback)
rangeLow = ta.lowest(low, rangeLookback)
rangeSize = (rangeHigh - rangeLow) / ta.sma(close, rangeLookback) * 100
rangeCondition = rangeSize < rangePercent
fmaBelowSma = fastMA < slowMA
crossDownFma = ta.crossunder(close, fastMA)
crossUpSma = ta.crossover(close, slowMA)
smaCrossUp = ta.crossover(fastMA, slowMA)
// Persistent Variables
var bool shortPositionOpen = false
var float shortEntryPrice = na
var int entryTime = na
// Strategy Logic
if (fmaBelowSma and volatilityCondition and not rangeCondition)
if (crossDownFma and not shortPositionOpen)
strategy.entry("Short", strategy.short)
shortPositionOpen := true
shortEntryPrice := close
entryTime := time
if (shortPositionOpen)
stopLossPrice = shortEntryPrice * (1 + stopLossPercent / 100)
if (high >= stopLossPrice)
strategy.close("Short", comment="Stop Loss")
shortPositionOpen := false
shortEntryPrice := na
entryTime := na
else if (time >= entryTime + delayMinutes * 60 * 1000)
if (crossUpSma or smaCrossUp)
strategy.close("Short", comment="Close")
shortPositionOpen := false
shortEntryPrice := na
entryTime := na
// Plotting
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
// Alerts
if (fmaBelowSma and crossDownFma and not shortPositionOpen[1] and volatilityCondition and not rangeCondition)
alert(shortAlertMsg)
if (shortPositionOpen[1] and high >= shortEntryPrice[1] * (1 + stopLossPercent / 100))
alert(stopLossAlertMsg) // Use custom stop loss alert message
if (shortPositionOpen[1] and time >= entryTime[1] + delayMinutes * 60 * 1000 and (crossUpSma or smaCrossUp))
alert(closeAlertMsg)