이동평균선 교차, 상대강도지수, 거래량 가격추세, 잉글핑 패턴 전략

EMA RSI
생성 날짜: 2024-07-29 16:56:08 마지막으로 수정됨: 2024-07-29 16:56:08
복사: 2 클릭수: 635
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이동평균선 교차, 상대강도지수, 거래량 가격추세, 잉글핑 패턴 전략

개요

이 전략은 여러 가지 기술적 분석 도구를 결합한 통합 거래 시스템입니다. 이 전략은 지수 이동 평균 (EMA) 교차, 무작위 상대적으로 약한 지표 (Stochastic RSI), 교차 가격 관계 및 그래프 형태를 사용하여 거래 신호를 생성합니다. 이 전략의 핵심은 다차원적 시장 역동성을 분석하여 거래 의사 결정의 정확성과 신뢰성을 향상시키는 것입니다.

전략의 주요 구성 요소는 다음과 같습니다.

  1. 8과 20기 EMA 기반의 교차 시스템
  2. 거래량과 가격 관계를 이용한 트렌드 지표
  3. RSI는 트렌드 반전을 확인하기 위해 사용된다.
  4. 콩나물, 고기, 곰, 고슴도치
  5. 형태인식 시스템을 삼켜버렸습니다.

이러한 요소들을 통합함으로써, 전략은 시장 추세의 전환점을 포착하는 것을 목표로 하며, 동시에 스톱로스 및 리익체크 메커니즘을 설정하여 위험을 관리한다.

전략 원칙

  1. EMA 교차 시스템:

    • 8의 EMA가 20의 EMA를 통과하면 구매 신호가 생성됩니다.
    • 8의 EMA 아래에서 20의 EMA를 통과할 때, 판매 신호가 생성됩니다.
  2. 거래량 가격 추세 계산:

    • 거래량과 종결 가격의 비율을 통해 시장의 정서를 측정합니다.
    • 소와 곰의 탈선 가능성을 감지하기 위한 도구
  3. 무작위 RSI:

    • 잠재적인 트렌드 전환점을 확인하기 위해 14 개의 무작위 RSI를 계산합니다.
  4. “이봐, 이봐, 이봐”

    • 최근 하위/고위와 거래량 가격 추세 비교
    • 가격 혁신이 낮지만 거래량 가격 추세가 상승하면 황소 시장에서 벗어나는 것으로 간주됩니다.
    • 가격 혁신이 높지만 거래량 가격 추세가 하락할 때, 이는 불시장에서 벗어난 것으로 간주됩니다.
  5. 이 사진의 제목은 “Swallowing Form Recognition”입니다.

    • 불시장과 곰시장의 양상을 알아보세요.
    • 스톱로스 포인트와 수익이 종료되는 지점을 설정하는 데 사용됩니다.
  6. 거래 로직:

    • 동전시장과 EMA 금포에서 구매하는 경우
    • 베어 마켓이 퇴각하거나 EMA 사각지대에 팔리는 경우
    • 첫 번째 반전 삼킨 모드에서 손실을 중지합니다.
    • 두 번째 반전 포식 형태가 나타났을 때 매매가 안되면서 수익이 올랐다.

전략적 이점

  1. 다차원 분석: 기술 지표, 거래량 분석 및 그래프 형태를 결합하여 더 포괄적인 시장 관점을 제공합니다.

  2. 트렌드 추적 및 역전 경고: EMA 교차 시스템은 주요 트렌드를 포착하는 데 도움이 되며, 탐지 및 흡수 형태에서 벗어나는 것은 잠재적인 역전을 미리 경고할 수 있다.

  3. 위험 관리: 동적 중지 및 포용 모드 설정을 통해 이익을 얻을 수 있습니다. 이는 위험을 통제하고 이익을 잠금하는 데 도움이됩니다.

  4. 유연성: 전략은 시장의 다른 조건에 적응할 수 있으며, 동향 시장에서 수익을 올릴 수 있고, 동향 시장에서 역전 기회를 잡을 수 있다.

  5. 자동화: 전략은 프로그래밍 할 수 있고, 인간의 감정적 간섭을 줄이고, 실행의 효율성을 높인다.

  6. 객관성: 명확한 기술 지표와 그래픽 패턴을 바탕으로 주관적 판단으로 인한 편차를 줄인다.

전략적 위험

  1. 과도한 거래: 불안한 시장에서, 자주 발생하는 EMA 교차는 과도한 거래로 이어지고 거래 비용을 증가시킬 수 있다.

  2. 지연성: EMA와 RSI와 같은 지표는 본질적으로 지연된 지표이며, 빠르게 변화하는 시장에서 중요한 전환점을 놓칠 수 있습니다.

  3. 가짜 돌파: 가로 디스크 정리 단계에서, 짧은 시간 동안의 가짜 돌파가 발생할 수 있으며, 이는 잘못된 신호로 이어집니다.

  4. 변수 민감성: 전략 효과는 EMA 주기, RSI 변수 등의 설정에 크게 의존하며, 다른 시장에는 다른 최적화가 필요할 수 있다.

  5. 시장 환경 의존성: 강한 추세 시장에서 충격 시장보다 우수한 성과를 낼 수 있으며, 시장 사이클을 고려해야합니다.

  6. 신호 충돌: 서로 다른 지표가 서로 다른 신호를 생성할 수 있으므로 명확한 우선 순위 규칙이 필요합니다.

전략 최적화 방향

  1. 동적 변수 조정:

    • 시장의 변동에 따라 EMA 주기와 RSI 파라미터를 자동으로 조정합니다.
    • 구현: ATR (Average True Rate) 지표를 사용하여 변동률을 측정하고 이에 따라 동적으로 변수를 조정합니다.
  2. 시장 감정 지표에 참여하세요:

    • VIX 또는 PUT/CALL 비율과 같은 감정 지표를 도입합니다.
    • 목적: 극단적 인 시장 정서에 의해 필터링 될 수있는 가짜 신호
  3. 최적화된 손절매 메커니즘:

    • ATR 배수 스톱처럼 추적 스톱을 사용하는 것을 고려하십시오.
    • 장점: 시장의 변동에 더 잘 적응하여 수익을 보호할 수 있습니다.
  4. 시간 프레임 분석을 소개합니다.

    • 여러 시간 프레임에 걸쳐 신호를 검증
    • 이점: 가짜 신호를 줄이고 거래의 신뢰성을 높인다.
  5. 기본 데이터를 통합합니다.

    • 경제 달력 이벤트, 분기 보고서 등과 같은 기본 요소를 고려하십시오.
    • 목적: 중요한 사건의 전과 후의 전략적 감수성을 조정하여 불필요한 위험을 피하는 것
  6. 기계학습 최적화:

    • 기계 학습 알고리즘을 사용하여 파라미터 선택 및 신호 생성을 최적화
    • 잠재력: 시장의 변화에 적응하여 전략의 안정성과 수익성을 높일 수 있습니다.

요약하다

“평평선 교차, 상대적으로 강한 지표, 거래량 가격 추세, 포화형태 전략”은 여러 가지 기술 분석 도구와 위험 관리 기술을 결합한 포괄적이고 복잡한 거래 시스템입니다. 이 전략은 EMA 교차, 무작위 RSI, 거래량 가격 관계 분석 및 도표 형식 식별을 통합하여 전체 시장 분석 프레임 워크를 제공하기위한 것입니다.

전략의 주요 장점은 다차원 분석 능력과 유연한 위험 관리 장치에 있다. 트렌드 추적과 역전 경고 시스템을 결합하여 다양한 시장 환경에서 거래 기회를 찾을 수 있다. 동시에, 포식 형태에 기반한 동적 중단 및 수익 메커니즘은 자금 관리에 대한 체계화된 방법을 제공합니다.

그러나 이 전략은 과도한 거래, 변수 민감성 및 시장 환경 의존성 등과 같은 잠재적인 위험에 직면해 있습니다. 이러한 도전에 대응하기 위해, 우리는 동적 변수 조정, 시장 감정 지표의 도입, 손해 방지 장치의 최적화, 다중 시간 프레임 분석, 기본 데이터의 통합 및 기계 학습 기술을 적용하는 등 몇 가지 최적화 방향을 제시했습니다.

전체적으로 볼 때, 이것은 복잡하고 포괄적인 거래 전략이며, 강력한 적응력과 잠재력을 가지고 있다. 지속적인 최적화와 재검토를 통해 강력한 거래 도구가 될 가능성이 있다. 그러나, 사용자는 전략의 원리와 한계를 충분히 이해하고 실제 거래에 신중하게 적용해야 한다.

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

//@version=5
strategy("Combined Strategy with Custom Signals and Reversal Patterns", overlay=true)

// Extract data
dataClose = close
dataVolume = volume
dataHigh = high
dataLow = low

// Calculate Volume-Price Relation
volume_price_trend = dataVolume / dataClose

// Calculate Stochastic RSI
stoch_rsi = ta.stoch(dataClose, dataClose, dataClose, 14)

// Calculate EMA
ema_12 = ta.ema(dataClose, 8)
ema_26 = ta.ema(dataClose, 20)

// Bullish Divergence
bullish_divergence = ((ta.lowest(dataLow, 6) < ta.lowest(dataLow, 7)) and (volume_price_trend > ta.lowest(volume_price_trend, 6)))

// Bearish Divergence
bearish_divergence = ((ta.highest(dataHigh, 6) > ta.highest(dataHigh, 7)) and (volume_price_trend < ta.highest(volume_price_trend, 6)))

// Check for buy signals
buy_signal = (bullish_divergence or ((ema_12 > ema_26) and (ema_12[1] <= ema_26[1]))) // Previous crossover point

// Check for sell signals
sell_signal = (bearish_divergence or ((ema_12 < ema_26) and (ema_12[1] >= ema_26[1]))) // Previous crossover point

// Plot custom signals
plotshape(buy_signal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(sell_signal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")

// Optional: Add alerts for buy and sell signals
alertcondition(buy_signal, title="Buy Signal Alert", message="Buy signal detected!")
alertcondition(sell_signal, title="Sell Signal Alert", message="Sell signal detected!")

// Define patterns for Reversal Candlestick Patterns
isBullishEngulfing() =>
    bullishEngulfing = close > open and close[1] < open[1] and close > open[1] and open < close[1]
    bullishEngulfing

isBearishEngulfing() =>
    bearishEngulfing = close < open and close[1] > open[1] and close < open[1] and open > close[1]
    bearishEngulfing

// Calculate patterns
bullishEngulfing = isBullishEngulfing()
bearishEngulfing = isBearishEngulfing()

// Plot reversal signals
plotshape(bullishEngulfing, title="Bullish Engulfing", location=location.belowbar, color=color.green, style=shape.labelup, text="Bull Eng")
plotshape(bearishEngulfing, title="Bearish Engulfing", location=location.abovebar, color=color.red, style=shape.labeldown, text="Bear Eng")

// Variables to count occurrences of engulfing patterns
var int bullishEngulfingCount = 0
var int bearishEngulfingCount = 0

// Strategy logic for combined signals and patterns
if (buy_signal)
    strategy.entry("Long", strategy.long)
if (sell_signal)
    strategy.entry("Short", strategy.short)

// Logic to increment the engulfing pattern counts
if (bullishEngulfing)
    bullishEngulfingCount += 1
else if (not bullishEngulfing)
    bullishEngulfingCount := 0

if (bearishEngulfing)
    bearishEngulfingCount += 1
else if (not bearishEngulfing)
    bearishEngulfingCount := 0

// Exit conditions based on engulfing patterns
if (bearishEngulfing and strategy.position_size > 0)
    strategy.close("Long")
if (bullishEngulfing and strategy.position_size < 0)
    strategy.close("Short")

// Exit conditions for the second occurrence of engulfing patterns for taking profit
if (bullishEngulfingCount == 2 and strategy.position_size < 0)
    strategy.close("Short")
if (bearishEngulfingCount == 2 and strategy.position_size > 0)
    strategy.close("Long")