
트리플 리 운동량 트렌드 캡처 시스템은 규칙 기반의 경향과 운동량 거래 전략으로, 세 가지 독특한 기술 모델을 통합하여 하나의 통합 엔진으로 통합한다. 이 전략은 잘 필터링 된 입시점, 소음 간섭을 줄이고 거래 구조를 명확하게하는 거래자를 선호하는 거래자를 위해 고안되었다. 이 통합 방식은 세 개의 독립적인 지표의 일관성을 요구하여 신호의 신뢰성을 보장하며, ATR (진실 평균 범위) 를 사용하여 스톱 및 스톱 손실 수준을 동적으로 설정하여 위험 관리의 적응성을 실현한다.
이 전략의 핵심 논리는 세 가지 주요 기술 지표의 상호 작용에 기반합니다.
고위 감정 진동기 ((ASO): 시장에서 호불호와 하락의 힘을 측정한다. ASO는 디스크 내의 압력과 포괄 범위의 역동성을 결합한 사용자 정의 공식으로 시장 정서를 계산한다. 이 지표에는 세 가지 계산 모드가 있으며, 시장의 다른 측면을 유연하게 강조할 수 있다.
SSL 채널: 이것은 고위점과 저위점 이동 평균을 기반으로 한 고전적인 트렌드 추적 방법이다. 그것은 가짜 신호를 필터링하여 거래가 더 넓은 시장 방향과 일치하도록 돕는다. SSL 상궤도선이 하계선보다 높을 때 비관적 경향을 나타냅니다. 반대로 비관적 경향을 나타냅니다.
동력 돌파 지표 ((MBI): 가격의 최근 극한을 돌파한 상황을 찾습니다. 다른 필터들이 정렬된 후 최종 촉발 장치로 사용됩니다. MBI는 가격이 특정 기간 (기본 12) 의 최고 / 최저 수준을 돌파했는지 확인하여 작동합니다.
거래 신호는 다음 조건이 충족될 때만 생성됩니다:
구체적으로, 다중 입장은 다음과 같습니다: MBI는 긍정 (((상향 돌파구를 나타냅니다), ASO는 부자 ((ASO Bulls > ASO Bears), ASO는 방금 부자 교차를 생성하고, SSL은 부자 상태입니다. 공허 입장은 반대입니다. 거래가 촉발되면, 시스템은 ATR의 배수를 사용하여 동적인 중지 및 중지 수준을 설정하여 위험 관리가 시장의 변동성에 적응 할 수 있도록합니다.
다중 확인 메커니즘: 이 전략은 3개의 독립된 지표의 일관성을 요구함으로써 가짜 신호를 현저히 줄이고 거래의 질을 향상시킵니다. 이 “삼중 필터” 방식은 강력한 트렌드 신호만이 거래를 유발할 수 있도록 보장합니다.
적응적 위험 관리: 전략은 ATR을 사용하여 스톱 및 스톱 손실 수준을 계산하여 시장의 변동성에 따라 자동으로 조정할 수 있습니다. 이것은 다양한 시장 조건에서 위험 의 일관성을 보장합니다.
유연한 변수 설정: 정책은 사용자가 ASO 주기 및 계산 방법, SSL 이동 평균 주기, MBI 돌파 회수 기간 및 ATR 관련 설정을 포함한 각 구성 요소의 변수를 조정할 수 있도록 허용하여 다양한 시장 환경 및 개인 위험 선호도에 따라 최적화 할 수 있습니다.
명확한 거래 구조: 이 전략의 규칙은 명확하고 이해하기 쉽고, 거래자에게 명확한 입출장 조건을 제공하며, 주관적 판단의 필요성을 줄인다.
중복되지 않는 거래: 전략은 현재 거래가 닫히기 전에 새로운 거래를 열지 않도록 설계되어 있으며, 이는 위험을 관리하고 과도한 거래를 방지하는 데 도움이됩니다.
트렌드와 동력을 결합: 트렌드 추적 (SSL) 과 동력 브레이크 (MBI) 지표를 결합하여, 이 전략은 동력을 확인하는 동시에 트렌드를 포착할 수 있습니다. 이는 일반적으로 더 신뢰할 수있는 거래 신호로 이어집니다.
해결 방법: 각 지표의 매개 변수를 다른 시장 환경에 맞게 조정하거나 높은 변동성 시장에서 특정 조건을 적절하게 완화 할 수 있습니다.
해결 방법: 포괄적인 회귀와 매개 변수 최적화를 통해 특정 시장과 시간 프레임에 적합한 최적의 매개 변수 조합을 찾아내십시오. 매개 변수 변경이 성능에 미치는 영향을 평가하기 위해 단계적 회귀를 사용하는 것을 고려하십시오.
해결 방법: 트렌드 강도 필터 또는 변동성 조절 장치를 추가하는 것을 고려하고, 극단적인 시장 조건에서 전략적 행동을 조정하십시오. 잠재적으로 큰 회전을 완화하기 위해 더 급진적인 손해 방지 장치를 적용 할 수도 있습니다.
해결 방법: 리테크에 슬라이드 시뮬레이션을 추가하고, 실장 거래에서 시가 대신 제한 가격을 사용하십시오. 실행 위험을 대응하기 위해 전략에 추가된 안전 마진을 추가하는 것을 고려하십시오.
해결 방법: 기본 필터 또는 시장 감정 지표와 결합하여 기술 신호를 보완하는 것을 고려하십시오. 예를 들어, 변동성 조건을 추가하여 시장이 너무 변동할 때 거래를 피하십시오.
동적 파라미터 조정: 시장 조건 (예: 변동성 또는 트렌드 강도) 에 따라 전략 파라미터를 자동으로 조정하는 메커니즘을 구현한다. 예를 들어, 높은 변동성 환경에서 ATR 배수를 확장할 수 있고, 낮은 변동성 환경에서 ATR 배수를 축소할 수 있다. 이것은 서로 다른 시장 상태에 더 잘 적응하여 전략의 안정성을 향상시킬 수 있다.
시장 환경 필터를 추가합니다. 현재 시장 환경을 식별하는 추가 필터를 도입합니다 (예: 트렌드, 흔들림 또는 무작위) 그리고 다른 환경에 따라 전략 행동을 조정합니다. 예를 들어, 흔들림 시장에서는 더 엄격한 진입 조건이 필요할 수 있으며, 강한 추세 시장에서는 일부 조건이 완화 될 수 있습니다.
부분 포지션 관리: 더 복잡한 포지션 관리 시스템을 구현하여 신호 강도, 시장의 변동성 또는 기타 요인에 따라 부분 입출력을 허용합니다. 이것은 “모든 또는 전혀” 거래 방식의 위험을 줄이는 데 도움이 될 수 있으며 더 세밀한 위험 통제를 제공합니다.
시간 필터 최적화: 기존의 회귀 시간 필터 기능을 강화하여 일간 시간 필터 또는 특정 시장 조건의 시간 필터를 추가하십시오. 특정 시장은 특정 시간 동안 더 분명한 추세 특성을 나타낼 수 있으며, 이러한 시간대에 대한 최적화 전략은 전체 성능을 향상시킬 수 있습니다.
지표 개선: 기존 지표를 개선하거나 대체하는 것을 고려하십시오. 예를 들어, SSL의 간단한 이동 평균 대신 적응형 이동 평균을 사용할 수 있습니다.
기계 학습 강화: 매개 변수 선택을 최적화하거나 어떤 전략이 시장 조건에서 가장 잘 수행 될 수 있는지 예측하기 위해 기계 학습 알고리즘을 도입합니다. 이것은 시스템이 역사적 데이터에서 배우고 미래의 시장 변화에 적응하도록 도와줍니다.
스톱/스트로드 최적화: 더 복잡한 스톱 전략을 구현하기 위해 스톱을 추적하거나 지지/저항 수준에 기반한 동적 스톱을 실행할 수 있다. 마찬가지로, ATR 배수에만 의존하지 않고 시장 구조에 기반한 스마트 스톱 메커니즘을 고려할 수 있다.
트리플 리동량 트렌드 캡처 시스템은 ASO 감정 지표, SSL 트렌드 채널 및 MBI 동량 돌파 지표를 통합하여 엄격하게 필터링 된 트렌드 추적 방법을 제공하는 포괄적 인 거래 전략입니다. 이 전략의 주요 장점은 여러 확인 메커니즘과 적응 위험 관리 시스템입니다. 이것은 잘못된 신호를 줄이고 다양한 시장 변동 조건에 적응합니다.
과도한 과장 및 변수 민감성 같은 잠재적인 위험에도 불구하고, 적절한 변수 최적화 및 추가 위험 관리 기술을 통해 이러한 문제를 효과적으로 완화 할 수 있습니다. 미래 최적화 방향은 전략의 성능과 안정성을 더욱 향상시킬 잠재력이있는 동적 변수 조정, 시장 환경 필터링 및 더 복잡한 위치 관리 시스템을 포함 할 수 있습니다.
종합적으로, 이 삼중 필터링 방법은 명확한 구조와 신뢰할 수 있는 거래 신호를 찾는 거래자들에게 귀중한 도구를 제공합니다. 이 전략은 감정 분석, 트렌드 식별 및 동력 확인을 결합하여 다양한 시장 조건에서 높은 확률의 거래 기회를 식별 할 수 있으며 신중한 위험 관리를 유지합니다.
/*backtest
start: 2024-06-16 00:00:00
end: 2025-06-14 08:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Darkoexe
//@version=5
strategy("PMZ's Triple Filter Trend Strategy {Darkoexe}", overlay=true, initial_capital=10000, pyramiding=2, margin_long=50, margin_short=50)
length=input.int(10,"ASO Period?",minval=1,maxval=100)
mode=input.int(0,"ASO Calculation Method:",minval=0,maxval=2)
intrarange=high-low
grouplow=ta.lowest(low,length)
grouphigh=ta.highest(high,length)
groupopen=open[length-1]
grouprange=grouphigh-grouplow
K1=intrarange==0 ? 1 : intrarange
K2=grouprange==0 ? 1 : grouprange
intrabarbulls=((((close-low)+(high-open))/2)*100)/K1
groupbulls=((((close-grouplow)+(grouphigh-groupopen))/2)*100)/K2
intrabarbears=((((high-close)+(open-low))/2)*100)/K1
groupbears=((((grouphigh-close)+(groupopen-grouplow))/2)*100)/K2
TempBufferBulls= mode==0 ? (intrabarbulls+groupbulls)/2 : mode==1 ? intrabarbulls : groupbulls
TempBufferBears= mode==0 ? (intrabarbears+groupbears)/2 : mode==1 ? intrabarbears : groupbears
ASOBulls=ta.sma(TempBufferBulls,length)
ASOBears=ta.sma(TempBufferBears,length)
//ASO
// Modification
var cross = false
var isASObull = ASOBulls>ASOBears ? true : false
if(ASOBulls>ASOBears and isASObull == false)
isASObull := true
cross := true
else if(ASOBulls<ASOBears and isASObull == true)
isASObull := false
cross := true
else
cross := false
//SSL
len=input.int(title="SSL Period", defval=10)
smaHigh=ta.sma(high, len)
smaLow=ta.sma(low, len)
float Hlv = na
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh: smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
//Modification
var isSSLbull = sslUp>sslDown ? true: false
if(sslUp>sslDown)
isSSLbull := true
else if(sslUp<sslDown)
isSSLbull := false
//MBI
per = input(12,title="MBI Period")
H = ta.highest(hl2,per)
hi = H[1]
L = ta.lowest(hl2,per)
lo = L[1]
cl = close
ind = cl>hi? 1 : cl<lo? -1 : 0
//Modification
var longCondition = false
var shortCondition = false
if(ind>0 and isASObull==true and cross==true and isSSLbull==true)
longCondition := true
else if(ind<0 and isASObull==false and cross==true and isSSLbull==false)
shortCondition := true
// Define strategy parameters
// risk_percent = input(2, title="Risk Percentage")
targetATR = input(1, title="Take Profit ATR ratio")
stopLossATR = input(1.5, title="Stop loss ATR ratio")
atrPeriod = input(14, title="ATR period")
ATR = ta.atr(atrPeriod)
// Calculate take profit level based on the reward ratio
take_profit_price = longCondition? close + (targetATR*ATR): shortCondition? close - (targetATR*ATR): 0
stop_loss_price = longCondition? close - (stopLossATR*ATR): shortCondition? close + (stopLossATR*ATR): 0
if (longCondition and strategy.opentrades == 0)
// take_profit_price = close + targetATR*ATR
// stop_loss_price = close - (stopLossATR*ATR)
strategy.entry("My Long Entry Id", strategy.long)
strategy.exit("Exit", from_entry="My Long Entry Id", stop=stop_loss_price, limit=take_profit_price)
longCondition := false
else if (shortCondition and strategy.opentrades == 0)
// take_profit_price = close - targetATR*ATR
// stop_loss_price = close + (stopLossATR*ATR)
strategy.entry("My Short Entry Id", strategy.short)
strategy.exit("Exit", from_entry="My Short Entry Id", stop=stop_loss_price, limit=take_profit_price)
shortCondition := false