시간과 공간에 최적화된 다중 시간 프레임 MACD 전략


생성 날짜: 2024-01-29 10:15:34 마지막으로 수정됨: 2024-01-29 10:15:34
복사: 1 클릭수: 683
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

시간과 공간에 최적화된 다중 시간 프레임 MACD 전략

개요

이 전략은 MACD 지표의 파라미터를 최적화하여 이동 평균, 가격 액션 및 특정 거래 시간을 결합하여 높은 승률을 달성합니다.

전략 원칙

  1. 3개의 K선으로 가격 트렌드를 판단한다. 마지막 3개의 K선 닫기 가격이 오픈 가격보다 높으면 상승 트렌드로 판단한다. 마지막 3개의 K선 닫기 가격이 오픈 가격보다 낮으면 하락 트렌드로 판단한다.

  2. 빠른 선, 느린 선 및 MACD 차이를 계산하십시오. 빠른 선의 변수는 12, 느린 선의 변수는 26, 신호 선의 변수는 9 였습니다.

  3. 거래 시간은 매일 09:00-09:15로 설정되어 있습니다. 이 시간 동안, 다음 조건을 충족하면 진입할 수 있습니다.

    • 상승 추세와 동시에 MACD 차이는 0으로 증가합니다.
    • 하향 트렌드 동시에 MACD 차이는 0을 통과 할 때 공백
  4. 스톱은 0.3점, 스톱로스는 100점으로 설정된다.

  5. 21시부터 21시 15분까지는 모두 매진이 없습니다.

전략적 이점

  1. 다중 시간 프레임의 지표 포트폴리오를 사용하여 트렌드 방향을 종합적으로 판단하여 의사 결정의 정확성을 향상시킵니다.

  2. 거래 시기를 최적화하여 시장의 격렬한 변동성을 피하고 불필요한 손실 위험을 줄입니다.

  3. 합리적인 스톱 스톱 손실 비율을 설정하여 수익을 최대한 고정하고 손실을 막습니다.

  4. 전체적으로, 이 전략은 높은 승률을 가지고 있으며, 짧은 라인에서 자주 거래하는 것이 좋습니다.

전략적 위험

  1. 전략 거래 시간은 고정되어 있고, 적시에 현장에 들어가지 못하면 거래 기회를 놓칠 수 있다.

  2. MACD 지표는 오해의 소지가 있으며, 명확한 상하 추세를 판단할 수 없는 경우에는 신중하게 조작해야 한다.

  3. 스톱 스톱 손실 점수가 부합적으로 설정되어 수익 손실 비율이 불균형될 수 있으며, 다른 품종에 따라 변수를 조정해야 한다.

  4. 전체적으로 전략적 위험은 작지만, 높은 레버리지의 경우, 너무 큰 포지션은 큰 손실을 초래할 수 있다.

전략 최적화 방향

  1. 다른 지표와 결합하여 트렌드를 판단하여 MACD에서 잘못된 신호를 발생하지 않도록 할 수 있다. 예를 들어, 부린 라인, RSI와 같은 지표와 결합하여 조합하여 사용한다.

  2. 스티프 스톱 손실 비율을 최적화 할 수 있으며, 역 측정 데이터를 통해 최적의 파라미터를 계산한다.

  3. 전략이 적용되는 거래 품종을 확장할 수 있고, 다른 품종의 변수 조정 효과를 평가할 수 있다.

  4. 기계 학습 알고리즘을 도입하여 다양한 시장 상황에 따라 최적의 매개 변수를 선택하여 동적으로 조정할 수 있습니다.

요약하다

이 전략은 전반적으로 초보자 거래자에게 매우 적합하며, 전략 아이디어는 명확하고, 변수 최적화 공간이 넓으며, 위험은 제어할 수 있다. 포지션 개시 시간을 맞춤화하고 적당하게 손실 비율을 설정함으로써 높은 수익률을 얻을 수 있다. 후속적으로 더 최적화하여 전략 변수 동적으로 조정하여 더 복잡한 시장 환경에 적응할 수 있다.

전략 소스 코드
/*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/
// © exlux99

//@version=4
strategy("Very high win rate strategy", overlay=true)


//

fast_length =12
slow_length= 26
src = close
signal_length = 9
sma_source = false
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

//ma

len=10
srca = input(close, title="Source")
out = hma(srca, len)

fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true


timeinrange(res, sess) => time(res, sess) != 0

// = input('0900-0915', type=input.session, title="My Defined Hours")
myspecifictradingtimes = '0900-0915'
exittime = '2100-2115'

optionmacd=true


entrytime = time(timeframe.period, myspecifictradingtimes) != 0
exit = time(timeframe.period, exittime) != 0     

if(time_cond and optionmacd )
    if(close > open and close[1] > open[1] and close[2] > open[2] and entrytime  and crossover(hist,0))
        strategy.entry("long",1)
    if(close< open and close[1] < open[1] and close[2] < open[2] and entrytime and crossunder(hist,0))
        strategy.entry("short",0)      


tp = input(0.0003, title="tp")
//tp = 0.0003
sl = input(1.0 , title="sl")
//sl = 1.0
strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong")
strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")