EMA 풀백 기반 풀백 숏 전략


생성 날짜: 2024-01-18 11:02:17 마지막으로 수정됨: 2024-01-18 11:02:17
복사: 0 클릭수: 709
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

EMA 풀백 기반 풀백 숏 전략

개요

이 전략은 50주기의 EMA 평균선과 K선의 종결 가격을 판단하기 위해, 가격이 EMA 평균선을 아래로 돌파할 때 공백을 만들고, 가격이 2-3개의 K선으로 되돌릴 때까지 기다립니다. 만약 삼키기 형태의 K선이 나타나면, 그 K선 종결 후에 포지션을 공백하고, 단선 작업을 수행합니다.

전략 원칙

먼저 50주기 EMA의 평균선을 계산하고, 그 다음에 가격이 상향으로 EMA의 평균선을 돌파했는지 판단하고, 돌파하면 공허 충동으로 기록한다. 그 다음 K선으로 상향 회귀가 발생했는지 판단하고, 만약 회귀가 전 K선의 최저 가격을 초과하면 회귀 신호로 기록한다. 회귀 후, 그 다음 1-2 K선으로 토너먼트 형태가 형성되었는지 판단하고, 토너먼트가 형성되면 토너먼트 신호로 기록한다. 동시에 공허 충동, 토너먼트 회귀 및 토너먼트 3 조건을 충족하면, 그 토너먼트 K선으로 종결한 후 포장을 공허하고, 단선 연산을 한다.

전략은 50주기 EMA 평균선을 그리며, 공백 신호가 발송될 때, K선 아래에 아래로 빨간 삼각형 표시를 그리며. 동시에 스톱로스를 주고, 빨간색의 스톱 라인을 그리는 것이다.

우위 분석

이 전략은 트렌드 판단과 형태 특성을 결합하여 트렌드 반전의 기회를 효과적으로 포착할 수 있다. 우선 EMA를 사용하여 트렌드 방향을 판단하고, 후 회전 과정에서 삼키기 형태를 사용하여 신호를 발산하여 가짜 돌파가 혼란스럽지 않도록 한다.

위험 분석

이 전략은 주로 EMA가 판단하는 트렌드 방향에 의존하며, 급격한 돌파구가 발생하면 잘못된 판단이 발생할 수 있다. 삼키기 형태 판단에는 어느 정도 주관성이 있으며, 수량과 깊이 모두 파라미터 최적화가 필요하다.

EMA 파라미터, 회귀 K 라인 수, 흡수 K 라인 수와 같은 파라미터를 최적화하여 더 나은 전략 효과를 얻을 수 있습니다. 또한, 다른 지표와 결합하여 추세 판단 및 회귀 신호를 고려할 수 있습니다.

최적화 방향

  1. EMA 사이클 최적화: 더 많은 EMA 사이클, 예를 들어 30, 40, 또는 60 사이클을 테스트하여 최적의 파라미터를 찾을 수 있다.

  2. 회귀 K선 수 최적화: 2-5개의 다른 수를 테스트하여 최적의 회귀 신호를 찾는다.

  3. 흡수 K선 수 최적화: 1-3개의 다른 수를 테스트하여 최적의 흡수 신호를 찾는다.

  4. 정지배수 최적화: 0.5-2배의 ATR 정지를 테스트하여 최적의 정지 위치를 찾을 수 있다.

  5. MACD, KDJ 등과 같은 다른 지표 판단 신호를 추가하는 것을 고려하여 신호의 정확성을 향상하십시오.

  6. 다양한 종류의 테스트가 가능합니다. 예를 들어, 주식 지수, 원유, 귀금속 등이 적용 범위를 넓혀줍니다.

요약하다

이 전략은 먼저 EMA를 사용하여 트렌드 방향을 판단하고, 그 다음 회귀와 삼키는 형태를 결합하여 공백 신호를 발산합니다. 전형적인 트렌드 반전 전략입니다. 트렌드 판단과 형태 특성을 결합하여 반전 기회를 효과적으로 잡을 수 있습니다. 전략 매개 변수가 최적화되면 좋은 효과를 얻을 수 있습니다.

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

//@version=4
strategy(title="Linor Pullback Short Strategy", shorttitle="EMA Pullback", overlay=true)

// Define strategy parameters
ema_length = input(50, title="EMA Length")
pullback_candles = input(3, title="Number of Pullback Candles")
engulfing_candles = input(1, title="Number of Engulfing Candles")
stop_loss = input(1, title="Stop Loss (in ATR)")

// Calculate the EMA
ema = ema(close, ema_length)

// Define bearish impulse condition
bearish_impulse = crossover(close, ema)

// Define pullback condition
pullback_condition = false
for i = 1 to pullback_candles
    if close[i] > close[i - 1]
        pullback_condition := true
    else
        pullback_condition := false

// Define engulfing condition
engulfing_condition = false
for i = 1 to engulfing_candles
    if close[i] < open[i] and close[i-1] > open[i-1]
        engulfing_condition := true
    else
        engulfing_condition := false

// Define the entry condition
entry_condition = bearish_impulse and pullback_condition and engulfing_condition

// Plot the EMA on the chart
plot(ema, color=color.blue, title="50 EMA")

// Plot shapes on the chart to mark entry points
plotshape(entry_condition, style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small)

// Define and plot the stop loss level
atr_value = atr(14)
stop_loss_level = close + atr_value * stop_loss
plot(stop_loss_level, color=color.red, title="Stop Loss")

// Strategy orders
strategy.entry("Short", strategy.short, when=entry_condition)
strategy.exit("Stop Loss/Target", from_entry="Short", stop=stop_loss_level, when=strategy.position_size[1] > 0)

// Plot strategy performance on the chart