Esta estrategia utiliza el volumen alterado en el saldo (OBV) y el MACD para generar señales comerciales. Combina el índice de precios MACD y el OBV alterado como un indicador integral para el volumen y el precio, con el objetivo de capturar oportunidades comerciales cuando el precio y el volumen se fortalecen.
Calcular la media móvil simple (SMA) para determinar la tendencia del mercado.
Calcula el OBV modificado: modifica el cálculo del OBV basado en el precio cerrado y la relación de precio cerrado anterior para hacer que el OBV sea más sensible.
Calcular el MACD en OBV alterado. El MACD consiste en una línea rápida, una línea lenta y un histograma para identificar el cambio de impulso del volumen.
Cuando el MACD cruza el oro y sube, se genera una señal de compra.
Cuando el MACD se cruza y baja, se activa una señal de venta.
Compruebe las SMA para evitar operaciones innecesarias durante el mercado sin tendencia.
La OBV alterada es más sensible a capturar los cambios tempranos de volumen.
El MACD indica claramente el cambio en el impulso del volumen y los niveles clave.
El volumen y el precio combinados de la señal mejoran la precisión.
La SMA filtra la señal falsa determinando la tendencia del mercado.
Lógica estratégica clara y un gran espacio de optimización.
Los OBV alterados pueden generar señales falsas, las necesidades se filtran por otros indicadores.
La configuración inadecuada de los parámetros MACD puede fallar las operaciones o causar señales falsas.
Preste atención a los detalles de las existencias para evitar pérdidas.
Monitorear la situación del mercado, ya que la estrategia puede no funcionar para escenarios especiales.
El riesgo de sobreajuste de las pruebas de retroceso puede conducir a un peor rendimiento en el comercio en vivo.
Prueba de diferentes combinaciones de períodos de SMA para optimizar la determinación de la tendencia del mercado.
Prueba de los parámetros MACD para identificar mejor el cambio de impulso de volumen.
Añadir otros indicadores como filtro, como KDJ, RSI, etc.
Añadir el stop loss al límite de pérdida por operación.
Optimizar la gestión del dinero para mejorar la rentabilidad general.
Diferencias de parámetros de ensayo entre poblaciones.
La estrategia combina OBV y MACD alterados para lograr la síntesis de volumen y precio. Puede capturar el cambio de impulso de volumen temprano y generar señales comerciales. En comparación con el uso de OBV o MACD solo, esta estrategia proporciona oportunidades comerciales más confiables. Sin embargo, existe riesgo de señales falsas y se necesitan más optimizaciones en indicadores y parámetros, además de gestión de dinero para obtener ganancias constantes en el comercio en vivo. En general, la estrategia tiene una lógica clara y vale la pena probar y optimizar para explorar su potencial.
/*backtest start: 2022-11-14 00:00:00 end: 2023-11-14 00:00:00 period: 1d basePeriod: 1h 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/ // © stocktechbot //@version=5 strategy("Altered OBV On MACD", overlay=true, margin_long=100, margin_short=100) // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © stocktechbot //@version=5 //SMA Tredline out = ta.sma(close, 200) outf = ta.sma(close, 50) outn = ta.sma(close, 90) outt = ta.sma(close, 21) outthree = ta.sma(close, 9) //sma plot offset = input.int(title="Offset", defval=0, minval=-500, maxval=500) plot(out, color=color.blue, title="MA200", offset=offset) plot(outf, color=color.maroon, title="MA50", offset=offset) plot(outn, color=color.orange, title="MA90", offset=offset) plot(outt, color=color.olive, title="MA21", offset=offset) plot(outthree, color=color.fuchsia, title="MA9", offset=offset) fast_length = input(title="Fast Length", defval=12) slow_length = input(title="Slow Length", defval=26) chng = 0 obv = ta.cum(math.sign(ta.change(close)) * volume) if close < close[1] and (open < close) chng := 1 else if close > close[1] chng := 1 else chng := -1 obvalt = ta.cum(math.sign(chng) * volume) //src = input(title="Source", defval=close) src = obvalt signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 9) sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"]) sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"]) // Calculating fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) hist = macd - signal //hline(0, "Zero Line", color=color.new(#787B86, 50)) //plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below))) //plot(macd, title="MACD", color=col_macd) //plot(signal, title="Signal", color=col_signal) [macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9) //BUY Signal mafentry =ta.sma(close, 50) > ta.sma(close, 90) //matentry = ta.sma(close, 21) > ta.sma(close, 50) matwohun = close > ta.sma(close, 200) twohunraise = ta.rising(out, 2) twentyrise = ta.rising(outt, 2) macdrise = ta.rising(macd,2) macdlong = ta.crossover(macd, signal) longCondition=false if macdlong and macdrise longCondition := true if (longCondition) strategy.entry("My Long Entry Id", strategy.long) //Sell Signal mafexit =ta.sma(close, 50) < ta.sma(close, 90) matexit = ta.sma(close, 21) < ta.sma(close, 50) matwohund = close < ta.sma(close, 200) twohunfall = ta.falling(out, 3) twentyfall = ta.falling(outt, 2) shortmafall = ta.falling(outthree, 1) macdfall = ta.falling(macd,1) macdsell = macd < signal shortCondition = false if macdfall and macdsell and (macdLine < signalLine) and ta.falling(low,2) shortCondition := true if (shortCondition) strategy.entry("My Short Entry Id", strategy.short)