간단하고 효율적인 MACD 양적 거래 전략


생성 날짜: 2024-01-26 14:20:04 마지막으로 수정됨: 2024-01-26 14:20:04
복사: 0 클릭수: 622
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

간단하고 효율적인 MACD 양적 거래 전략

개요

이 전략은 1시간, 4시간, 1일 등과 같은 높은 시간 주기 거래에 적합한 암호화폐 시장에 특별히 설계된 간단한 고효율 MACD 양적 거래 전략이다. 이 전략은 MACD 지표를 사용하여 시장의 추세 방향을 판단하고 간단한 이동 평균과 결합하여 거래 신호를 생성한다. 이 전략의 가장 큰 장점은 단순하고 효율적이며 이해하기 쉽고 구현하기 쉽고 특히 암호화폐의 높은 변동성 시장에 적합하다.

전략 원칙

이 전략은 MACD 지표를 사용하여 시장의 추세를 판단하고 거래 신호를 생성한다. MACD는 빠른 선, 느린 선 및 MACD 기둥으로 구성되어 있다. 빠른 선은 단기 이동 평균이며 느린 선은 장기 이동 평균이다. 빠른 선이 느린 선을 통과하면 구매 신호가되고 빠른 선이 느린 선을 통과하면 판매 신호가 된다. MACD 기둥은 빠른 선과 느린 선의 차치이며 기둥은 공중 시장의 상승 추세에 있고 기둥은 공중 시장의 하락 추세에 있습니다.

우위 분석

이 전략은 매우 간단하고 효과적이며, 다음과 같은 장점이 있습니다.

  1. MACD를 사용하여 시장의 방향을 판단하는 것은 트렌드를 정확하게 판단할 수 있는 숙련된 신뢰할 수 있는 기술 분석 지표입니다.

  2. 간단한 이동 평균과 결합하여 신호 필터링을 함으로써 가짜 신호를 방지하고 신호 정확도를 향상시킬 수 있다.

  3. MACD의 효과는 특히 암호화폐의 고폭동 시장에 적용됩니다.

  4. 전략의 논리는 간단하고 명확하며, 이해하기 쉽고, 실행하기 쉽습니다.

  5. 더 높은 시간 주기로 운영할 수 있어 거래 빈도를 줄이고 거래 비용과 슬라이드 포인트 영향을 줄일 수 있다.

위험 분석

그러나 이 전략에는 다음과 같은 몇 가지 위험도 있습니다.

  1. 간단한 이동 평균을 신호 필터링으로 사용하여, 어떤 상황에서는 최적의 출전 시간을 놓칠 수 있습니다.

  2. 스톱 스톱 손실 전략을 사용하지 않으면, 계좌에 큰 단독 손실이 발생할 수 있습니다.

  3. 일부 지연 신호와 가짜 신호가 발생하여 불필요한 손실이 발생할 수 있습니다.

  4. 거래시간과 빈도가 수익에 미치는 영향은 고려하지 않습니다.

이러한 위험들은 이 전략을 더욱 개선하고 최적화해야 합니다.

최적화 방향

위와 같은 위험 분석을 통해, 이 전략은 다음과 같은 방향으로 더 개선될 수 있습니다.

  1. 다른 변수 설정과 다른 지표 조합을 시도하여 최적의 변수를 찾으십시오.

  2. 단편적 손실을 제한하는 스톱스톱스 전략의 증강;

  3. 입국 시점을 최적화하고, 신호 검증을 더 엄격하게 설정하여 신호 효과를 보장합니다.

  4. 거래시간과 거래 빈도가 전체 수익률에 미치는 영향을 고려하십시오.

이러한 방향의 최적화를 통해 전략의 안정성, 수익성 및 실전성을 크게 향상시킬 수 있습니다.

요약하다

전체적으로, 이것은 매우 실전 가치가있는 MACD 거래 전략이다. 그것은 간단하고 효율적이며, 구현하기 쉬운 것으로, 신속하게 거래량 거래에 입문하려는 사람들에게 적합하다. 또한 이 전략은 최적화 할 수있는 큰 공간이 있으며, 지속적인 최적화 테스트를 통해 장기적인 실전 운영에 적합한 안정적이고 효율적인 양적 전략으로 만들 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © SoftKill21

//@version=4
strategy("MACD crypto strategy", overlay=true)

// Getting inputs
//fast_length = input(title="Fast Length", type=input.integer, defval=12)
//slow_length = input(title="Slow Length", type=input.integer, defval=26)
//src = input(title="Source", type=input.source, defval=close)
//signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
//sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
//sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

fast_length = 12
slow_length = 26
src = input(title="Source", type=input.source, defval=close)
signal_length = 9
sma_source = true
sma_signal = false

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal



longcondition = hist > 0 
shortcondition = hist < 0 

//sl = input(0.5, title="SL")
//tp = input(0.1, title="tp")

strategy.entry("long",1,when=longcondition)
strategy.entry("short",0,when=shortcondition)

//strategy.exit("x_long", "long" ,loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick , alert_message = "closelong")
//strategy.entry("short",0, when= loss = close * sl / syminfo.mintick)

//strategy.exit("x_short", "short" , loss = close * sl / syminfo.mintick, profit  = close * tp / syminfo.mintick,alert_message = "closeshort")

// risk = input(2, type=input.float,title="Risk percentage of BALANCE")
// strategy.risk.max_intraday_loss(risk, strategy.percent_of_equity)