낮은 가격에 매수하고 높은 가격에 매도하는 모멘텀 트레이딩 전략


생성 날짜: 2024-01-18 15:17:11 마지막으로 수정됨: 2024-01-18 15:17:11
복사: 0 클릭수: 628
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

낮은 가격에 매수하고 높은 가격에 매도하는 모멘텀 트레이딩 전략

개요

이 전략은 EMA 평균선, MACD 지표 및 일일 상승을 계산하여 시장의 돌파 신호를 종합적으로 판단하여 낮은 가격과 높은 가격의 동력 거래 전략을 구현합니다.

전략 원칙

빠른 EMA 라인이 느린 EMA 라인을 통과할 때, 시장이 상승 추세로 간주되어 구매 신호를 생성합니다. MACD 지표의 이차 값이 0 축을 통과할 때, 구매 신호를 생성하여 전략을 실현합니다.

또한, 만약 하루의 종식 가격이 개시 가격보다 10% 이상 상승한다면, 구매 신호가 발생하여 시장의 돌파구를 추구하고 있다.

포지션을 개시한 후, 가격이 10% 이상 떨어지면 상쇄; 수익이 45%에 달하면 상쇄.

우위 분석

이것은 전형적인 트렌드 추적 전략으로, 시장의 중간에 파격적인 상승세를 포착할 수 있으며, 수익 잠재력이 크다. 구체적인 장점은 다음과 같다:

  1. EMA 평균선을 사용하여 트렌드 판단을 수행하여 흔들리는 시장에서 잘못된 입장을 피합니다.
  2. MACD 지표는 구매 신호를 더 안정적으로 보장합니다.
  3. 한일상승 조건은 시장의 폭발점을 잡을 수 있습니다.
  4. 위험 조절을 위한 상쇄장치 설정이 합리적입니다.

위험 분석

이 전략은 합리적으로 설계되었지만, 위험 요소가 있습니다.

  1. 해킹 신호 판단이 잘못되면 공중 손실이 발생할 수 있습니다.
  2. 시장이 멈춰서 반발하면 잘못된 신호가 발생하기도 합니다.
  3. 스톱포인트 설정이 너무 커서 손실 위험이 증가합니다.
  4. 이 사건 이후에도 충분히 뒷받침되지 않는다면, 그 사건은 막을 수 없을 것이다.

위와 같은 위험을 줄이기 위해, 이동 중지 전략을 최적화하거나, 거래량과 같은 다른 지표와 함께 신호 필터링을 고려할 수 있습니다.

최적화 방향

이 전략에는 더 많은 최적화 가능성이 있습니다:

  1. 거래량 지표를 늘리고, 트렌드를 뒷받침할 수 있는 충분한 거래량을 확보한다.
  2. MACD 지표 매개 변수를 최적화하여 지표 감수성을 향상시킵니다.
  3. 다른 EMA 주기 변수 조합을 테스트합니다.
  4. 자율적 제지장치의 증대
  5. 더 효율적인 현금 관리를 위한 정지점 최적화

매개 변수 조정, 지표 조합과 같은 방법을 더 개선하면 전략의 안정성과 수익성을 크게 향상시킬 수 있습니다.

요약하다

이 전략은 전체적으로, 간단한 실용, 수익 잠재력이 큰 특징을 가지고 있다. 시장의 돌파점을 판단하여, 시장의 상승 추세를 효과적으로 잡을 수 있으며, 회수 제어도 상대적으로 합리적이다. 후속 전략 최적화에서, 파라미터 조정, 손해 차단 설계의 개선을 계속 추진하여, 장기적으로 적용할 가치가 있는 정량 거래 전략으로 만든다.

전략 소스 코드
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Alt Coins", overlay=true)

//Simple Alt Coin Trading Strategy//
// by @ShanghaiCrypto //

////EMA////
fastLength = input(5)
slowLength = input(12)
baseLength = input(50)
price = close

emafast = ema(price, fastLength)
emaslow = ema(price, slowLength)
emabase = ema(price, baseLength)

///MACD////
MACDLength = input(9)
MACDfast = input(12)
MACDslow = input(26)
MACD = ema(close, MACDfast) - ema(close, MACDslow)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

////PUMP////
OneCandleIncrease = input(10, title='Gain %')
pump = OneCandleIncrease/100

////Profit Capture and Stop Loss//////
stop = input(10.0, title='Stop Loss %', type=float)/100
profit = input(45.0, title='Profit %', type=float)/100
stop_level = strategy.position_avg_price * (1 - stop)
take_level = strategy.position_avg_price * (1 + profit)

////Entries/////
if crossover(emafast, emaslow)
    strategy.entry("Cross", strategy.long, comment="BUY")

if (crossover(delta, 0))
    strategy.entry("MACD", strategy.long, comment="BUY")
    
if close > (open + open*pump)
    strategy.entry("Pump", strategy.long, comment="BUY")

/////Exits/////
strategy.exit("SELL","Cross", stop=stop_level, limit=take_level)
strategy.exit("SELL","MACD", stop=stop_level, limit=take_level)
strategy.exit("SELL","Pump", stop=stop_level, limit=take_level)

////Plots////
plot(emafast, color=green)
plot(emaslow, color=red)
plot(emabase, color=yellow)
plot(take_level, color=blue)
plot(stop_level, color=orange)