
이 전략은 시장의 트렌드를 발견하고 트렌드 트레이딩을 하기 위해 자율 적응형 ATR 평균표와 트렌드 추적을 결합한다. 이 전략은 헐 이동 평균 ATR을 평형화하여 평형 ATR 평균을 형성하고 가격과 ATR 평균의 관계에 따라 거래 신호를 발산한다. ATR 평균은 시장 노이즈를 효과적으로 필터링하여 큰 트렌드를 식별한다. 이 전략은 또한 고정된 중지 손실 점을 설정하여 각 항목의 위험 수익률을 제어한다.
이 전략의 핵심 지표는 ATR 평균선이다. ATR 지표는 시장의 변동성과 주식 가격의 실제 변화량을 측정할 수 있는 중요한 도구이다. ATR 평균선은 ATR 지표를 부드럽게 처리하고, 평균선이 형성된 후, 가격과 비교하여 가격 동향을 판단한다.
구체적으로, 이 전략은 먼저 TR ((True Range), 즉 당일 최고 가격과 최저 가격 사이의 차이점을 계산하고 전날 Close와 현재 최고 최저 가격 사이의 최대 차이점을 취한다. 그리고 나서 Hull 이동 평균 방법을 TR에 적용하여 스스로 적응하는 ATR 평균을 계산한다. ATR 평균은 시장에서 높은 빈도의 Noise를 효과적으로 필터링하여 큰 가격 변동만을 포착한다.
ATR 평균선을 계산한 후, 이 전략은 ATR 평균선과 가격을 비교한다. ATR 평균선을 상단으로 통과하면, 가격이 상승 추세로 들어간다는 것을 나타내는 전략은 긴 포지션을 수행한다. ATR 평균선을 아래로 통과하면, 가격이 하향 추세로 들어간다는 것을 나타내는 전략은 짧은 포지션을 수행한다.
또한, 이 전략은 고정된 중지 손실 범위를 설정한다. 매번 포지션을 개시한 후, 고정된 중지 손실 과 중지 포인트를 설정하고, 가격이 중지 손실 을 만지면 중지 출전을 하고, 중단 중단 포인트를 만지면 중지 출전을 한다. 이것은 각 의 손실을 제한하고, 동시에 수익을 잠금할 수 있다.
종합적으로, 이 전략은 ATR 평균 지표와 엄격한 위험 관리 조치를 결합하여 큰 가격 추세를 포착하는 동시에 각 손실을 통제하고 안정적인 수익 성장을 달성합니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
적응형 ATR 평균선 지표를 사용하여 가격의 큰 추세를 효과적으로 식별하고, 시장 Noise를 필터링하고, 함축되는 것을 방지합니다.
헐 이동 평균 방법을 적용하여 ATR 평균선을 계산하여 ATR 평균선을 더 부드럽게 만들고, 고주파 진동에 의해 오도되는 것을 피한다.
고정된 스톱로스 포트를 설정하여 단독 손실을 제한하고 수익을 잠금화하여 각 거래의 리스크/이익 비율을 보장합니다.
트렌드 트래킹 방식의 거래 방식은 가격 트렌드를 지속적으로 포착하여 수익을 올릴 수 있습니다.
전략 논리는 간단하고 명확하며, 이해하기 쉽고, 파라미터 설정은 다양한 품종과 시장 환경에 적합하다.
모든 품종에서 트렌드 추적이 가능하며, 강한 적응력을 가지고 있다.
이 전략에는 다음과 같은 위험들이 있습니다.
ATR 평균선에서 잘못된 신호를 발신할 가능성이 있다. 가격이 급격히 변동하여 ATR 평균선 판단에 오류가 생기고 잘못된 신호를 발생시킬 수 있다.
스톱포트가 너무 작으면 스톱포트가 발동될 확률이 높아질 수 있다. 스톱포트가 합리적으로 설정되어 가격에 충분한 변동이 가능하도록 해야 한다.
고정 정지 목표는 조기 정지할 수 있으며, 트렌드 상황을 지속적으로 잡지 못할 수 있다. ATR의 동적에 따라 정지점을 조정하는 것을 고려할 수 있다.
갑작스러운 사건으로 인해 가격이 급격히 상승하여 스톱로스를 유발합니다. 이 시기는 엄청난 손실을 방지하기 위해 거래를 중단해야합니다.
트렌드가 역전될 때, 적시에 매매를 하지 않으면 역동적으로 매매될 수 있다. 트렌드 종료 신호를 적시에 판단해야 한다.
매개 변수는 다양한 품종과 시장 환경에 맞게 최적화되어야 하며, 그렇지 않으면 전략의 성능에 영향을 미칠 수 있다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
ATR 평균선의 최적화 파라미터, ATR 계산 길이 기간 및 윤활 파라미터. 다양한 파라미터 조합이 ATR 평균선에 영향을 줄 수 있다.
스톱 스톱 전략을 최적화하기 위해 ATR의 동적 변화에 따라 스톱 스톱을 조정하는 것을 고려할 수 있습니다.
트렌드 판단 규칙을 추가하여, 다른 지표와 함께 트렌드 반전 신호를 판단하여, 반전 함정을 피하십시오.
다양한 품종과 시장 환경에 따라 매개 변수를 테스트하고 최적화하여 최적의 매개 변수를 찾습니다.
갑작스러운 사건에 대한 판단을 높이고, 급격한 하락 시 거래를 중단하고, 손실을 통제한다.
진출 시점을 최적화하여, 상회할 때 진출하는 것을 고려할 수 있으며, 상향할 때 진출하는 것을 고려하여 위험을 줄일 수 있다.
매개 변수 조합을 최적화하고, 다른 ATR 길이와 매개 변수 조합을 테스트하여 최적의 매칭을 찾습니다.
이 전략은 전체적으로 적응형 ATR 평균선 지표를 사용하여 트렌드를 발견하고, 고정된 스톱 방식으로 트렌드 추적 거래를 한다. ATR 평균선은 트렌드를 효과적으로 식별하고, 고정된 스톱은 리스크 수익률을 제어한다. 이 전략의 장점은 논리적으로 간단하고 이해하기 쉽고, 변수에 따라 변수를 조정할 수 있다.
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("ATR(Hull)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= false, calc_on_every_tick=true, pyramiding=0)
length = input(title="Length", defval=14, minval=1)
price = input(close)
SL = input(50, title="Stop loss")
TP = input(150, title="Take profit")
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => true
p=price[1]
func_hma(style, length)=>
return = wma((2*wma(p,length/2))-wma(p,length),round(sqrt(length)))
ATR=func_hma(tr(true), length)
plot(ATR[0], title="ATR1",color=green,transp=0)
plot(ATR[1], title="ATR2",color=red,transp=0)
if (ATR>ATR[1])
strategy.entry("long",strategy.long,comment="Long",when=window())
if (ATR<ATR[1])
strategy.entry("short",strategy.short,comment="Short",when=window())
//strategy.close_all(when=strategy.openprofit<-eqSL and window())
//strategy.close_all(when=strategy.openprofit>eqTP and window())
strategy.exit("exit", "long", profit = TP, loss = SL)
strategy.exit("exit", "short", profit = TP, loss = SL)