En la carga de los recursos... Cargando...

Estrategia de la ETI de intercambio

El autor:¿ Qué pasa?, Fecha: 2024-06-07 16:36:24
Las etiquetas:STI para el transporte de vehículosEl EMAEl ATRTEMA (en inglés)

img

Resumen general

Esta estrategia utiliza el indicador TSI como la principal señal de negociación. Cuando el indicador TSI cruza su línea de señal, y el indicador TSI está por debajo del límite inferior o por encima del límite superior, la estrategia generará una señal de posición abierta. Al mismo tiempo, la estrategia también utiliza indicadores como EMA y ATR para optimizar el rendimiento de la estrategia. La estrategia solo se ejecuta dentro de sesiones de negociación específicas y establece una frecuencia mínima de negociación para controlar el exceso.

Principio de la estrategia

  1. Calcular el valor del indicador de la ETI y el valor de la línea de señal.
  2. Determinar si el tiempo actual se encuentra dentro del intervalo de negociación permitido y si la barra actual es al menos el número mínimo especificado de barras desde la última operación.
  3. Si el indicador de la ETI cruza por encima de la línea de señal desde abajo y la línea de señal está por debajo del límite inferior especificado, se generará una señal larga.
  4. Si el indicador de la ETI cruza por debajo de la línea de señal desde arriba y la línea de señal está por encima del límite superior especificado, se generará una señal corta.
  5. Si se mantiene actualmente una posición larga, una vez que el indicador de la ETI cruce por debajo de la línea de señal desde arriba, se cierran todas las posiciones largas.
  6. Si se mantiene actualmente una posición corta, una vez que el indicador de la ETI cruce por encima de la línea de señal desde abajo, se cierran todas las posiciones cortas.

Análisis de ventajas

  1. La lógica de la estrategia es clara, utilizando la cruz del indicador de la ETI como única condición para la apertura y cierre de posiciones, que es simple y fácil de entender.
  2. Al limitar las sesiones de negociación y la frecuencia de las mismas, se controla eficazmente el riesgo de exceso de operaciones.
  3. Si la posición se cierra con una señal opuesta, la posición se cierra de forma decisiva, controlando la exposición al riesgo de una sola operación.
  4. Se utilizan múltiples indicadores para ayudar en el juicio, tales como EMA, ATR, etc., mejorando la solidez de la estrategia.

Análisis de riesgos

  1. La estrategia es bastante sensible a la selección de parámetros de indicadores de la ETI, y los diferentes parámetros generarán grandes diferencias de rendimiento, que deben elegirse cuidadosamente.
  2. Las condiciones de apertura y cierre son relativamente simples, carecen de juicio de tendencia y de restricciones de volatilidad, y pueden dar lugar a pérdidas en mercados oscilantes.
  3. La falta de gestión de posiciones y de gestión de fondos dificulta el control de la reducción, una vez que una pérdida continua conduce a una reducción importante.
  4. Sólo haciendo inversiones largas y cortas, no el seguimiento de tendencias, perderá muchas oportunidades de tendencias.

Dirección de optimización

  1. Optimizar los parámetros del indicador de la ETI para encontrar una combinación de parámetros más robusta.
  2. Se añadirán indicadores de juicio de tendencia, como MA o MACD, para seleccionar la dirección de la tendencia al abrir una posición para mejorar la tasa de éxito.
  3. Añadir indicadores de volatilidad, como el ATR, para reducir el número de operaciones en entornos de mercado de alta volatilidad.
  4. Introducir un modelo de gestión de posiciones para ajustar dinámicamente el tamaño de la posición de cada operación en función del desempeño reciente del mercado y del valor neto de la cuenta.
  5. Se puede añadir una lógica de seguimiento de tendencias para continuar manteniendo posiciones en el mercado de tendencias para mejorar la capacidad de la estrategia para captar grandes tendencias.

Resumen de las actividades

Esta estrategia se basa en el indicador TSI y genera señales comerciales a través del cruce de TSI y su línea de señal. Al mismo tiempo, limita el tiempo y la frecuencia de negociación para controlar los riesgos. La ventaja de la estrategia es que la lógica es simple y clara, y detiene la pérdida y la ganancia de manera oportuna. Sin embargo, la desventaja es la falta de juicio de tendencia y gestión de posiciones, la sensibilidad a los parámetros TSI, y solo puede capturar el mercado de inversión de tendencia mientras falta mercado. En el futuro, la estrategia puede mejorarse desde aspectos como el juicio de tendencia y volatilidad, la gestión de posiciones y la optimización de parámetros.


/*backtest
start: 2024-05-30 00:00:00
end: 2024-06-06 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

//@version=5
strategy("TSI Entries", overlay=true, margin_long=100, margin_short=100)

//
// INPUTS
//

// Define the start and end hours for trading
string sessionInput = input("1000-1530", "Session")

// Day of the week.
string daysInput = input.string("23456", tooltip = "1 = Sunday, 7 = Saturday")

// Minimum number of bar's between entries
requiredBarsBetweenEntries = input.int(12, "Required Bars Between Entries")

// Show debug labels
bool showDebugLabels = input.bool(false, "Show Debug Labels")

//
// FUNCTIONS
//

//@function Define the triple exponential moving average function
tema(src, len) => tema = 3 * ta.ema(src, len) - 3 * ta.ema(ta.ema(src, len), len) + ta.ema(ta.ema(ta.ema(src, len), len), len)

//@function Atr with EMA
atr_ema(length) =>
    trueRange = na(high[1])? high-low : math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
    //true range can be also calculated with ta.tr(true)
    ta.ema(trueRange, length)

//@function Check if time is in range
timeinrange() => 
    sessionString = sessionInput + ":" + daysInput
    inSession = not na(time(timeframe.period, sessionString, "America/New_York"))

//@function Displays text passed to `txt` when called.
debugLabel(txt, color, y, style) =>
    if (showDebugLabels) 
        label.new(bar_index, y, text = txt, color = color, style = style, textcolor = color.black, size = size.small)


//
// INDICATOR CODE
//

long = input(title="TSI Long Length", defval=8)
short = input(title="TSI Short Length", defval=8)
signal = input(title="TSI Signal Length", defval=3)
lowerLine = input(title="TSI Lower Line", defval=-50)
upperLine = input(title="TSI Upper Line", defval=50)

price = close
double_smooth(src, long, short) =>
	fist_smooth = ta.ema(src, long)
	ta.ema(fist_smooth, short)

pc = ta.change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(math.abs(pc), long, short)
tsiValue = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
signalValue = ta.ema(tsiValue, signal)

//
// COMMON VARIABLES
//

var color trendColor = na
var int lastEntryBar = na

bool tradeAllowed = timeinrange() == true and (na(lastEntryBar) or bar_index - lastEntryBar > requiredBarsBetweenEntries)

// 
// CROSSOVER
//

bool crossOver = ta.crossover(tsiValue, signalValue)
bool crossUnder = ta.crossunder(tsiValue,signalValue)

if (tradeAllowed) 
	if (signalValue < lowerLine and crossOver == true)
		strategy.entry("Up", strategy.long)
		lastEntryBar := bar_index

	else if (signalValue > upperLine and crossUnder == true)

		strategy.entry("Down", strategy.short)
		lastEntryBar := bar_index

// 
// EXITS
// 

if (strategy.position_size > 0 and crossUnder == true)
	strategy.close("Up", qty_percent = 100)

else if (strategy.position_size < 0 and crossOver == true)
	strategy.close("Down", qty_percent = 100)


Relacionados

Más.