골든 크로스와 데스 크로스 동적 손절매 전략


생성 날짜: 2023-11-01 13:46:28 마지막으로 수정됨: 2023-11-01 13:46:28
복사: 1 클릭수: 707
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

골든 크로스와 데스 크로스 동적 손절매 전략

개요

이 전략은 ATR 지표를 중지 라인으로 계산하여 가격이 EMA를 넘어서면 구매 신호를 생성하고 가격이 EMA를 넘어서면 판매 신호를 생성하며 동적 중지 기능을 사용하여 위험을 관리합니다.

전략 원칙

이 전략의 핵심 논리는 다음과 같습니다.

  1. nLoss를 계산하기 위해 ATR 값을 사용한다.

  2. Heikin Ashi 옵션 h에 따라 가격 출처를 결정하기 위해, 기본으로 클로즈 가격을 사용한다. Heikin Ashi를 선택하면 해당 의 클로즈 가격을 사용한다.

  3. xATRTrailingStop를 정의하여, K선과 비교한 가격으로 현재 K선의 스톱 라인을 결정하는 동적으로 트래킹한 스톱 라인

  4. 포지션 포스를 정의합니다. 가격 상위 지점을 통과할 때 1로 설정하고, 가격 아래 지점을 통과할 때 -1로 설정합니다. 그렇지 않으면 0으로 설정합니다.

  5. K 선의 EMA 평균값을 계산하고, 지표의 상단 (구매 신호) 과 하단 (판매 신호) 을 정의합니다.

  6. 구매 및 판매 신호가 발생했을 때 거래 입출소를 설정합니다.

  7. barcolor 함수를 사용하여 K 선의 색상을 위치에 따라 표시합니다.

  8. 플롯셰이프를 사용하여 구매 및 판매 시 신호를 표시합니다.

이 전략은 ATR의 동적 스톱을 통해 위험을 관리하고, 트렌드가 발생했을 때 적시에 입문하고, 스톱 라인이 발생했을 때 적시에 중지한다.

전략적 이점

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. ATR의 동적 스톱을 사용하면 시장의 변동에 따라 스톱 거리를 조정할 수 있으며, 스톱을 보장하면서도 가격의 단기 변동에 의해 촉발되는 너무 급진적인 스톱을 피할 수 있습니다.

  2. EMA를 사용하여 거래 신호를 생성하여 일부 가짜 돌파구로 인한 불필요한 거래를 필터링합니다.

  3. Heikin Ashi 을 가격 소스로 선택하여 흐름을 식별하기 위해 소음을 필터링할 수 있습니다.

  4. 포지션 관리가 명확하고, 포지션이 명확하게 공백되고, 손실로 인한 거래가 자주 추적되지 않습니다.

  5. 직관적으로 거래 신호와 스톱을 표시합니다.

  6. 전략 논리는 간단하고 명확하며 이해하기 쉽고 수정할 수 있습니다.

  7. 다양한 시장 환경에 맞게 ATR 주기와 ATR 중지 배수를 사용자 정의할 수 있습니다.

종합적으로, 이 전략은 트렌드 추적과 동적 상쇄 기술을 통합하여 트렌드를 효과적으로 식별하고 위험을 관리할 수 있으며, 중장선 트렌드를 추적하는 거래에 적합하다.

전략적 위험

이 전략에는 위험도 있습니다.

  1. EMA 평행선이 거래 신호를 생성하는 데 지연되어 단선 기회를 놓칠 수 있습니다.

  2. ATR에 의해 결정되는 중지 거리, 시장의 변동에 따라 자주 중단됩니다.

  3. 비용 요소를 고려하지 않고 실제 거래의 양자 수수료가 수익에 영향을 미칩니다.

  4. 적절한 포지션 컨트롤이 설정되지 않아 자금 관리에 개선이 필요합니다.

  5. 효과는 매개 변수 최적화에 의존하며, 다른 시장에 따라 매개 변수가 조정되어야 합니다.

  6. 시장의 큰 흔들림 속에서 쉽게 갇히게 됩니다.

  7. 적절한 모니터링, 적절한 개입 또는 전략 중단

적절한 최적화 매개 변수, 포지션 제어 설정, 기타 지표 필터링 신호와 같은 방법으로 위험을 줄일 수 있습니다. 실장 거래에서 포지션 규모를 제어하고, 전략 효과를 지속적으로 모니터링하고, 필요한 경우 수동 개입 또는 폐쇄해야합니다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. ATR 변수를 조정하여 다른 시장에서 스톱 라인지를 합리화합니다.

  2. 다른 일률 지표를 테스트하여 가짜 신호를 더 필터링합니다.

  3. 트렌드 판단 지표를 추가하고, 트렌드 방향을 확인한 후 입원

  4. 포지션 컨트롤을 설정하여 단방향 포지션 수를 제한합니다.

  5. 거래량, 평균에서 멀리 떨어져 있는 종결 가격 등으로 포지션 개시 조건을 증가시킵니다.

  6. 비용 요소를 고려하고, 수수료에 따라 중지 거리를 설정합니다.

  7. 여러 신호와 지표와 결합하여 구매 및 판매 시점을 최적화하십시오.

  8. 부분 정지 또는 이동 정지

  9. 매개 변수 최적화 기능을 추가하여 테스트 매개 변수를 자동으로 최적화합니다.

여러 기술 지표와 최적화 방법을 통합하여 더 많은 시장에서 더 안정적인 효과를 얻기 위해 전략을 더 개선 할 수 있습니다.

요약하다

이 전략은 동적 중지 및 트렌드 추적 기술을 통합하고 있으며, 손실 효과, 추적 원활성, 이해 및 최적화 등의 장점을 가지고 있으며, 중장선 트렌드 모드를 추적하는 데 적합합니다. 그러나 위험 제어, 최적화 파라미터를 주의해야합니다. 이 전략을 잘 사용하면 트렌드가 명백한 시장에서 좋은 효과를 얻을 수 있습니다.

전략 소스 코드
/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. 

// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

xATR  = atr(c)
nLoss = a * xATR

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close

xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
   iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), 
   iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
 
pos = 0   
pos :=	iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
   iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
   
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

ema   = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

buy  = src > xATRTrailingStop and above 
sell = src < xATRTrailingStop and below

barbuy  = src > xATRTrailingStop 
barsell = src < xATRTrailingStop 

plotshape(buy,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

barcolor(barbuy  ? color.green : na)
barcolor(barsell ? color.red   : na)

strategy.entry("long",   true, when = buy)
strategy.entry("short", false, when = sell)