이동평균에 기초한 고정 비율의 스톱 로스 및 영업 전략

저자:차오장, 날짜: 2023-12-18 11:30:39
태그:

img

전반적인 설명

이 전략은 이동평균을 사용하여 거래 신호를 생성하고 고정 비율의 스톱 로스를 설정하고 각 거래의 위험과 수익을 제어하기 위해 입시 가격에 따라 수익 수준을 취합니다.

전략 논리

이 전략은 우선 5일 지수 이동 평균 (EMA) 과 32일 EMA를 사용하여 트렌드 방향을 결정합니다. 단기 이동 평균이 장기 평균을 넘어서서 크로스 아웃에서 짧을 때 길게됩니다.

트레이드에 진입한 후, 전략은 사용자가 정의한 스톱 로스 비율과 영업률을 기반으로 각 트레이드에 대해 동적으로 스톱 로스를 설정하고 수익을 취합니다. 구체적으로, 긴 트레이드에서는 스톱 로스를 엔트리 가격 × (1 - 스톱 로스 비율) 에 설정하고 영업률을 엔트리 가격 × (1 + 영업률) 에 설정합니다. 쇼트 트레이드에서는 역전됩니다 - 엔트리 가격 × (1 + 스톱 로스 비율) 에 스톱 로스를 설정하고 엔트리 가격 × (1 - 영업률) 에 영업률을 취합니다.

이것은 각 거래에 대한 고정된 위험/이익 비율을 보장하고 위험과 수익을 제어 할 수 있습니다.

이점 분석

이 방식은 Stop Loss와 Take Profit를 설정하는 데 몇 가지 중요한 장점이 있습니다.

  1. 거래당 최대 손실을 제한하고 거래 위험을 효과적으로 제어할 수 있습니다.

  2. 거래당 고정된 수익률을 확보하고 수익을 보장합니다.

  3. 스톱 로스 및 취득 포인트는 고정 값을 사용하는 대신 실제 입시 가격에 따라 달라집니다.

  4. 사용자는 입력 매개 변수를 조정하여 자신의 위험 욕구를 결정할 수 있습니다.

  5. 간단하고 직관적인 전략 논리, 이해하기 쉽고 확인하기 쉽습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 이동 평균은 과도한 유효하지 않은 신호를 생성할 수 있으며, 진입 후 중단될 가능성이 높습니다.

  2. 수익률을 너무 높게 설정하면 수익성이 떨어질 수도 있고 너무 낮으면 충분히 수익을 얻지 못할 수도 있습니다.

  3. 너무 가까운 스톱 로스는 스톱 아웃 될 확률을 높일 수 있고 약간의 버퍼를 제공해야 합니다.

  4. 거래 상품과 시간 틀의 선택이 효과에 영향을 줄 수 있습니다.

대응 솔루션:

  1. 거짓 신호를 줄이기 위해 이동 평균 매개 변수를 최적화합니다.

  2. 다른 수익률을 테스트해서 최적을 찾습니다.

  3. 시장의 변동성에 따라 스톱 로스 거리를 조정합니다.

  4. 다양한 제품과 시간 프레임에 걸쳐 전략 성과를 평가합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 개선될 수 있습니다.

  1. 트렌드 검증을 위한 다른 지표를 추가하여 이동 평균에서 과도한 잘못된 신호를 피합니다.

  2. 스톱 로스를 최적화하고 역 테스트 데이터를 기반으로 수익 비율을 취해서 최적의 매개 변수를 찾습니다.

  3. 더 많은 수익을 확보하기 위해 Stop Loss를 Trailing Stop로 변경합니다.

  4. 거래 위험을 관리하기 위해 피라미딩과 스톱 로스를 가진 포지션 사이즈 규칙을 추가합니다.

  5. 각기 다른 거래 도구와 시간 프레임에 따른 성과 변이를 평가합니다.

요약

이 전략은 이동 평균과 함께 트렌드 방향을 식별하고, 단일 거래 위험과 보상을 제어하기 위해 엔트리 가격에 따라 고정 비율의 스톱 로스를 설정하고 이익을 취합니다. 이 전략의 장점은 손실을 효과적으로 제한하고, 단순하고 직설적인 논리로 수익 비율을 보장하는 것입니다. 스톱 로스 / 스톱 로프 매개 변수, 거래 제품 및 시간 프레임 선택 및 전략을 더 이상 최적화하는 다양한 방법을 적절히 구성해야합니다.


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

// © theCrypster 2020

//@version=4
strategy("Fixed Percent Stop Loss & Take Profit %", overlay=true)

// Moving Averages to get some example trades generated
eg1 = ema(close, 5)
eg2 = ema(close, 32)

long = crossover(eg1, eg2)
short = crossunder(eg1, eg2)

strategy.entry("LONG", strategy.long, when=long)
strategy.entry("SHORT", strategy.short, when=short)

//
// The Fixed Percent Stop Loss Code
// User Options to Change Inputs (%)
stopPer = input(5.0, title='Stop Loss %', type=input.float) / 100
takePer = input(10.0, title='Take Profit %', type=input.float) / 100

// Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)

if strategy.position_size > 0 
    strategy.exit(id="Close Long", stop=longStop, limit=longTake)
if strategy.position_size < 0 
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake)

//PLOT FIXED SLTP LINE
plot(strategy.position_size > 0 ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")

//




더 많은