피셔 유리크 트레일링 스톱 전략 (Fisher Yurik trailing stop strategy) 은 피셔 유리크 지표와 트레일링 스톱 메커니즘을 통합한 양적 거래 전략이다. 피셔 유리크 지표를 사용하여 수익을 차단하고 수익을 보호하면서 수익을 극대화하기 위해 트레일링 스톱을 설정하면서 구매 및 판매 신호를 생성합니다.
위험은 스톱/프로프트 비율, 테스트 매개 변수, 신호 필터, 포지션 사이징 규칙을 조정하여 해결할 수 있습니다.
피셔 유리크 트레일링 스톱 전략은 트렌드 식별과 리스크 관리를 결합합니다. 매개 변수 조정, 지표 조합 및 스톱 로스 향상으로 허용 가능한 위험 허용 범위 내에서 좋은 수익을 얻는 대부분의 도구에 적합합니다.
/*backtest start: 2023-01-26 00:00:00 end: 2024-02-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fisher_Yurik Strategy with Trailing Stop", shorttitle="FY Strategy", overlay=true) // Date Ranges from_month = input(defval = 1, title = "From Month") from_day = input(defval = 1, title = "From Day") from_year = input(defval = 2021, title = "From Year") to_month = input(defval = 1, title = "To Month") to_day = input(defval = 1, title = "To Day") to_year = input(defval = 9999, title = "To Year") start = timestamp(from_year, from_month, from_day, 00, 00) // backtest start window finish = timestamp(to_year, to_month, to_day, 23, 59) // backtest finish window window = true period = input(2, title='Period') cost = input.float(1.05, title='profit level ', step=0.01) dusus = input.float(1.02, title='after the signal', step=0.01) var float Value = na var float Fish = na var float ExtBuffer1 = na var float ExtBuffer2 = na price = (high + low) / 2 MaxH = ta.highest(high, period) MinL = ta.lowest(low, period) Value := 0.33 * 2 * ((price - MinL) / (MaxH - MinL) - 0.5) + 0.67 * nz(Value[1]) Value := math.max(math.min(Value, 0.999), -0.999) Fish := 0.5 * math.log((1 + Value) / (1 - Value)) + 0.5 * nz(Fish[1]) up = Fish >= 0 ExtBuffer1 := up ? Fish : na ExtBuffer2 := up ? na : Fish var float entryPrice = na var float stopPrice = na if (ExtBuffer1 > ExtBuffer1[1]) entryPrice := close*dusus stopPrice := close * cost if (ExtBuffer2 < ExtBuffer2[1]) entryPrice := close stopPrice := close * cost // Sadece seçilen test döneminde işlem yapma koşulu eklenmiştir strategy.entry("Buy", strategy.long, when=ExtBuffer1 > ExtBuffer1[1] and window) strategy.exit("Take Profit/Trailing Stop", from_entry="Buy", when=(close >= entryPrice * cost) or (close < stopPrice), trail_offset=0.08, trail_price=entryPrice * cost)