이중 이동 평균 모니터링 모델

저자:차오장, 날짜: 2023-10-17 16:33:29
태그:

img

전반적인 설명

이 전략은 단기적으로 과대평가된 주식을 식별하고 가격 하락으로부터 이익을 얻기 위해 단기 포지션을 취하기 위해 이중 기하급수적 이동 평균 (EMA) 및 이동 평균 크로스오버 (MACD) 지표의 조합을 사용합니다. 이 전략은 가격 변화에 신속하게 반응하는 EMA의 능력과 동력 방향을 모니터링하는 MACD의 힘을 최대한 활용하여 황소와 곰 사이의 전환점에 단기 수익 기회를 포착합니다.

전략 논리

  1. 8일 EMA와 26일 EMA를 계산합니다. 8일 EMA가 26일 EMA를 넘으면 구매 신호로 간주됩니다.

  2. 12일 EMA, 26일 EMA 및 9일 EMA를 사용하여 DEA라는 차이를 계산합니다. MACD가 DEA를 넘으면 구매 신호로 간주됩니다.

  3. 진입 규칙: 8일 EMA > 26일 EMA와 MACD가 DEA 이상, 두 조건이 충족되면 길게 넘는다.

  4. 출구 규칙: 출구 가격의 3%로 후속 스톱 손실을 설정하고, 출구 가격의 1%로 후속 스톱 손실을 설정하고, 어느 하나에 닿을 때 출구

이 전략은 가격에 대한 EMA의 빠른 반응과 동력 방향에 대한 MACD의 판단을 모두 활용하여 황소에서 곰으로의 주요 전환점을 식별합니다. 빠른 EMA는 느린 EMA에 대한 단기 내재 가치의 교정을 반영하며 MACD는 이동 평균의 방향을 예측하는 거래 힘의 변화를 반영하여 이중 지표를 사용하여 거래 기회를 포착하는 정확도를 향상시킵니다.

이점 분석

  1. EMA와 MACD의 조합은 거래 신호를 캡처하는 정확성을 향상시킵니다. EMA는 가격 트렌드를 파악하고 MACD는 모멘텀 방향 변화를 판단하며, 단기 극단성을 식별하고 가짜 브레이크로 인한 손실을 피합니다.

  2. 트레일링 스톱 손실은 위험을 제어하고 적시에 종료합니다. 1% 트레일링 스톱은 진입 후 설정되어 손실 확장을 피합니다.

  3. 탄탄한 백테스트 데이터입니다. 전략은 실제 거래 환경을 시뮬레이션하여 2022년 전체 곰 시장에서 백테스트됩니다.

  4. 유연한 매개 변수 조정, 스톱 로스 비율, 포지션 사이즈 비율

위험 분석

  1. 빈번한 거래는 긴밀한 추적을 필요로 합니다. 5 분 시간 프레임은 입출동의 빈도를 높이고 거래를 추적하는 데 충분한 시간이 필요합니다.

  2. 후속 스톱 손실은 조기 종료 될 수 있습니다. 너무 긴 후속 스톱 손실은 조기 종료로 이어질 수 있습니다.

  3. 유행 시장에서 낮은 성과. EMA와 MACD는 유행 시장에서 더 잘 작동합니다.

  4. 거래 비용은 고려해야 합니다. 각 거래는 수수료에 해당하며, 빈번한 거래는 비용을 증가시킵니다.

최적화 방향

  1. EMA 기간 매개 변수를 조정하여 출입 및 출입을 최적화 할 수 있습니다. 최적의 조합을 찾기 위해 빠른 EMA 기간을 단축하고 EMA 사이의 스프레드를 확대하여 테스트 할 수 있습니다.

  2. 조기 중지 위험을 낮추기 위해 중지 손실 비율을 최적화하십시오. 후속 중지 손실을 적절히 확장하면 과도하게 공격적인 중지가 피할 수 있습니다.

  3. 최적의 기간을 찾기 위해 다른 보유 기간을 테스트합니다. 최상의 보유 기간을 찾기 위해 다른 보유 기간의 수익을 평가하십시오.

  4. 다른 기술적 필터를 추가하는 것을 평가합니다. 거래 결정의 효율성을 향상시키기 위해 변동성 지수를 추가하는 것을 테스트하십시오.

결론

이 이중 EMA 및 MACD 거래 전략은 단기 회수 기회와 수익을 포착하는 것을 목표로합니다. 이중 확인으로 거래 타이밍의 정확성을 향상시키기 위해 EMA의 빠른 반응과 MACD의 추진력 변화 판단력을 완전히 활용합니다. 최적화 공간은 매개 변수 조정, 미끄러짐 제어, 보유 기간 등에 있습니다. 신중한 매개 변수 최적화는 좋은 수익을 가져올 수 있습니다.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=5
// strategy('Fast EMA above Slow EMA with MACD (by Coinrule)',
//          overlay=true,
//          initial_capital=1000,
//          process_orders_on_close=true,
//          default_qty_type=strategy.percent_of_equity,
//          default_qty_value=30,
//          commission_type=strategy.commission.percent,
//          commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0

// EMAs 
fastEMA = ta.ema(close, 8)
slowEMA = ta.ema(close, 26)
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.green)
//buyCondition1 = ta.crossover(fastEMA, slowEMA)
buyCondition1 = fastEMA > slowEMA


// DMI and MACD inputs and calculations
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)
buyCondition2 = ta.crossover(macd, macd_signal)


// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01

// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999
    

if (buyCondition1 and buyCondition2 and notInTrade and timePeriod)
    strategy.entry(id="Long", direction = strategy.long)

strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)


//if (sellCondition1 and sellCondition2 and notInTrade and timePeriod)
//strategy.close(id="Close", when = sellCondition1 or sellCondition2)

더 많은