
La estrategia de stop loss móvil de Fisherman’s Indicator es una estrategia de comercio cuantitativa que combina el indicador de Fisherman’s Indicator con el mecanismo de stop loss móvil. La estrategia utiliza el indicador de Fisherman’s Indicator para generar señales de compra y venta, mientras que establece un stop loss de seguimiento para bloquear las ganancias y obtener mayores ganancias al mismo tiempo que protege las ganancias.
Se pueden optimizar los parámetros ajustando el índice de stop loss, probando diferentes combinaciones de parámetros; combinar con otros indicadores para filtrar las señales; y establecer reglas de administración de posiciones para controlar el riesgo individual.
La estrategia de detención de pérdidas móviles de los indicadores de los pescadores integra el juicio de tendencias y la gestión de las pérdidas, que se puede adaptar a la mayoría de las variedades a través de la optimización de los parámetros, la combinación de indicadores y la mejora de la forma de detener las pérdidas, para obtener mejores ganancias en la prevención de pérdidas superiores a lo que se puede soportar, que vale la pena explorar y practicar.
/*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)