Método de seguimiento inteligente con escáner bajo

El autor:¿ Qué pasa?, Fecha: 2023-11-01 16:12:00
Las etiquetas:

img

Resumen general

El método de seguimiento inteligente de escáner bajo es una estrategia de comercio de divisas sin repintura.

Análisis de principios

En primer lugar, la estrategia utiliza un escáner bajo para localizar los puntos bajos. El escáner bajo calcula los valores del RSI de precio y volumen, y los compara con la curva WMA para determinar los puntos bajos cuando el RSI es inferior al WMA.

En segundo lugar, la estrategia utiliza el Hull Moving Average para el juicio de la señal comercial. Cálcula dos Hull MA con períodos diferentes, y va largo cuando el período más corto Hull MA cruza el período más largo uno, y va corto cuando cruza bajo.

Finalmente, la estrategia combina las señales de escaneo de punto bajo y las señales de Hull MA, y solo activa las señales de Hull MA cuando el escáner bajo emite señales de punto bajo, formando la estrategia de entrada.

De esta manera, al identificar primero los puntos bajos del mercado y luego seguir la tendencia, puede evitar efectivamente el momento de entrada incorrecto y mejorar la tasa ganadora del sistema de negociación.

Análisis de ventajas

Las principales ventajas del método de seguimiento inteligente de escáneres bajos son:

  1. Utilizando el escáner bajo, puede identificar con precisión los puntos bajos del mercado y evitar comprar en los puntos altos.

  2. El Hull MA es un excelente indicador de seguimiento de tendencias que puede capturar tendencias más grandes.

  3. La combinación de escáner bajo y Hull MA se verifica entre sí y filtra mucho ruido y señales falsas.

  4. La adopción de un mecanismo de salida progresiva de pérdidas puede maximizar las ganancias y evitar retractos.

  5. La estrategia utiliza una lógica basada en indicadores y no manipula los datos históricos, lo que es confiable.

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. Los parámetros pueden ajustarse para ampliar el rango de escaneo.

  2. Los mercados pueden revertirse bruscamente, causando que se produzca un stop loss.

  3. Los parámetros deben optimizarse repetidamente para encontrar la mejor combinación.

  4. Esta estrategia solo se aplica a los pares de divisas con tendencias obvias, no es adecuada para mercados de rango o osciladores.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Optimizar los parámetros del escáner de bajas para identificar los puntos bajos con mayor precisión.

  2. Optimizar los parámetros de Hull MA para seguir las tendencias con mayor precisión.

  3. Añadir otros filtros de indicadores como MACD, KDJ para mejorar la confiabilidad de la señal.

  4. Añadir predicciones de modelos de aprendizaje automático para ayudar a la evaluación de señales comerciales.

  5. Optimizar el mecanismo de stop loss para ajustar dinámicamente la volatilidad del mercado.

  6. Optimizar la estrategia de dimensionamiento de posiciones para ajustar el tamaño de las posiciones dinámicamente en función de las reglas de gestión de fondos.

Conclusión

El método de seguimiento inteligente de escáner bajo es una estrategia de comercio de Forex de alta tasa de ganancia sin repintura. Puede identificar con precisión los puntos bajos del mercado y entrar en la tendencia cuando la tendencia es clara, bloqueando las ganancias con stop loss progresivo. La estrategia tiene un gran margen de optimización y puede mejorarse de muchas maneras para convertirse en un poderoso sistema de comercio automatizado.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-25 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster 2020

//@version=4
// strategy(title = "Low Scanner Forex strategy", overlay = false, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
leng=1
p1=close[1]
min=input(1440)
len55 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
//taken from https://www.tradingview.com/script/Ql1FjjfX-security-free-MTF-example-JD/
tf3 = input("W", type=input.resolution)
ti = change( time(tf3) ) != 0
T_c = fixnan( ti ? close : na )

vrsi = rsi(cum(change(T_c) * volume), leng)
pp=wma(vrsi,len55)

d=(vrsi[1]-pp[1])
min1 =input(60)
len100 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min1 / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
x=ema(d,len100)
//
zx=x/-1
col=zx > 0? color.lime : color.orange
plot(zx,color=col,linewidth=1)
//

tf10 = input("W", title = "Timeframe", type = input.resolution, options = ["1", "5", "15", "30", "60","120", "240","360","720", "D", "W"])

length = input(24, title = "Period", type = input.integer)
shift = input(1, title = "Shift", type = input.integer)

hma(_src, _length)=>
    wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
    
hma3(_src, _length)=>
    p = length/2
    wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p)


a = security(syminfo.tickerid, tf10, hma(close, length))
b =security(syminfo.tickerid, tf10, hma3(close[1], length)[shift])
//plot(a,color=color.gray)
//plot(b,color=color.yellow)
close_price = close[0]
len = input(25)

linear_reg = linreg(close_price, len, 0)


//plot(linear_reg, color=color.blue, title="LR", linewidth=3)

buy=crossover(linear_reg, b) 
sell=crossunder(linear_reg, b) 
//
// Time period input
testStartYear = input(2016, "BACKTEST START YEAR", minval = 1980, maxval = 2222) 
testStartMonth = input(06, "BACKTEST START MONTH", minval = 1, maxval = 12)
testStartDay = input(01, "BACKTEST START DAY", minval = 1, maxval = 31)
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2222, "BACKTEST STOP YEAR", minval=1980, maxval = 2222)
testStopMonth = input(12, "BACKTEST STOP MONTH", minval=1, maxval=12)
testStopDay = input(31, "BACKTEST STOP DAY", minval=1, maxval=31)
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriod = time >= testPeriodStart and time <= testPeriodStop ? true : false
l = crossover(zx,0) or buy
        
if l and testPeriod
    strategy.entry("buy", strategy.long)

per(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=25, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=0.5, minval=0.01)
tp2=input(title=" Take profit2", defval=1, minval=0.01)
tp3=input(title=" Take profit3", defval=1.5, minval=0.01)
tp4=input(title=" Take profit4", defval=2, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


Más.