Estrategia de stop loss dinámico con indicador Fisherman


Fecha de creación: 2024-02-02 14:57:33 Última modificación: 2024-02-02 14:57:33
Copiar: 0 Número de Visitas: 717
1
Seguir
1617
Seguidores

Estrategia de stop loss dinámico con indicador Fisherman

Descripción general

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.

Principio de estrategia

  1. Rango de fechas de entrada, período de tiempo de retroalimentación o disco duro
  2. Los parámetros de entrada para el indicador de pescadores son 2 ciclos por defecto
  3. Input Stop Loss Ratio, por defecto 5% de parada y 2% de parada
  4. Calculación de la línea principal y la línea de señal para el indicador de pescadores
  5. La señal de compra se genera al atravesar la línea de señal en la línea principal
  6. Configuración de un tracker de stop loss para detener el precio si baja un 2% después de entrar en una posición larga
  7. Se detiene cuando los precios aumentan más del 5%

Análisis de las ventajas

  1. Indicadores de pescadores son fáciles de usar para juzgar tendencias y compran señales precisas
  2. El mecanismo de seguimiento de los paros puede bloquear la mayor parte de las ganancias y evitar que se supere el parón establecido
  3. Parámetros personalizables para adaptarse a diferentes entornos del mercado
  4. Una implementación sencilla y fácil de entender

Análisis de riesgos

  1. La configuración incorrecta de los parámetros puede conducir a una negociación demasiado radical, que debe ser probada con precaución.
  2. El exceso de puntos de parada puede causar un impacto en Outiliers, causando pérdidas superiores a las esperadas
  3. Un punto de parada demasiado pequeño puede reducir las ganancias demasiado pronto y afectar la rentabilidad
  4. Los parámetros adecuados deben determinarse según las diferentes variedades

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.

Dirección de optimización

  1. Optimización de los parámetros de los indicadores de los pescadores, para probar el impacto de los diferentes parámetros en las estrategias
  2. En combinación con otros indicadores, como MACD, KD, etc., la señal de filtración mejora la calidad de la señal
  3. Aumentar los criterios previos a la apertura de la posición, por ejemplo, la ruptura de la banda de Brin en la vía.
  4. Agrega un módulo de gestión de posiciones para controlar el riesgo de una sola posición
  5. Optimización de la pérdida móvil, como la eliminación de pérdidas móviles, salida de Chandelier, etc.

Resumir

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.

Código Fuente de la Estrategia
/*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)