다중 시간 프레임 반전 확인 거래 전략

EMA highest Lowest
생성 날짜: 2024-05-11 17:38:35 마지막으로 수정됨: 2024-05-11 17:38:35
복사: 0 클릭수: 592
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 시간 프레임 반전 확인 거래 전략

개요

이 전략은 주로 최고 가격, 최저 가격 및 지수 이동 평균 (EMA) 을 사용하여 트렌드 반전을 확인하여 거래 신호를 생성합니다. 전략은 먼저 지정된 반전 기간의 최고 가격과 최저 가격을 계산하고, 현재 종결 가격이 최고 가격 대응 최저 가격보다 낮는지 판단합니다.

전략 원칙

  1. 지정된 재검토 기간 동안의 최고 가격 (find_highest) 과 최저 가격을 (find_lowest) 계산한다.
  2. 지정된 회귀 기간 동안의 매각 가격의 EMA를 계산한다.
  3. 회전 기간 동안의 각 K선을 거쳐, 최고 가격에 대응하는 최저 가격 ((dnRv), 그리고 최저 가격에 대응하는 최고 가격 ((upRv) 을 찾는다.
  4. 현재 종결 가격이 dNRv (상향 역전 확인) 이하인지, upRv (보이어 역전 확인) 이하인지 판단한다.
  5. 하락 역전 확인 신호 ((dnRv_signal) 가 발생하고 이전에 이 신호가 촉발되지 않은 경우, 공백 포지션 개방 신호가 발생한다.
  6. 만약 상자 반전 확인 신호 ((upRv_signal) 가 나타나고 이전에 이 신호가 촉발되지 않았다면, 더 많은 포지션을 열기 신호가 생성된다.

전략적 이점

  1. 역전 확인 신호는 트렌드 반전의 기회를 포착하여 전략의 잠재적인 수익을 높이는 데 도움이 됩니다.
  2. EMA의 사용으로, 전략은 다양한 시장 상황과 변동 주기에도 적응할 수 있다.
  3. 회귀 기간의 조정성은 전략에 유연성을 부여하여 다른 거래 품종과 주기에 따라 최적화 할 수 있습니다.

전략적 위험

  1. 반전 확인 신호가 나타난 후, 가격은 일방적인 추세행동이 아닌 반복적인 흔들림이 발생할 수 있으며, 전략이 빈번하게 포지션을 개시하고 포지션을 평화롭게 처리하여 거래 비용을 증가시킨다.
  2. 전략에는 명확한 중지 및 중지 장치가 없으며, 이는 단일 거래의 위험 을 지나치게 높게 만들 수 있습니다.
  3. 전략은 거래 품종의 특성과 시장 환경을 고려하지 않고, 경우에 따라서는 좋지 않은 성과를 낼 수 있습니다.

전략 최적화 방향

  1. 스톱로스 및 스톱스 메커니즘을 도입하여 단일 거래의 위험 문을 제어한다. ATR, 퍼센트 또는 고정 점수 등에 따라 동적 또는 정적 스톱스 수준을 설정할 수 있다.
  2. 다른 기술 지표 또는 RSI, MACD, 변동률과 같은 시장 환경 요소와 결합하여 역전 확인 신호의 신뢰성을 높이고 가짜 신호를 필터링하십시오.
  3. 다른 거래 품종과 주기에 대한 변수 최적화, 가장 적합한 회귀 기간과 EMA 주기, 전략의 적응성과 안정성을 향상하기 위해.
  4. 포지션 관리 및 위험 제어 장치를 도입하는 것을 고려하십시오. 예를 들어, 시장의 변동률이나 계좌의 순자치에 따라 포지션 크기를 조정하여 전반적인 위험을 제어하십시오.

요약하다

다중 시간 프레임 역전 확인 거래 전략은 최고 가격, 최저 가격 및 EMA를 통해 잠재적인 트렌드 역전 기회를 식별하고 그에 따른 포지션 개설 신호를 생성한다. 이 전략의 장점은 트렌드 역전을 포착 할 수 있다는 것입니다. 그러나 빈번한 거래 및 위험 제어 부족 문제가 있습니다.

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

//@version=5
strategy("Reversal Confimation Strategy", overlay=true)

// Indicator inputs
lookback = input.int(50, 'Lookback Period', minval=1, step=1)
downColor = input(color.red, 'Shape Color Down')
upColor = input(color.green, 'Shape Color Up')

// Indicator calculations
find_highest = ta.highest(high, lookback)
find_lowest = ta.lowest(low, lookback)
ema = ta.ema(close, lookback)

var dnRv = 0.0
var dnRv_trigger = false
var upRv = 0.0
var upRv_trigger = false

if high == find_highest
    dnRv_trigger := false
if low == find_lowest
    upRv_trigger := false

for i = 0 to lookback - 1
    if high[i] == find_highest
        dnRv := low[i]
for i = 0 to lookback - 1
    if low[i] == find_lowest
        upRv := high[i]

dnRv_signal = close < dnRv and dnRv_trigger == false 
upRv_signal = close > upRv and upRv_trigger == false

if dnRv_signal  
    dnRv_trigger := true
if upRv_signal  
    upRv_trigger := true

// Entry and exit conditions
if dnRv_signal
    strategy.entry("Sell", strategy.short)
if upRv_signal
    strategy.entry("Buy", strategy.long)

// Plotting
plotshape(dnRv_signal ? 1 : 0, style=shape.triangledown, location=location.abovebar, color=downColor, size=size.small)
plotshape(upRv_signal ? 1 : 0, style=shape.triangleup, location=location.belowbar, color=upColor, size=size.small)