
Esta es una estrategia que utiliza una combinación de dos indicadores estocásticos y un promedio móvil ponderado por la transacción para identificar la tendencia. La estrategia utiliza dos indicadores estocásticos de diferentes períodos, uno de corto período y otro de largo período, y luego combina una media móvil ponderada por la transacción para determinar la dirección de la tendencia actual.
La estrategia se basa en el análisis de tendencias a través de las siguientes partes:
Calcula el indicador de estocástica para un ciclo corto, con una longitud de ciclo de entrada de 30 y un parámetro de suavizado de 2
Calcula el indicador de estocástica de un ciclo largo con una longitud de ciclo de entrada de 90 y un parámetro de suavizado de 2
La suma de los indicadores de estocástica de corto y largo períodos da una curva estocástica integral
Para la curva ts se calcula un promedio móvil ponderado por la transacción tsl, con una longitud de ciclo de entrada
Comparación de los valores actuales de tsl con los valores de 1 ciclo anterior, cuando el tsl sube, se considera una tendencia al alza, cuando el tsl baja, se considera una tendencia a la baja
Combina la posición de la curva estocástica para determinar si la señal es multicabezas o sin cabezas
Esta estrategia combina el juicio de tendencia y el juicio de sobrecompra y sobreventa para identificar de manera más fiable la dirección de la tendencia. Las ventajas concretas son las siguientes:
Los indicadores de doble estocástica pueden reflejar sobrecompra y sobreventa a corto y largo plazo, evitando perderse ciertas señales
La ponderación de transacciones puede filtrar las falsas señales de ruptura.
La posición de la curva de estocástica confirma la fiabilidad de las señales de tendencia
Los parámetros son ajustables y la longitud del ciclo se puede ajustar según los diferentes mercados
La estrategia es clara y concisa, fácil de entender y modificar
La estrategia también tiene algunos riesgos a tener en cuenta:
Los indicadores estocásticos son propensos a emitir falsas señales y requieren un filtro de indicadores de períodos más largos.
Los parámetros de ciclo fijo no se adaptan a todas las condiciones del mercado, se pueden considerar los parámetros de optimización dinámica
Mejora de la precisión con base en indicadores técnicos solamente, combinados con factores fundamentales
La inexactitud de los datos de transacción también puede afectar a los resultados, y la calidad de los datos de transacción debe verificarse.
El tiempo de detección es insuficiente y se requiere más tiempo para verificar los datos históricos.
Punto de entrada optimizado, ahora se cruza bajo el valor mínimo para hacer más directamente, se puede configurar una zona de amortiguación
En general, la estrategia utiliza los indicadores de doble estocástica y las medias móviles ponderadas por volumen de transacción para determinar la tendencia, lo que en teoría permite identificar de manera más confiable los puntos de inflexión de la tendencia. Sin embargo, la configuración de los parámetros requiere optimización para mercados específicos y existe un riesgo de señales falsas. Se recomienda combinar otros factores, como los fundamentos, las tendencias a largo plazo y otros, para tomar una decisión integral para mejorar la estrategia.
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Trend Finder V2", shorttitle="TFV2", format=format.price, precision=2, overlay = true)
//----------Indicator------------//
periodK = input(30)
periodD = 3
smoothK = 2
periodK_two = input(90)
periodD_two = 3
smoothK_two = 2
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)
k_two = sma(stoch(close, high, low, periodK_two), smoothK_two)
d_two = sma(k, periodD_two)
ts = k + k_two
tsl = vwma(ts, input(30, title = "VWMA Length"))
//--------Label parameter--------//
up_label = tsl[1] < 100 and tsl > 100 ? 1 : 0
down_label = tsl[1] > 100 and tsl < 100 ? 1 : 0
//----------Color Code-----------//
//tsl_col = tsl > 100 and tsl > tsl[1] ? color.aqua : tsl > 100 and tsl < tsl[1] ? color.green : tsl < 100 and tsl > tsl[1] ? color.maroon : tsl < 100 and tsl < tsl[1] ? color.red : color.silver
//tsl_col = tsl > 100 and ts < 100 and ts > ts[1] ? color.aqua : tsl > 100 and ts > 100 and (ts > ts[1] or ts < ts[1]) ? color.green : tsl < 100 and ts > 100 and ts < ts[1] ? color.red : tsl < 100 and ts < 100 and (ts < ts[1] or ts > ts[1]) ? color.maroon : color.purple
tsl_col = ts > ts[1] and tsl > tsl[1] ? color.lime : ts < ts[1] and tsl < tsl[1] ? color.red : color.yellow
ts_col = (tsl_col == color.lime or tsl_col == color.maroon) and (k>k[1] and k < 30) ? color.lime : (tsl_col == color.green or tsl_col == color.red) and (k < k[1] and k > 70) ? color.red : color.silver
//-------------Plots-------------//
buy = tsl_col[1] == color.yellow and tsl_col == color.lime ? 1 : 0
sell = tsl_col[1] == color.yellow and tsl_col == color.red ? -1 : 0
plotcandle(open,high,low,close, color=tsl_col)
strategy.entry("Long", strategy.long,when=buy==1)
strategy.close("Long", when=sell==-1)