Esta estrategia utiliza una combinación de medias RMA largas y medias EMA cortas para determinar la tendencia y realizar paros de seguimiento de tendencias con brechas altas y bajas. También se establece un intervalo de no negociación para filtrar brechas falsas.
Utiliza el RMA de largo período y el EMA de corto período para determinar la dirección de la tendencia. El EMA de corto plazo usa el RMA de largo plazo como señal de vista baja y el EMA de largo plazo como señal de vista alta.
Cuando el precio rompe el precio más alto del ciclo más reciente, se detiene siguiendo el precio más alto. Cuando el precio rompe el precio más bajo del ciclo más reciente, se detiene siguiendo el precio más bajo.
Establezca un intervalo de no negociación en el que el precio entre sin abrir posiciones, para evitar ser corregido. El intervalo de intervalo está determinado por una cierta proporción de la línea media RMA.
Una vez ingresado, establece un precio de parada y retira una cierta proporción de ganancias.
La combinación de dos líneas equilibradas es muy fiable para determinar la dirección de la tendencia.
El método de seguimiento de la parada hace que la parada siga la tendencia.
Establezca una zona sin transacciones para filtrar las señales falsas de ruptura.
La configuración Stop Stop permite a la estrategia cerrar posiciones activamente una vez que haya acumulado suficientes ganancias.
El retraso en la generación de la horquilla muerta puede extender las pérdidas.
El punto de parada de seguimiento demasiado cerca del precio puede ser golpeado por el ruido previo.
La configuración de la zona sin transacciones demasiado amplia ha causado la pérdida de oportunidades de negociación.
Si no se detiene a tiempo, las pérdidas pueden aumentar.
Resolución de las mismas:
Optimización de los parámetros de la línea media para reducir la probabilidad de retraso.
La tolerancia de los puntos de parada es adecuada para evitar la hipersensibilidad.
Las pruebas ajustan el rango de las zonas sin transacciones para evitar oportunidades perdidas.
Añadir otras formas de detener la pérdida para limitar la pérdida máxima.
Prueba otras combinaciones de indicadores de igualdad para encontrar una combinación más parecida.
Aumentar la diferencia de precios, MACD y otros indicadores de juicio para mejorar la estabilidad de la estrategia.
La introducción de parámetros de optimización de algoritmos de aprendizaje automático para que las estrategias sean más inteligentes.
La combinación de indicadores de tendencias fuertes y débiles evita el comercio en contra de la tendencia.
Optimizar las estrategias de gestión de fondos y mejorar la tasa de éxito de las mismas.
Esta estrategia utiliza una doble línea para determinar la dirección de la tendencia y bloquear la tendencia para obtener ganancias mediante el seguimiento de los puntos altos y bajos de los paros y los filtros de zonas sin transacciones. El marco de la estrategia es simple, claro y extensible, y se puede optimizar mediante el ajuste del rango de parámetros, la optimización de las estrategias de paros y paros y la introducción de otros indicadores de evaluación auxiliares.
/*backtest
start: 2023-08-24 00:00:00
end: 2023-09-12 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PatrickGwynBuckley
//@version=5
//var initialCapital = strategy.equity
strategy("PB Trend Scalper", "PB Trend Scalper", overlay = true)
shortma = input.int(55, title="quick ma's")
longma = input.int(100, title="long ma's")
ema55h = ta.ema(high, shortma)
ema55l = ta.ema(low, shortma)
ema200h = ta.rma(high, longma)
ema200l = ta.rma(low, longma)
stock = ta.stoch(close, high, low, 14)
lev = input.int(3, title="leverage")
hhVal = input.int(170, title="Highest high period")
llVal = input.int(170, title="Lowest low period")
hh = ta.highest(high, hhVal)
ll = ta.lowest(low, llVal)
//plot(stock)
plot(hh, color=color.new(color.green, 50))
plot(ll, color=color.new(color.red, 50))
var float downtrade = 0
p = input.float(3.0, title="no trade zone")
l = 3
emadistlong = ema200h + ((ema200h/100)*p)
emadistshort = ema200l - ((ema200h/100)*p)
plot(ema55h)
plot(ema55l)
ntl = plot(emadistlong, color=color.new(color.red, 10))
nts = plot(emadistshort, color=color.new(color.red, 10))
fill(ntl, nts, color=color.new(color.red, 90))
//position size
EntryPrice = close
//positionValue = initialCapital
positionSize = (strategy.equity*lev) / EntryPrice
//plot(strategy.equity)
//standard short
if ema55h < ema200l and close[2] < ema55l and close[1] > ema55l and high[1] < ema55h and close < ema55h and ema55h < emadistshort and strategy.opentrades == 0// and stock > 85
strategy.entry("short", strategy.short, qty=positionSize, comment="short")
downtrade := 1
//reset count
if (ta.crossunder(ema55h, ema200l)) and downtrade == 1
downtrade := 0
//standard long
if ema55l > ema200h and close[2] > ema55h and close[1] < ema55h and low[1] > ema55l and close > ema55l and ema55l > emadistlong and strategy.opentrades <= 1// and stock < 15
strategy.entry("long", strategy.long, qty=positionSize, comment="long")
downtrade := 0
//RESET COUNT ON MA CROSS
if (ta.crossover(ema55l, ema200h)) and downtrade == 0
downtrade := 1
longclose2 = low < ll[1] or low < emadistshort //close < open and open<open[1] and open[2] < open[3] and open[3] < emadistshort//close < ta.lowest(low, 20)//
shortclose2 = high > hh[1] or high>emadistlong//close > open and open>open[1] and open[2]>open[3] and open[3] > emadistlong//high > emadistlong//close > ta.highest(high, 20)//
sl = 3.5
tp = input.float(6.9, title="take profit %")
tp2 = 10
strategy.exit("long exit", "long", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl)))
strategy.close("long", when = longclose2, comment = "long exit")
//strategy.close("long", when = (downtrade == 1), comment = "long exit")
//strategy.exit("long exit", "long2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl)))
//strategy.close ("long2", when = longclose2, comment = "long exit")
//strategy.close("long", when = (downtrade == 1), comment = "long exit")
strategy.exit("short exit", "short", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl)))//, loss = 300)
strategy.close("short", when = shortclose2, comment = "short exit")
//strategy.close("short", when = (downtrade == 0), comment = "short exit")
//strategy.exit("short exit", "short2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl)))
//strategy.close ("short2", when = shortclose2, comment = "short exit")
//strategy.close("short2", when = (downtrade == 0), comment = "short exit")
//if (strategy.exit("long exit", "long"))
//downtrade := 1
//else
// downtrade := 0