Strategi trailing stop Fisher Yurik adalah strategi perdagangan kuantitatif yang mengintegrasikan indikator Fisher Yurik dan mekanisme trailing stop.
Risiko dapat ditangani dengan menyesuaikan rasio stop/profit, parameter pengujian, menggunakan filter sinyal, aturan ukuran posisi.
Strategi stop trailing Fisher Yurik menggabungkan identifikasi tren dan manajemen risiko. Dengan penyesuaian parameter, kombinasi indikator, dan peningkatan stop loss, ini dapat sesuai dengan sebagian besar instrumen untuk keuntungan yang baik dalam toleransi risiko yang dapat diterima.
/*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)