높고 낮은 TEMA 평균의 오스실레이션 전략

저자:차오장, 날짜: 2023-11-15 17:49:52
태그:

img

전반적인 설명

이 전략은 비트코인의 하락 추세를 파악하기 위해 TEMA, VWMACD 및 HMA 지표를 사용합니다. 그것의 주요 논리는 VWMACD가 0 이하로 넘어가면 가격이 HMA보다 낮고 빠른 TEMA가 느린 TEMA보다 낮을 때 짧은 지점에 진입하는 것입니다. VWMACD가 0 이상으로 넘어가면 가격이 HMA보다 높거나 빠른 TEMA가 느린 TEMA보다 높을 때 지위를 종료합니다.

원칙

먼저 VWMACD를 계산하고 (정상적인 MACD와 유일한 차이점은 이동 평균을 계산하는 방법) 히스토그램으로 그래프화합니다. 그 다음 트렌드 필터로 HMA를 추가합니다. 그 후 빠른 TEMA (5 기간) 와 느린 TEMA (8 기간) 을 만들고 추가하고 그 사이의 차이를 계산하여 0 주위를 그래프화합니다. 이것은 단위로 가는 핵심 결정입니다.

특정 입력 규칙은: VWMACD가 0보다 낮을 때, 가격은 HMA보다 낮고 빠른 TEMA는 느린 TEMA보다 낮습니다.

특정 출구 규칙은: VWMACD가 0을 넘으면 가격이 HMA를 넘거나 빠른 TEMA가 느린 TEMA를 넘으면 닫습니다.

이점 분석

  • 세가지 지표의 조합을 사용해서 거래 신호의 신뢰성을 높여줍니다.
  • VWMACD는 오차를 식별하고 정확한 트렌드 판단을 제공할 수 있습니다.
  • HMA는 트렌드 필터로 채워져 노이즈 간섭을 피합니다.
  • 빠르고 느린 TEMA 조합은 단기적인 전환점을 잡습니다.
  • 높은 주파수 거래에 적합한 단기 매개 변수를 채택하고 단기 하락 추세를 감지합니다.

위험 분석

  • 여러 지표 조합, 복잡한 매개 변수 조정이 필요합니다.
  • HMA 필터가 있긴 하지만, 여전히 다양한 시장에서 가짜 브레이크를 방지해야 합니다.
  • 시장 소음 간섭에 취약한 짧은 기간, 잘못된 신호가 발생할 수 있습니다.
  • 예상치 못한 큰 손실을 방지하기 위해 엄격한 스톱 손실이 필요합니다.
  • 거래 비용 통제에 집중해야 합니다. 높은 주파수 거래는 마찰에 의해 쉽게 손상됩니다.

최적화 방향

  • 다양한 매개 변수 조합을 테스트하여 최적의 매개 변수를 찾을 수 있습니다.
  • RSI, KD와 같은 다른 지표를 추가할 수 있습니다.
  • 다른 시장 조건에 따라 적응적인 매개 변수를 사용할 수 있습니다.
  • 손해를 막는 전략을 최적화할 수 있습니다.
  • 부적절한 추진력을 피하기 위해 부피 표시기와 결합 할 수 있습니다.

결론

이 전략은 VWMACD, HMA 및 빠른 / 느린 TEMA의 조합을 사용하여 비트코인의 단기 하락 추세를 파악합니다. 이 전략의 장점은 비교적 신뢰할 수있는 신호 및 고주파 거래에 적합합니다. 그러나 복잡한 매개 변수 조정, 소음 간섭에 취약한 위험도 있습니다. 매개 변수 컴보를 더 최적화하고 보조 지표를 추가하면 전략을 더 안정적이고 신뢰할 수 있습니다. 전반적으로 여러 지표 확인 및 단기 매개 변수를 활용함으로써이 전략은 Bitcoin의 단기 하락 추세를 비교적 정확하게 판단 할 수 있으며 효과적인 고주파 단기 전략입니다.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="TEMA_HMA_VWMACD short strategy", shorttitle="Short strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.018, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(9999,1,1,0,0)
_testPeriod() =>
    iff(time >= startP and time <= end, true, false)
    

slow = input(13, "Short period")
fast = input(21, "Long period")
signal = input(5, "Smoothing period")

Fast = ema( volume * close, fast ) / ema( volume, fast ) 
Slow = ema( volume * close, slow ) / ema( volume, slow ) 
Macd = Slow - Fast 
Signal = ema(Macd, signal) 
Hist=Macd-Signal
plot(Hist, color=color.silver, linewidth=1, style=plot.style_histogram)
plot(0, color=color.red)

length = input(400, minval=1, title = "HMA")
hullma = wma(2*wma(close, length/2)-wma(close, length), floor(sqrt(length)))

tema_length_1 = input(5, "Fast moving TEMA")
tema_length_2 = input(8, "Slow moving TEMA")


tema(sec, length)=>
    tema1= ema(sec, length)
    tema2= ema(tema1, length)
    tema3= ema(tema2, length)
    tema = 3*tema1-3*tema2+tema3

tema1 = tema(hlc3, tema_length_1)
tema2 = tema(hlc3, tema_length_2)

threshold  = 0
tm = tema1 - tema2
plot_fast = plot(tm, color = tm > 0 ? color.green : color.red)
plot(threshold, color=color.purple)

up =  crossover(tm, 0) 
down = crossunder(tm, 0)

longCondition =  (Hist < 0) and hullma > close and (tema1 < tema2)  and _testPeriod() 
strategy.entry('BUY', strategy.short, when=longCondition)  
 
shortCondition =  (Hist > 0) or hullma < close or up
strategy.close('BUY', when=shortCondition)


// Take profit  
tp = input(1, type=input.float, title='Take Profit (%)')  
sl = input(4, type=input.float, title='Stop Loss (%)')  
strategy.exit('XLong', from_entry='BUY', profit=(close * (tp/100) * (1/syminfo.mintick)), loss=(close * (sl/100) * (1/syminfo.mintick)))

더 많은