동력 변동 효과적 수익 전략

저자:차오장, 날짜: 2023-11-02 15:02:05
태그:

img

전반적인 설명

모멘텀 스윙 효과적 수익 전략 (Momentum Swing Effective Profit Strategy) 은 스윙 트레이딩 원칙과 모멘텀 지표를 통합하여 중장기 금융 시장에서 수익 기회를 포착하기 위해 설계된 양적 거래 전략이다. 이 전략은 이동 평균, 크로스오버 신호 및 볼륨 분석을 포함한 기술적 지표의 조합을 사용하여 구매 및 판매 신호를 생성합니다. 목표는 시장 추세를 파악하고 수익을 위해 가격 모멘텀을 활용하는 것입니다.

전략 논리

구매 신호는 A1, A2, A3, XG 및 주간 슬로프를 포함한 여러 요인에 의해 결정됩니다. 구체적으로:

A1 조건: 특정 가격 관계를 확인하고, 가장 높은 가격과 폐쇄 가격의 비율이 1.03 미만인 것을 확인하고, 가장 낮은 가격과 오픈 가격의 비율이 1.03 미만이고, 가장 높은 가격과 이전 폐쇄 가격의 비율이 1.06 미만인 것을 확인합니다. 이 조건은 잠재적 인 상승 동력을 나타내는 특정 패턴을 찾습니다.

A2 조건: 종료 가격과 관련된 가격 관계를 확인하고 종료 가격과 개시 가격의 비율이 1.05보다 높거나 종료 가격과 이전 종료 가격의 비율이 1.05보다 높다는 것을 확인합니다. 이 조건은 상승 가격 움직임과 동력의 징후를 찾습니다.

A3 조건: 현재 부피가 지난 60 기간 동안 가장 높은 부피를 넘어서는지 확인하는 양에 초점을 맞추고 있습니다. 이 조건은 구매 관심의 증가를 확인하고 잠재적인 상승 가격 움직임의 강도를 확인하는 것을 목표로합니다.

XG 조건: A1 및 A2 조건을 결합하고 현재와 이전 바에 모두 해당하는지 확인합니다. 또한 같은 비율의 9 기간 SMA보다 높은 5 기간 EMA 교차에 대한 종료 가격의 비율을 확인합니다. 이 조건은 여러 요인이 정렬 될 때 잠재적 인 구매 신호를 식별하는 데 도움이되며 강한 상승 동력과 잠재적 인 입점 지점을 나타냅니다.

주간 트렌드 요인: 주간 시간 프레임에서 50 기간 SMA의 기울기를 계산합니다. 기울기가 긍정적 인지 확인하여 주간 기준으로 전반적인 상승 추세를 나타냅니다. 이 조건은 주가가 상승 추세에 있음을 추가적으로 확인합니다.

이 모든 조건이 충족되면 구매 조건이 발생하여 긴 포지션에 들어갈 수 있는 유리한 시간을 나타냅니다.

판매 조건은 전략에서 비교적 간단합니다.

판매 신호: 판매 조건은 종료 가격이 10 기간 EMA 이하로 넘어가는지 확인합니다. 이 조건이 충족되면 상승 가격 동력의 잠재적 인 반전 또는 약화를 나타냅니다. 판매 신호가 생성됩니다.

이점 분석

  • 다양한 전략 아이디어를 통합하는 스윙 거래와 추진력 지표를 결합합니다.
  • 높은 확률의 거래 기회를 식별하기 위해 여러 가지 기술 지표의 조합을 최적화합니다.
  • 리스크 관리를 위해 포지션 크기와 스톱 로스 기술을 사용합니다.
  • 좋은 백테스트 결과, 상당한 순이익과 승률

위험 분석

  • 황소 시장에서 더 효과적이지만, 곰 시장에 적응할 수 없습니다.
  • 가짜 브레이크업은 잘못된 거래로 이어질 수 있습니다.
  • 부적절한 위치 크기와 중지 손실 설정은 손실을 증폭시킬 수 있습니다.
  • 매개 변수들은 다른 시장 환경에 적절하게 조정되어야 합니다.

최적화

  • 신호 품질을 향상시키기 위해 필터링 지표를 추가합니다.
  • 후속 스톱 손실과 같은 스톱 손실 방법을 최적화하십시오.
  • 위치 크기를 동적으로 조정
  • 매개 변수 최적화를 개선하기 위해 기계 학습을 결합

결론

모멘텀 스윙 효과적 수익 전략은 매개 변수 최적화 및 조건 통합을 통해 스윙 거래 원칙과 모멘텀 지표를 통합하여 백테스트에서 상당한 수익을 달성합니다. 중장기 트렌드를 잘 파악하지만 트렌드 역전 위험을 인식해야합니다. 추가 최적화는 안정성과 라이브 성능을 향상시킬 수 있습니다.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
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/
// © fzj20020403
//@version=5
strategy("Slight Swing Momentum Strategy.", overlay=true)

// Position Status Definition
var inPosition = false

// Moving Average Definition
ma60 = ta.sma(close, 60)

// A1 Condition Definition
A1 = high / close < 1.03 and open / low < 1.03 and high / close[1] > 1.06

// A2 Condition Definition
A2 = close / open > 1.05 or close / close[1] > 1.05

// A3 Condition Definition
highestVol = ta.highest(volume, 60)
A3 = ta.crossover(volume, highestVol[1])

// B1 Condition Definition
ema5 = ta.ema(close, 5)
B1 = close / ema5

// XG Condition Definition
A1andA2 = (A1 and A2) and (A1[1] and A2[1])
XG = ta.crossover(B1, ta.sma(B1, 9))

// Weekly Trend Factor Definition
weeklyMa = ta.sma(close, 50)
weeklySlope = (weeklyMa - weeklyMa[4]) / 4 > 0

// Buy Signal using XG Condition
buySignal = A1 and close > ma60 or A2 and A3 and XG and close > ma60 and weeklySlope 

// Sell Signal Condition
sellSignal = close < ta.ema(close, 10)

// Buy and Sell Conditions
buyCondition = buySignal and not inPosition
sellCondition = sellSignal and inPosition

// Execute Buy and Sell Operations
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    inPosition := true
if (sellCondition)
    strategy.close("Buy")
    inPosition := false

// Stop Loss and Take Profit Levels
stopLoss = strategy.position_avg_price * 0.5
takeProfit = strategy.position_avg_price * 1.30

// Apply Stop Loss and Take Profit Levels
if inPosition
    strategy.exit("Long Stop Loss", "Buy", stop=stopLoss)
    strategy.exit("Long Take Profit", "Buy", limit=takeProfit)

// Plot Buy and Sell Signal Shapes
plotshape(buyCondition, style=shape.arrowdown, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellCondition, style=shape.arrowup, location=location.abovebar, color=color.red, size=size.small)

// EMA Variable Definition
ema = ta.ema(close, 5)

// Plot Indicator Line
plot(ema, color=color.green, title="EMA")


더 많은