Estrategia de trading con trailing stop de supertendencia estocástica


Fecha de creación: 2024-01-25 16:04:39 Última modificación: 2024-01-25 16:04:39
Copiar: 0 Número de Visitas: 712
1
Seguir
1617
Seguidores

Estrategia de trading con trailing stop de supertendencia estocástica

Descripción general

Esta es una estrategia de seguimiento de stop loss que combina varios indicadores técnicos. Se utiliza principalmente el stop loss de Supertrend, Stochastic, 200 Day Moving Average y ATR para identificar señales de negociación y establecer un stop loss. La estrategia es adecuada para el comercio de tendencias de línea media y larga y puede controlar el riesgo de manera efectiva.

Principio de estrategia

Cuando la línea Stochastic K descienda de la zona de sobrecompra y la Supertrend indique una tendencia al alza y el precio supere la media móvil de 200 días, haga más; cuando la línea Stochastic K suba de la zona de sobreventa y la Supertrend indique una tendencia a la baja y el precio baje de la media móvil de 200 días, haga un descuento.

Específicamente, cuando el valor de Stochastic K pasa por 80 se considera una señal de sobreventa; cuando el valor de Stochastic K pasa por 20 se considera una señal de sobreventa. El indicador Supertrend determina la dirección de la tendencia de precios, el indicador Supertrend indica que el precio está en una tendencia alcista y el indicador Supertrend indica que el precio está en una tendencia bajista. El indicador ATR se utiliza para calcular la amplitud real.

Para hacer múltiples señales de activación: la línea Stochastic K baja desde la zona de súper compra (<80); la Supertrend indica hacia arriba; el precio está por encima de la media móvil de 200 días.

Condiciones de activación de la señal de despegue: la línea Stochastic K sube desde la zona de venta por adelantado (<20), la Supertrend indica hacia abajo, el precio está por debajo de la media móvil de 200 días.

Después de la entrada, configure el stop ATR para seguir el riesgo de control de la fluctuación de los precios. El stop múltiple es el precio mínimo menos el valor de ATR multiplicado por el factor; el stop de la carta vacía es el precio máximo más el valor de ATR multiplicado por el factor.

Ventajas estratégicas

Esta estrategia, combinada con varios indicadores para determinar la dirección de la tendencia y el momento de entrada, puede filtrar eficazmente las señales falsas. Al mismo tiempo, la adopción de ATR para el seguimiento dinámico del stop loss puede controlar el riesgo en función de las fluctuaciones del mercado y maximizar el ahorro de fondos.

Esta estrategia capta mejor los puntos de inflexión en comparación con las estrategias de seguimiento de tendencias como las medias móviles simples. Esta estrategia de ATR puede ser más flexible en comparación con la estrategia de stop loss simple. Por lo tanto, esta estrategia tiene una mejor relación riesgo-beneficio en general.

Riesgo estratégico

Esta estrategia depende principalmente de la evaluación de los indicadores, ya que si los indicadores emiten una señal errónea, puede ocasionar pérdidas debido a la operación inversa. Además, en situaciones de agitación, el stop loss puede ser activado con frecuencia y generar pérdidas.

Además, el stop ATR, aunque puede ajustar el punto de parada en función de la fluctuación, no puede evitar por completo la probabilidad de que el stop sea superado. Si se encuentra con un salto en el precio, el stop puede ser activado directamente.

Optimización de la estrategia

Esta estrategia puede ser optimizada en las siguientes dimensiones:

  1. Ajustar los parámetros del indicador para optimizar la precisión de las señales de compra y venta. Por ejemplo, puede probar diferentes parámetros en el indicador estocástico, o ajustar el ciclo ATR y los parámetros de multiplicación del indicador Supertrend.

  2. Prueba la eficacia de otras formas de parar. Por ejemplo, puedes probar algoritmos de parar inteligentes autoadaptativos que sean más flexibles que el parar ATR, o considerar que el parar siga un punto de parada móvil.

  3. Aumentar las condiciones de filtración para una entrada más fiable. Por ejemplo, se pueden agregar filtros como el indicador de energía del volumen de transacciones, para evitar una entrada errónea en función del indicador cuando la capacidad de la cantidad es insuficiente.

  4. Optimización de las estrategias de gestión de fondos, como el ajuste dinámico de posiciones.

Resumir

La estrategia Stochastic Supertrend traza un conjunto de estrategias de negociación de pérdidas que utilizan varios indicadores para determinar la dirección de la tendencia y el seguimiento inteligente de ATR para controlar el riesgo. Esta estrategia puede filtrar eficazmente el ruido de las entradas individuales, con una mejor relación riesgo-beneficio. Podemos optimizar continuamente esta estrategia para que se adapte a un entorno de mercado más complejo, mediante la modificación de los parámetros, la modificación del método de detención y el aumento de las condiciones de filtración.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 00:00:00
period: 1h
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/
// © araamas

//@version=5
strategy("stoch supertrd atr 200ma", overlay=true, process_orders_on_close=true)
var B = 0
if strategy.position_size > 0 //to figure out how many bars away did buy order happen
    B += 1 

if strategy.position_size == 0
    B := 0
    
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)

ema = ta.ema(close, 200)
plot(ema, title="200 ema", color=color.yellow)

b = input.int(defval=14, title="length k%")
d = input.int(defval=3, title="smoothing k%")
s = input.int(defval=3, title="smoothing d%")
smooth_k = ta.sma(ta.stoch(close, high, low, b), d)
smooth_d = ta.sma(smooth_k, s)

////////////////////////////////////////////////////////////////////////////////
length = input.int(title="Length", defval=12, minval=1)
smoothing = input.string(title="Smoothing", defval="SMA", options=["RMA", "SMA", "EMA", "WMA"])
m = input(1.5, "Multiplier")
src1 = input(high)
src2 = input(low)
pline = input(true, "Show Price Lines")
col1 = input(color.blue, "ATR Text Color")
col2 = input(color.teal, "Low Text Color",inline ="1")
col3 = input(color.red, "High Text Color",inline ="2")

collong = input(color.teal, "Low Line Color",inline ="1")
colshort = input(color.red, "High Line Color",inline ="2")

ma_function(source, length) =>
	if smoothing == "RMA"
		ta.rma(source, length)
	else
		if smoothing == "SMA"
			ta.sma(source, length)
		else
			if smoothing == "EMA"
				ta.ema(source, length)
			else
				ta.wma(source, length)
				
a = ma_function(ta.tr(true), length) * m
x = ma_function(ta.tr(true), length) * m + src1
x2 = src2 - ma_function(ta.tr(true), length) * m

p1 = plot(x, title = "ATR Short Stop Loss", color=color.blue)
p2 = plot(x2, title = "ATR Long Stop Loss", color= color.blue)


///////////////////////////////////////////////////////////////////////////////////////////////

shortCondition = high < ema and direction == 1 and smooth_k > 80
if (shortCondition) and strategy.position_size == 0
    strategy.entry("sell", strategy.short)

longCondition = low > ema and direction == -1 and smooth_k < 20
if (longCondition) and strategy.position_size == 0
    strategy.entry("buy", strategy.long)
    
g = (strategy.opentrades.entry_price(0)-x2) * 2
k = (x - strategy.opentrades.entry_price(0)) * 2

if strategy.position_size > 0
    strategy.exit(id="buy exit", from_entry="buy",limit=strategy.opentrades.entry_price(0) + g, stop=x2) 

if strategy.position_size < 0
    strategy.exit(id="sell exit", from_entry="sell",limit=strategy.opentrades.entry_price(0) - k, stop=x) 
    
//plot(strategy.opentrades.entry_price(0) - k, color=color.yellow)
//plot(strategy.opentrades.entry_price(0) + g, color=color.red)