거북이 브레이크아웃 EMA 크로스오버 전략


생성 날짜: 2023-11-07 15:40:08 마지막으로 수정됨: 2023-11-07 15:40:08
복사: 0 클릭수: 619
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

거북이 브레이크아웃 EMA 크로스오버 전략

개요

이 전략은 두 개의 다른 주기의 EMA 평균선을 사용하여 트렌드 반전을 판단하기 위해 그들의 교차를 통해 입구 및 출구 신호로 사용한다. 전략은 간단하고 이해하기 쉽고 조작하기 쉽다.

전략 원칙

이 전략은 ta.ema 함수를 사용하여 두 개의 EMA 평균선을 계산하는데, 하나는 10주기 길이의 것이고, 하나는 20주기 길이의 것으로, 단기 및 장기 트렌드를 나타낸다. 코드는 ta.crossover와 ta.crossunder를 통해 두 개의 EMA의 교차 상황을 판단하며, 단기 EMA에서 장기 EMA를 통과할 때 더 많이 하고, 단기 EMA 아래에서 장기 EMA를 통과할 때 공백하게 한다. 이렇게 서로 다른 주기 EMA 평균선의 교차점을 이용하여 트렌드의 전환점을 포착한다.

이 전략은 또한 lastCrossTime라는 변수를 사용하여 마지막 교차 시간을 기록하여 반복적인 교차가 무의미한 거래를 초래하는 것을 방지합니다. 매번 유효한 교차 할 때, 먼저 현재의 모든 포지션을 평정하고, 교차 방향을 따라 포지션을 개시합니다. 포지션을 개시한 후 중지 손실 평정 포지션을 출구합니다.

전략적 이점

  1. 전략은 간단하고 명확하며, 이해하기 쉽고, 작동하기 쉽습니다.

  2. EMA를 통해 트렌드 반전을 판단하는 것은 흔히 쓰이는 효과적인 기술 지표 전략이다.

  3. 다양한 주기적 EMA를 사용하면 큰 트렌드를 포착하는 동시에 단기적 변화에 대한 민감성을 높일 수 있습니다.

  4. 단편 거래의 위험과 수익을 통제할 수 있는 스톱로스 설정

  5. LastCrossTime 변수를 사용하여 반복 신호를 필터링하여 무의미한 거래를 피하십시오.

전략적 위험

  1. EMA 교차는 잘못된 신호를 발생시킬 수 있으며, 잘못된 판단의 위험이 있습니다.

  2. 고정된 TP와 SL는 시장의 변화에 대응하기 어렵고, 동적 스톱로스를 설정해야 한다.

  3. 오직 EMA 교차에 기반한 시스템은 충격적인 상황에서는 손실을 초래할 수 있다.

  4. 거래 비용의 영향을 고려하지 않고 실제 운영에서는 스프레드와 같은 거래 비용에 주의해야 한다.

  5. 이 전략은 주로 트렌디스틱한 상황에 적용되며, 충격적인 상황에서는 효과가 좋지 않을 수 있다.

정지 스톱 손실을 최적화하고, 필터 조건을 추가하고, 다른 지표들을 조합하여 개선할 수 있다. 실디 시에는 위험을 엄격히 제어하고, 단일 손실이 너무 크지 않도록 해야 한다.

전략 최적화 방향

  1. EMA의 최적화 파라미터를 테스트하여 더 적합한 주기 조합을 찾을 수 있다.

  2. KDJ, MACD 등의 보조 지표 판단을 추가한다.

  3. 동적 스톱스톱 손실을 설정합니다. 예를 들어, 트렌드에 따라 마이너스 손실을 설정합니다.

  4. 거래량에 대한 판단을 높이고, 많은 거래가 발생했을 때 입시를 고려하십시오.

  5. 다른 그래픽 형태와 결합하여 판단하기 위해, 중요한 저항 지점을 돌파하는 등.

  6. 고정 디스크의 비용 영향을 고려하여 합리적인 스톱 스톱 손실을 설정하십시오.

요약하다

이 전략의 전체적인 아이디어는 간단하고 명확하며, EMA 평행선의 빠른 느린 교차 판단 트렌드 반전을 사용하여, 스톱 로즈와 함께 위험 수익을 제어한다. 전략은 조작하기 쉽지만, EMA 교차에는 약간의 오판 위험이 있으며, 지표 파라미터를 추가적으로 최적화하고, 오판을 줄이기 위해 다른 기술 지표를 보조해야합니다. 트렌드 상황에서 효과는 좋지만, 충격적인 상황에서 곤경에 처해 있습니다. 실시간 상장은 위험을 엄격하게 제어하고, 스톱 로즈의 폭을 최적화하고, 적절한 소 포지션을 축소한다.

전략 소스 코드
/*backtest
start: 2023-10-30 00:00:00
end: 2023-11-06 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('XXXquang', overlay=true)

// Sử dụng hàm input.int() và input.float() để tạo các trường nhập liệu với giới hạn giá trị
length1 = input.int(10, title="Length EMA Short", minval=1)
length2 = input.int(20, title="Length EMA Long", minval=1)
lotSize = input.int(1, title="Lot Size", minval=1)

takeProfitLevel = input.int(600, title="Take Profit Level", minval=1)
stopLossLevel = input.int(200, title="Stop Loss Level", minval=1)

ema1 = ta.ema(close, length1)
ema2 = ta.ema(close, length2)

var float lastCrossTime = na

if ta.crossover(ema1, ema2)
    if na(lastCrossTime)
        strategy.close_all()
    strategy.entry('Buy Order', strategy.long, qty=lotSize)
    strategy.exit('Exit Buy', 'Buy Order', profit=takeProfitLevel / syminfo.pointvalue, loss=stopLossLevel / syminfo.pointvalue)
    lastCrossTime := timenow

if ta.crossunder(ema1, ema2)
    if na(lastCrossTime)
        strategy.close_all()
    strategy.entry('Sell Order', strategy.short, qty=lotSize)
    strategy.exit('Exit Sell', 'Sell Order', profit=takeProfitLevel / syminfo.pointvalue, loss=stopLossLevel / syminfo.pointvalue)
    lastCrossTime := timenow

plot(ema1, title='EMA Short', color=color.new(color.blue, 0), linewidth=2)
plot(ema2, title='EMA Long', color=color.new(color.red, 0), linewidth=2)