
이 전략은 이동 평균을 사용하여 거래 신호를 발생시키고, 입시 가격에 기반한 고정된 퍼센트의 중지 손실과 중지 경로를 설정하여 각 거래의 위험과 수익을 제어합니다.
이 전략은 먼저 5일 지수 이동 평균과 32일 지수 이동 평균을 사용하여 트렌드 방향을 판단하고, 단기 이동 평균에 장기 이동 평균을 뚫을 때 더 많이 하고, 아래로 뚫을 때 공백을 한다.
입문 후, 전략은 사용자 입력에 기반한 중지 손실 비율과 중지 손실 비율을 동적으로 설정하여 각 거래의 중지 손실과 중지 손실을 설정합니다. 구체적으로, 더 많은 주문을 할 경우, 중지 손실은 입문 가격의 ((1-정지 손실 비율), 중지 손실은 입문 가격의 ((1+정지 손실 비율); 빈 주문을 할 경우, 반대로, 중지 손실은 입문 가격의 ((1+정지 손실 비율), 중지 손실은 입문 가격의 ((1-정지 손실 비율) 입니다.
이러한 설정은 각 거래에 고정된 비율의 중지 손실과 중지 폭을 보장하여 단일 거래의 위험과 수익을 제어할 수 있습니다.
이 방식은 몇 가지 중요한 장점을 가지고 있습니다.
단일 거래의 최대 손실을 제한하고 거래 위험을 효과적으로 제어할 수 있습니다.
단일 거래의 고정 수익률을 고정하여 수익률을 보장할 수 있습니다.
스톱로스 포인트와 스톱 스 포인트는 거래 자체의 입시 가격에 따라 변하며, 고정된 값을 사용하는 문제를 피합니다.
사용자는 입력 매개 변수를 조정하여 자신의 위험 수준을 결정할 수 있습니다.
전략 논리는 간단하고 직관적이며, 이해하기 쉽고, 검증하기 쉽습니다.
이 전략에는 몇 가지 위험도 있습니다.
이동 평균은 거래 신호로 유효하지 않은 거래 신호를 많이 생성할 수 있으며, 입수 후 손실이 발생할 가능성이 높습니다.
스톱 비율을 너무 높게 설정하면 수익성이 떨어질 수 있고, 너무 낮게 설정하면 충분한 수익을 얻지 못할 수 있습니다.
정지점이 너무 가까워지면 정지점이 작동될 확률이 높아지고, 적절히 느려질 수 있습니다.
거래 종류와 거래 주기 선택은 상쇄 전략의 효과에 영향을 미칩니다.
대응방법:
이동 평균 변수를 최적화하여 무효 신호를 줄여줍니다.
다양한 스틸 비율을 테스트하여 최적의 구성을 찾습니다.
시장의 변동에 따라 중지 거리를 조정합니다
다양한 품종과 주기에 따른 전략의 효과에 대한 평가
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이동 평균이 너무 많은 무효 신호를 발생하지 않도록 다른 지표의 추세 판단을 추가하십시오.
역측량 데이터에 따라 최적화된 스톱 스톱의 비율에 따라 최적의 매개 변수를 찾습니다.
더 많은 운영 수익을 확보할 수 있도록 손실을 추적하는 방식으로 중지
포지션 관리 모듈을 추가하여 포지션 및 스톱으로 거래 위험을 관리합니다.
다른 거래 유형과 다른 기간 동안의 전략 효과의 차이를 평가합니다.
이 전략은 이동 평균을 기반으로 트렌드 방향을 판단하여 입시를 하고, 입시 가격에 기반한 고정 비율의 중지 손실을 설정하여 단일 거래의 위험과 수익을 제어한다. 이 전략의 장점은 손실을 효과적으로 제한하고, 수익률을 보장하고, 논리적으로 간단하며, 작동하기 쉽다는 것이다. 주의가 필요한 것은 적절히 구성된 중지 손실 변수, 적절한 거래 종류와 주기를 선택하고, 여러 가지 방법으로 이 전략에 대한 최적화를 계속할 수 있다.
/*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")
//