도지 촛불 역전 거래 전략

저자:차오장, 날짜: 2023-09-27 16:40:28
태그:

전반적인 설명

이 전략은 도지 촛불 패턴을 식별하고 SMA를 결합하여 거래의 반전을 결정합니다. 도지 패턴이 형성되고 오픈 / 클로즈 가격이 SMA 라인의 외부에있을 때 거래 신호를 생성합니다. 올시 신호는 매달린 맨 라인과 시범 라인에 둔시 신호가 생성됩니다.

원칙

이 전략의 주요 원칙은 다음과 같습니다.

  1. 오픈/클로즈 가격 대 전체 가격 움직임의 범위를 계산하여 도지 패턴을 식별합니다.

  2. 잘못된 신호를 피하기 위해 이전 클로즈가 현재 하위/높이/하위인지 확인합니다.

  3. 회전 신호를 생성하기 위해 SMA 라인에 대한 오픈/클로즈 가격 판단.

  4. 정당한 도지 패턴이 확인되면 긴/단기 신호를 생성합니다.

이 법규의 주요 단계는 다음과 같습니다.

  1. SMA 라인 계산

  2. 도지 패턴을 식별하기 위해 촛불을 통해 순환

  3. 이전 밀접한 대 현재 높은/저한 관계를 확인

  4. 오픈/클로즈 및 SMA 관계를 기반으로 반전 신호를 확인

  5. 신호 마커를 그래프화하고 긴/단기 신호를 출력

장점

이 전략의 장점은 다음과 같습니다.

  1. 도지 패턴은 명확하고 쉽게 식별/시행할 수 있습니다.

  2. SMA 필터는 잘못된 신호를 줄이는 데 도움이 됩니다.

  3. 명확한 장기/단기 신호는 거래 작업을 간단하게 합니다.

  4. 리버스 트레이딩은 단기적인 경향을 파악합니다.

  5. 유연한 매개 변수는 다른 시장 조건에 적응할 수 있습니다.

  6. 이해하기 쉽고 적용하기 쉽고 초보자 편리합니다.

위험성

몇 가지 잠재적인 위험:

  1. 단 하나의 패턴에 의존하고 거짓 탈출에 유연합니다.

  2. 손실을 통제할 수 있는 스톱 로스 메커니즘이 없습니다.

  3. 잘못된 매개 변수 조정으로 인해 과잉 거래가 발생할 수 있습니다.

  4. 트렌드에 의존하고, 트렌드 시장에서 실적이 떨어집니다.

  5. 성능은 매개 변수 최적화에 의존합니다.

해결책:

  1. 신호를 확인하기 위해 다른 필터를 추가합니다.

  2. 위험을 관리하기 위해 스톱 로스를 적용합니다.

  3. 매개 변수를 최적화하고 거래 빈도를 제한합니다.

  4. 주로 범위에 묶인 시장에서 사용하십시오.

  5. 지속적인 백테스팅과 최적화

개선 할 수 있는 분야

전략을 개선할 수 있는 몇 가지 방법:

  1. 부진을 방지하기 위해 볼륨 필터를 추가합니다.

  2. 트레일링 스톱 로스 같은 스톱 로스 메커니즘을 구현합니다.

  3. 트렌드 같은 시장 조건에 따라 매개 변수를 최적화합니다.

  4. MACD, KDJ 등과 같은 신호를 확인하기 위해 다른 지표를 추가합니다.

  5. 트렌드 결정을 추가하여 역 트렌드 거래를 피합니다.

  6. 뷰백 기간을 최적화하여 빈도와 품질을 균형 잡습니다.

요약

이 전략은 효율적인 반전 거래를 위해 SMA와 함께 도지 패턴을 사용합니다. 간단한 규칙과 쉬운 거래와 같은 장점이 있습니다. 그러나 또한 리스크와 개선 영역이 있습니다. 지속적인 최적화로 탄탄한 단기 거래 시스템이 될 수 있습니다.

[/trans]


/*backtest
start: 2022-09-20 00:00:00
end: 2023-09-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Doji Reversal", overlay=true)

smaPeriod = input(title="SMA Period", defval=10, minval=0)
tolerance = input(title="Tolerance", defval=0.1, minval=0)

lookbackEnd = input(title="End", defval=2, minval=0)

avg = sma(close, smaPeriod)
signal_long = bool(false)
signal_short = bool(false)

for i = 1 to lookbackEnd
    is_doji = (abs(close[i] - open[i]) / (high[i] - low[i])) < tolerance
    signal_long := signal_long or ( is_doji and (close[i-1] <= high[i] or i == 1) and close[i-1] > high[i] and high[i] < avg and close > open )
    signal_short := signal_short or ( is_doji and (close[i-1] >= low[i] or i == 1) and close[i-1] < low[i] and low[i] > avg and close < open )

plotshape(signal_long, "LONG", style=shape.triangleup, size=size.normal)
plotshape(signal_short, "SHORT", style=shape.triangledown, size=size.normal)

strategy.entry("LONG", strategy.long, when=signal_long)
strategy.entry("SHORT", strategy.short, when=signal_short)

더 많은