Esta estrategia rastrea las tendencias duales de las acciones mediante el cálculo de los puntos de giro clásicos y el uso del indicador RSI para determinar la dirección de la tendencia actual.
La estrategia sigue principalmente estos pasos para lograr un seguimiento dual de las tendencias:
Calcular los puntos de eje clásicos, incluidos el eje, S1, R1, S2, R2 etc.
Utilice el indicador RSI para determinar la dirección de la tendencia del precio.
Si el precio de cierre es mayor que R2 del día anterior, es una tendencia fuerte.
Tomar las decisiones comerciales de hoy basado en la dirección de la tendencia diaria, combinando Pivot Points e indicador RSI.
Si la tendencia diaria es fuerte (cerca > R2), busque puntos de compra de retroceso en Pivot o compra por debajo de S1.
Si la tendencia diaria es débil (cerca de < S2), busque puntos de venta de retroceso por encima de Pivot o venda por encima de R1.
Establezca puntos de stop loss. Para una tendencia fuerte, el stop loss es el día anterior
La estrategia juzga la tendencia a medio y largo plazo con Pivot Points, y utiliza RSI etc. para determinar la tendencia a corto plazo y los puntos de entrada.
Las principales ventajas de esta estrategia son las siguientes:
Capaz de seguir la tendencia a medio y largo plazo y a corto plazo, adaptándose de forma flexible a los cambios del mercado.
Los Pivot Points tienen cierta capacidad para juzgar la tendencia y pueden determinar eficazmente la tendencia a medio y largo plazo.
El índice de interés por ciento, etc. puede juzgar los niveles de sobrecompra/sobreventa a corto plazo, lo que ayuda a determinar puntos de entrada específicos.
Las reglas de estrategia son claras y sencillas, fáciles de entender.
El control de riesgos está en su lugar con puntos de stop loss claros.
Los principales riesgos de esta estrategia son:
Los Pivot Points pueden fallar en la predicción de la tendencia a medio y largo plazo, lo que puede mejorarse ajustando parámetros o combinándolos con otros indicadores.
Los parámetros pueden ajustarse o utilizarse junto con otros indicadores.
Los puntos de stop loss pueden ser demasiado arbitrarios, incapaces de evitar por completo que se produzca un stop loss.
La estrategia de captación puede ser mayor, necesita preparación psicológica y apoyo de capital suficiente.
Existe el riesgo de que se produzca un exceso de negociación y las condiciones de apertura pueden ajustarse para evitarlo.
La estrategia se puede optimizar en las siguientes áreas:
Pruebe diferentes combinaciones de parámetros como ajustar los parámetros del RSI, optimizar los cálculos de Pivot Point, etc. para encontrar parámetros óptimos.
Agregue o combine otros indicadores como KDJ, MACD, etc. para hacer que las señales sean más precisas y confiables.
Optimizar las estrategias de stop loss, por ejemplo, trailing stop loss, exit stop loss, etc., para reducir el riesgo de que se produzca un stop loss.
Optimizar el dimensionamiento de las posiciones para limitar el impacto de las pérdidas de una sola posición.
Optimizar las condiciones de entrada para evitar el exceso de comercio.
Prueba la eficacia en diferentes productos y ajusta los parámetros.
Agregue estrategias automáticas para obtener ganancias.
Esta estrategia juzga la tendencia a medio largo plazo con Pivot Points y utiliza RSI etc. para ayudar a determinar la tendencia a corto plazo y los puntos de entrada, logrando un seguimiento de tendencia dual de los precios. La lógica general es clara y razonable, funcionando bien para el comercio a mediano plazo.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="swing trade", shorttitle="vinay_swing", overlay=true) pf = input(false,title="Show Filtered Pivots") sd = input(true, title="Show Daily Pivots?") //moving average len = input(50, minval=1, title="Length") src = input(close, title="Source") out = ema(src, len) //RSI INPUT length = input( 7 ) overSold = input( 20 ) overBought = input( 80 ) price = close vrsi = rsi(price, length) // Classic Pivot pivot = (high + low + close ) / 3.0 // Filter Cr bull= pivot > (pivot + pivot[1]) / 2 + .0025 bear= pivot < (pivot + pivot[1]) / 2 - .0025 // Classic Pivots r1 = pf and bear ? pivot + (pivot - low) : pf and bull ? pivot + (high - low) : pivot + (pivot - low) s1 = pf and bull ? pivot - (high - pivot) : pf and bear ? pivot - (high - low) : pivot - (high - pivot) r2 = pf ? na : pivot + (high - low) s2 = pf ? na : pivot - (high - low) BC = (high + low) / 2.0 TC = (pivot - BC) + pivot //Pivot Average Calculation smaP = sma(pivot, 3) //Daily Pivots dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) dtime_pivotAvg = request.security(syminfo.tickerid, 'D', smaP[1]) dtime_r1 = request.security(syminfo.tickerid, 'D', r1[1]) dtime_s1 = request.security(syminfo.tickerid, 'D', s1[1]) dtime_r2 = request.security(syminfo.tickerid, 'D', r2[1]) dtime_s2 = request.security(syminfo.tickerid, 'D', s2[1]) dtime_BC = request.security(syminfo.tickerid, 'D', BC[1]) dtime_TC = request.security(syminfo.tickerid, 'D', TC[1]) offs_daily = 0 plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",style=circles, color=fuchsia,linewidth=1) plot(sd and dtime_r1 ? dtime_r1 : na, title="Daily R1",style=circles, color=#DC143C,linewidth=1) plot(sd and dtime_s1 ? dtime_s1 : na, title="Daily S1",style=circles, color=lime,linewidth=1) plot(sd and dtime_r2 ? dtime_r2 : na, title="Daily R2",style=circles, color=maroon,linewidth=1) plot(sd and dtime_s2 ? dtime_s2 : na, title="Daily S2",style=circles, color=#228B22,linewidth=1) plot(sd and dtime_BC ? dtime_BC : na, title="Daily BC",style=circles, color=black,linewidth=1) plot(sd and dtime_TC ? dtime_TC : na, title="Daily TC",style=circles, color=black,linewidth=1) bull1= (close > dtime_r2) bull2= (low < dtime_pivot) or (low < dtime_s1) bull3= dtime_pivot > dtime_pivot[1] bullishenglufing=bull2 and bull3 bullishenglufing1=bull1 and (close > out) and (crossover(vrsi, overBought)) longCondition = bull1[1] and ((low < dtime_TC) or (low < dtime_BC) or (low < dtime_s1)) bear1= (close < dtime_s2) bear2= (high > dtime_pivot) or (high < dtime_r1) bear3= dtime_pivot < dtime_pivot[1] bearishenglufing=bear2 and bear3 bearishenglufing1=bear1 and (close < out) and (crossunder(vrsi, overSold)) shortCondition = bear1[1] and ((high > dtime_BC) or (high > dtime_TC) or (high > dtime_r1)) plotshape(bullishenglufing, style = shape.triangleup, location = location.belowbar, color = green, size = size.tiny) plotshape(bearishenglufing, style = shape.triangledown, location = location.abovebar, color = red, size = size.tiny) if (longCondition) strategy.entry("My Long Entry Id", strategy.long) if (shortCondition) strategy.entry("My Short Entry Id", strategy.short)