이동 평균을 기반으로 한 고정 비율 손절매 및 이익 실현 전략


생성 날짜: 2023-12-18 11:30:39 마지막으로 수정됨: 2023-12-18 11:30:39
복사: 0 클릭수: 794
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

이동 평균을 기반으로 한 고정 비율 손절매 및 이익 실현 전략

개요

이 전략은 이동 평균을 사용하여 거래 신호를 발생시키고, 입시 가격에 기반한 고정된 퍼센트의 중지 손실과 중지 경로를 설정하여 각 거래의 위험과 수익을 제어합니다.

전략 원칙

이 전략은 먼저 5일 지수 이동 평균과 32일 지수 이동 평균을 사용하여 트렌드 방향을 판단하고, 단기 이동 평균에 장기 이동 평균을 뚫을 때 더 많이 하고, 아래로 뚫을 때 공백을 한다.

입문 후, 전략은 사용자 입력에 기반한 중지 손실 비율과 중지 손실 비율을 동적으로 설정하여 각 거래의 중지 손실과 중지 손실을 설정합니다. 구체적으로, 더 많은 주문을 할 경우, 중지 손실은 입문 가격의 ((1-정지 손실 비율), 중지 손실은 입문 가격의 ((1+정지 손실 비율); 빈 주문을 할 경우, 반대로, 중지 손실은 입문 가격의 ((1+정지 손실 비율), 중지 손실은 입문 가격의 ((1-정지 손실 비율) 입니다.

이러한 설정은 각 거래에 고정된 비율의 중지 손실과 중지 폭을 보장하여 단일 거래의 위험과 수익을 제어할 수 있습니다.

우위 분석

이 방식은 몇 가지 중요한 장점을 가지고 있습니다.

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

  2. 단일 거래의 고정 수익률을 고정하여 수익률을 보장할 수 있습니다.

  3. 스톱로스 포인트와 스톱 스 포인트는 거래 자체의 입시 가격에 따라 변하며, 고정된 값을 사용하는 문제를 피합니다.

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

  5. 전략 논리는 간단하고 직관적이며, 이해하기 쉽고, 검증하기 쉽습니다.

위험 분석

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

  1. 이동 평균은 거래 신호로 유효하지 않은 거래 신호를 많이 생성할 수 있으며, 입수 후 손실이 발생할 가능성이 높습니다.

  2. 스톱 비율을 너무 높게 설정하면 수익성이 떨어질 수 있고, 너무 낮게 설정하면 충분한 수익을 얻지 못할 수 있습니다.

  3. 정지점이 너무 가까워지면 정지점이 작동될 확률이 높아지고, 적절히 느려질 수 있습니다.

  4. 거래 종류와 거래 주기 선택은 상쇄 전략의 효과에 영향을 미칩니다.

대응방법:

  1. 이동 평균 변수를 최적화하여 무효 신호를 줄여줍니다.

  2. 다양한 스틸 비율을 테스트하여 최적의 구성을 찾습니다.

  3. 시장의 변동에 따라 중지 거리를 조정합니다

  4. 다양한 품종과 주기에 따른 전략의 효과에 대한 평가

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 이동 평균이 너무 많은 무효 신호를 발생하지 않도록 다른 지표의 추세 판단을 추가하십시오.

  2. 역측량 데이터에 따라 최적화된 스톱 스톱의 비율에 따라 최적의 매개 변수를 찾습니다.

  3. 더 많은 운영 수익을 확보할 수 있도록 손실을 추적하는 방식으로 중지

  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")

//