Esta estrategia es parte de la estrategia de seguimiento de tendencias. Hacer más cuando el precio rompe la forma de triángulo ascendente y cerrar cuando el EMA rápido rompe el EMA intermedio. Al mismo tiempo, establecer puntos de stop loss y stop loss para controlar el riesgo.
Utiliza el EMA rápido y el EMA intermedio para determinar la dirección de la tendencia. El EMA rápido está sobre el EMA intermedio como una señal positiva.
Utiliza los precios más altos y más bajos de las líneas K de la raíz N más recientes para determinar si se forma un triángulo ascendente. El triángulo se forma como una señal múltiple.
Después de la entrada en el mercado, cuando el EMA rápido cruza el EMA intermedio, se considera que la tendencia se invierte y se emite una señal de liquidación.
El punto de parada se establece por debajo de un determinado porcentaje del precio de entrada y el punto de parada se establece por debajo de la salida.
El punto de parada debe estar por encima del porcentaje de entrada y el punto de parada debe estar por encima del precio de salida.
Utiliza la EMA de 200 días para determinar la dirección de la tendencia general y solo opera cuando la tendencia es al alza.
El uso de filtros de forma triangular permite una brecha falsa para mejorar la precisión de entrada.
El EMA rápido y el EMA intermedio dividen razonablemente las tendencias y las oscilaciones, evitando ser encajonados.
La configuración de stop loss y stop stop es razonable y permite controlar las pérdidas individuales.
Se puede evitar la fase de reajuste operando solo en la parte superior de la tendencia.
El área del triángulo es demasiado pequeña para perder la tendencia y demasiado grande para aumentar las transacciones sin sentido. Se necesita optimizar el parámetro N.
El punto de parada demasiado cerca es fácil de golpear, demasiado lejos es difícil de controlar los daños. Se debe evaluar el papel de los parámetros y optimizarlos.
La configuración incorrecta de algunas paradas puede causar un exceso de ganancias. Se debe evaluar la proporción razonable.
Los parámetros incorrectos de los indicadores de tendencia pueden conducir a una posición errónea. Se requiere la optimización de la retroalimentación de varias variedades.
Optimiza el triángulo de los parámetros N, para encontrar el valor óptimo.
Prueba diferentes combinaciones de EMA para mejorar la precisión de las tendencias.
Optimización de los parámetros de deterioro de la suspensión de acuerdo con las características de las diferentes variedades.
Añadir otros indicadores de juicio, como la forma MACD, la ruptura de la banda de Brin, etc., para mejorar la calidad de la señal.
Añadir un mecanismo de reapertura para prolongar el tiempo de ganancia si la tendencia continúa.
La estrategia en general es más robusta y puede filtrar los falsos saltos a través de la determinación del triángulo. El espacio para optimizar los parámetros es mayor y se espera obtener mejores resultados. Además, se puede intentar agregar más indicadores de juicio auxiliares o mejorar la estrategia de parada de pérdidas para mejorar aún más la eficacia de la estrategia. En general, la estrategia tiene el potencial de ser una estrategia de seguimiento de tendencias de calidad.
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 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/
// © mohanee
//@version=4
strategy(title="TrianglePoint strategy", overlay=true,pyramiding=2, default_qty_value=3, default_qty_type=strategy.fixed, initial_capital=10000, currency=currency.USD)
// variables BEGIN
numPeriods=input(9,title="Number of Bars")
fastEMA = input(13, title="fast EMA", minval=1)
slowEMA = input(65, title="slow EMA", minval=1)
stopLoss = input(title="Stop Loss%", defval=5, minval=1)
HH = highest(close[1],numPeriods)
LL = lowest(close[1],numPeriods)
tringlePoint = low > LL and high < HH
fastEMAval= ema(close, fastEMA)
slowEMAval= ema(close, slowEMA)
two100EMAval= ema(close, 200)
//plot emas
plot(fastEMAval, color = color.green, linewidth = 1, transp=0)
plot(slowEMAval, color = color.orange, linewidth = 1, transp=0)
plot(two100EMAval, color = color.purple, linewidth = 2, transp=0)
longCondition=fastEMAval>two100EMAval and tringlePoint
//plotshape(triP,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)
//plotshape(longCondition,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)
//Entry
strategy.entry(id="TBT LE", comment="TBT LE" , long=true, when= longCondition and strategy.position_size<1)
//Add
strategy.entry(id="TBT LE", comment="Add" , long=true, when= longCondition and strategy.position_size>=1 and close<strategy.position_avg_price)
//barcolor(strategy.position_size>=1 ? color.blue : na)
//Take profit
takeProfitVal= strategy.position_size>=1 ? (strategy.position_avg_price * (1+(stopLoss*0.01) )) : 0.00
//strategy.close(id="TBT LE", comment="Profit Exit", qty=strategy.position_size/2, when=close>=takeProfitVal and close<open and close<fastEMAval) //crossunder(close,fastEMAval)
barcolor(strategy.position_size>=1 ? (close>takeProfitVal? color.purple : color.blue): na)
//Exit
strategy.close(id="TBT LE", comment="TBT Exit", when=crossunder(fastEMAval,slowEMAval))
//stoploss
stopLossVal= strategy.position_size>=1 ? (strategy.position_avg_price * (1-(stopLoss*0.01) )) : 0.00
//stopLossVal= close> (strategy.position_avg_price * (1+(stopLoss*0.01) )) ? lowest(close,numPeriods) : (strategy.position_avg_price * (1-(stopLoss*0.01) ))
strategy.close(id="TBT LE", comment="SL Exit", when= close < stopLossVal)