
La estrategia utiliza el RSI, el MACD promedio, las bandas de Brin y los factores de parada de la barra para realizar operaciones rotativas de dinámica de múltiples factores. La estrategia primero determina si varios indicadores técnicos emiten señales de compra o venta al mismo tiempo, y si lo hacen, realiza la operación de compra o venta correspondiente.
La estrategia incluye las siguientes partes:
El factor de juicio
Entrada y salida
Optimización de la estrategia
Esta estrategia no solo considera un solo indicador técnico, sino que combina varios factores, como el RSI, el MACD y la secuencia TD, para reducir las falsas señales causadas por un solo indicador y mejorar la precisión de la entrada.
Indicadores como el RSI, el MACD y otros tienen características de movimiento más evidentes y pueden capturar cambios en la tendencia de los precios de las acciones. En comparación con indicadores de seguimiento de tendencias como la línea media, estos indicadores son más sensibles a la inversión.
El stop móvil puede detenerse con el movimiento del movimiento y bloquear mejor las ganancias. La configuración de stop loss puede controlar las pérdidas individuales.
Esta estrategia, combinada con indicadores técnicos comunes, tiene cierta universalidad. Las reglas son relativamente simples, claras, fáciles de entender y manejar.
Esta estrategia se basa en la manipulación inversa del mercado y es una estrategia inversa. En un mercado alcista, la adopción de esta estrategia puede tener un alto de pérdidas frecuentes y un bajo rendimiento.
Si los parámetros son demasiado sensibles, la frecuencia de las transacciones puede ser demasiado alta, lo que aumenta los costos de las transacciones y la pérdida de puntos de deslizamiento.
Esta estrategia se basa en señales de la misma dirección de varios indicadores, pero a veces los indicadores también pueden discrepar, lo que emite una señal errónea.
El establecimiento de puntos de parada fijos puede ser superado, se puede establecer un cierre dinámico o considerar el cambio de acciones para evitar este riesgo.
Se pueden probar los parámetros del RSI y los parámetros del ciclo de la línea media para encontrar combinaciones de menor frecuencia de negociación.
Se pueden establecer parámetros que mejoran la eficiencia de la estrategia combinando las propiedades estadísticas de las acciones, como la volatilidad, la liquidez, etc.
Los parámetros de la estrategia se pueden ajustar en función de los índices de pánico de todo el mercado, como VIX, para reducir la frecuencia de las operaciones en el momento del pánico en el mercado.
Se pueden probar diferentes períodos de tenencia para determinar el impacto de la tenencia a largo plazo o la rotación a corto plazo en la eficacia de la estrategia.
Se puede estudiar un método más avanzado de detener el deterioro de la frenada dinámica, para medir el efecto.
Esta estrategia tiene en cuenta una amplia gama de indicadores técnicos, y utiliza paros y pérdidas móviles para bloquear los beneficios y controlar el riesgo, a fin de garantizar una mayor precisión de entrada. La estrategia es simple y clara, fácil de entender.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("RSI, TD Seq, MACD, BB Strategy - Calculation Trailing Profit",overlay=true)
RSIDifference = input(-7, minval=-50, maxval=50, title="RSI Difference")
TD = close > close[4] ?nz(TD[1])+1:0
TS = close < close[4] ?nz(TS[1])+1:0
TDUp = TD - valuewhen(TD < TD[1], TD , 1 )
TDDn = TS - valuewhen(TS < TS[1], TS , 1 )
TDcheckUP = iff(TD == 2, true, false)
TDCheckDOWN = iff(TS == 2, true, false)
[_, _, histLine] = macd(close, 12, 26, 9)
MACDCheckDown = iff(histLine > 0 and histLine[1] > 0 and histLine[2] > 0 and histLine[3] > 0 and histLine[4] > 0, true, false)
MACDCheckUp = iff(histLine < 0 and histLine[1] < 0 and histLine[2] < 0 and histLine[3] < 0 and histLine[4] < 0, true, false)
RSICal = rsi(close, 14)
RSICalNewUp = 50 + RSIDifference
RSICalNewDown = 50 - RSIDifference
RSICheckUp = iff(RSICal <= RSICalNewUp, true, false)
RSICheckDown = iff(RSICal >= RSICalNewDown, true, false)
basis = sma(close, 20)
dev = 2 * stdev(close, 20)
upperBB = basis + dev
lowerBB = basis - dev
BBCheckUp = iff(close > upperBB, true, false)
BBCheckDown = iff(close < lowerBB, true, false)
//BBCheckUp = false
//BBCheckDown = false
BuyCheck = iff(TDcheckUP == true and MACDCheckUp == true and RSICheckUp == true and BBCheckUp == false, true, false)
SellCheck = iff(TDCheckDOWN == true and MACDCheckDown == true and RSICheckDown == true and BBCheckDown == false, true, false)
ProfitStratA = input(50, minval=0, maxval=10000, title="Profit", step=0.5)
ProfitTrailingA = input(10, minval=0, maxval=10000, title="Profit", step=0.5)
useStopLoss = input(false, title="Use Stop Loss?")
LossstratA = input(145, minval=0, maxval=10000, title="Stop Loss", step=0.5)
colB = input(100, minval=0, maxval=100, title="0-show / 100-hide Strategy", step=100)
ProfitStrat = ProfitStratA * 10
ProfitTrailing = ProfitTrailingA * 10
Lossstrat = useStopLoss ? LossstratA * 10 : 1000000
if (strategy.position_size > 0)
strategy.exit("BuyClose", "Buy", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
if (strategy.position_size < 0)
strategy.exit("SellClose", "Sell", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
if (BuyCheck == true and strategy.position_size == 0)
strategy.entry("Buy", strategy.long, comment="Long Entry")
if (SellCheck == true and strategy.position_size == 0)
strategy.entry("Sell", strategy.short, comment="Short Entry")
plotshape(BuyCheck, color=blue, transp=colB, style=shape.arrowup, text="Buy\n", location=location.belowbar)
plotshape(SellCheck, color=orange, transp=colB, style=shape.arrowdown, text="Sell\n", location=location.abovebar)