Estrategia comercial de seguimiento de tendencias a largo plazo de Alligator

SMMA SMA
Fecha de creación: 2024-05-17 15:40:13 Última modificación: 2024-05-17 15:40:13
Copiar: 4 Número de Visitas: 718
1
Seguir
1617
Seguidores

Estrategia comercial de seguimiento de tendencias a largo plazo de Alligator

Descripción general

La estrategia de trading de seguimiento de tendencias a largo plazo de Alligator es una estrategia de trading cuantitativa basada en el indicador Williams Alligator. La estrategia utiliza una combinación de medias móviles de diferentes períodos para capturar las tendencias principales del mercado y se aplica a las operaciones de seguimiento de tendencias a medio y largo plazo. La idea principal de la estrategia es juzgar la dirección y la fuerza de la tendencia a través de la dirección de la apertura del indicador Alligator y la posición relativa del precio con el indicador Alligator, para tomar decisiones comerciales.

Principio de estrategia

La estrategia de trading de seguimiento de tendencias a largo plazo de Alligator utiliza promedios móviles de tres períodos diferentes para construir el indicador de Alligator, que son:

  1. Líneas de la mandíbula: SMMA de 13 ciclos, horizontal hacia el futuro Líneas K de 8 raíces
  2. Teeth: 8 ciclos SMMA, 5 raíces K hacia el futuro
  3. Lips línea: SMMA de 5 ciclos, horizontal hacia el futuro 3 raíces K línea

La estrategia abre una posición cuando la apertura del indicador Alligator está hacia arriba, es decir, la línea Jaw está en la parte inferior, la línea Teeth está en el medio y la línea Lips está en la parte superior, mientras que el precio está por encima del indicador Alligator. Esta situación indica que una ola de tendencia alcista se ha confirmado y queremos mantener la posición hasta el final de la tendencia.

Cuando el precio cae por debajo de la línea de la mandíbula, la estrategia aplanará la ventaja. Esto puede garantizar que no sigamos manteniendo posiciones en un mercado bajista.

Ventajas estratégicas

  1. Apto para operaciones a medio y largo plazo: La estrategia se basa en el indicador Alligator, que permite capturar de manera efectiva las principales tendencias del mercado, muy adecuado para operaciones de seguimiento de tendencias a medio y largo plazo.
  2. Frecuencia de transacción baja: la estrategia abre posiciones solo cuando se confirma la formación de una tendencia, y cierra las posiciones al final de la tendencia, la frecuencia de transacción es relativamente baja, lo que puede reducir efectivamente los costos de transacción.
  3. Amplio alcance: La estrategia puede aplicarse a diversos mercados financieros, como divisas, criptomonedas, etc., con una gran adaptabilidad y flexibilidad.
  4. Sin necesidad de optimizar los parámetros: la estrategia sigue completamente las tendencias del mercado, sin necesidad de optimizar los parámetros, simple y fácil de usar.

Riesgo estratégico

  1. Riesgo potencial de deslizamiento: en caso de una fuerte volatilidad o falta de liquidez en el mercado, las órdenes de negociación pueden no ser negociadas al precio esperado, lo que genera un riesgo de deslizamiento.
  2. Falta de gestión de riesgos fija: La estrategia no tiene una configuración de gestión de riesgos fija, y el tamaño de la posición de cada operación debe ajustarse según sus preferencias de riesgo.
  3. Es posible que se pierdan oportunidades de corto plazo: Puesto que la estrategia se centra en capturar tendencias a medio y largo plazo, es posible que se pierdan algunas oportunidades de corto plazo.

Dirección de optimización de la estrategia

  1. Añadir un módulo de gestión de riesgos: se puede considerar la adición de algunas medidas de gestión de riesgos, como el stop loss, el ajuste dinámico de la posición, etc., para controlar mejor el riesgo.
  2. Combinación con otros indicadores técnicos: se puede intentar combinar el indicador Alligator con otros indicadores técnicos, como RSI, MACD, etc., para mejorar la precisión y la fiabilidad de la estrategia.
  3. Optimización de la configuración de los parámetros: aunque la estrategia no requiere la optimización de los parámetros, se puede intentar hacer una retrospectiva de diferentes períodos de tiempo y indicadores de negociación para encontrar la combinación óptima de parámetros.

Resumir

La estrategia de trading de seguimiento de tendencias a largo plazo de Alligator es una estrategia de trading cuantitativa simple, fácil de usar y de amplio alcance. Al utilizar el indicador de Alligator para capturar las principales tendencias del mercado, la estrategia puede obtener ganancias estables en el mediano y largo plazo. Aunque la estrategia tiene algunos riesgos potenciales, la estrategia puede mejorar aún más su rendimiento y estabilidad mediante la adición de módulos de gestión de riesgos, la combinación de otros indicadores técnicos y la configuración de parámetros optimizados.

Código Fuente de la Estrategia
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//_______ <licence>
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Skyrex

//_______ <version>
//@version=5

//_______ <declaration_statement>
strategy(title = "Alligator Long Term Trend Following Strategy [Skyrex.io]", 
         shorttitle = "Alligator Strategy [Skyrex.io]", 
         overlay = true, 
         format = format.inherit, 
         pyramiding = 1, 
         calc_on_order_fills = false, 
         calc_on_every_tick = true, 
         default_qty_type = strategy.percent_of_equity, 
         default_qty_value = 100, 
         initial_capital = 10000, 
         currency = currency.NONE,  
         commission_type = strategy.commission.percent, 
         commission_value = 0.1,
         slippage = 5)


//_______ <constant_declarations>
var color skyrexGreen = color.new(#2ECD99, 0)
var color skyrexGray = color.new(#F2F2F2, 0)
var color skyrexWhite = color.new(#FFFFFF, 0)

var color barcolor = na


//_______ <inputs>
// Trading bot settings
sourceUuid = input.string(title = "sourceUuid:", defval = "yourBotSourceUuid", group = "Trading Bot Settings")
secretToken = input.string(title = "secretToken:", defval = "yourBotSecretToken", group = "Trading Bot Settings")

// Trading Period Settings
lookBackPeriodStart = input(title = "Trade Start Date/Time", defval = timestamp('2023-01-01T00:00:00'), group = "Trading Period Settings")
lookBackPeriodStop = input(title = "Trade Stop Date/Time", defval = timestamp('2025-01-01T00:00:00'), group = "Trading Period Settings")

//_______ <function_declarations>
//@function       Used to calculate Simple moving average for Alligator
//@param src      Sourse for smma Calculations
//@param length   Number of bars to calculate smma
//@returns        The calculated smma value 
smma(src, length) =>
    smma =  0.0
    smma := na(smma[1]) ? ta.sma(src, length) : (smma[1] * (length - 1) + src) / length
    smma


//@function       Used to decide if current candle above the Alligator
//@param jaw      Jaw line of an Alligator
//@param teeth    Teeth line of an Alligator
//@param lips     Lips line of an Alligator
//@returns        Bool value  
is_LowAboveAlligator(jaw, teeth, lips) =>
    result = low > jaw and low > lips and low > teeth 
    result


//@function       Used to decide if current candle below the Alligator
//@param jaw      Jaw line of an Alligator
//@param teeth    Teeth line of an Alligator
//@param lips     Lips line of an Alligator
//@returns        Bool value  
is_HighBelowAlligator(jaw, teeth, lips) =>
    result = high < jaw and high < lips and high < teeth 
    result


//@function       Used to decide if Alligator's mouth is open
//@param jaw      Jaw line of an Alligator
//@param teeth    Teeth line of an Alligator
//@param lips     Lips line of an Alligator
//@returns        Bool value 
is_AlligatorHungry(jaw, teeth, lips) =>
    result = lips > jaw[5] and lips > teeth[2] and teeth > jaw[3]
    result


//_______ <calculations>
jaw = smma(hl2, 13)[8]
teeth = smma(hl2, 8)[5]
lips = smma(hl2, 5)[3]


jaw_o = smma(hl2, 13)
teeth_o = smma(hl2, 8)
lips_o = smma(hl2, 5)


//_______ <strategy_calls>
longCondition = is_LowAboveAlligator(jaw, teeth, lips) and is_AlligatorHungry(jaw_o, teeth_o, lips_o) 
if (longCondition)
    strategy.entry(id = "entry1", direction = strategy.long, alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "entry1",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}')

if close < jaw
    strategy.close(id = "entry1", alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "close",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}')



//_______ <visuals>
if strategy.opentrades > 0
    barcolor := skyrexGreen
else 
    barcolor := skyrexGray

barcolor(barcolor)
//_______ <alerts>