
3 10 La estrategia de marcado del contorno del oscilante determina la fortaleza y la debilidad de las bolsas de compra y venta en el mercado mediante el cálculo de la diferencia entre las medias móviles simples de 3 y 10 días como indicador MACD, combinado con el análisis de la cantidad de transacciones, lo que genera una señal de negociación. La estrategia combina al mismo tiempo las áreas clave de precios, las características de la cantidad de transacciones y la inversión del indicador MACD para confirmar las oportunidades de entrada y salida.
El indicador central de la estrategia es el MACD, que consiste en una media móvil rápida y una media móvil lenta. La línea rápida es la media móvil simple de 3 días y la línea lenta es la media móvil simple de 10 días.
Además, la estrategia combina la relación entre el volumen de compra y venta de cada línea K y la magnitud del volumen de venta, para determinar la fuerza relativa de las posiciones de compra y venta en el mercado. El método específico es: volumen de compra = volumen de compra x (precio de cierre - precio mínimo) ÷ (precio máximo - precio mínimo); volumen de venta = volumen de compra x (precio máximo - precio de cierre) ÷ (precio máximo - precio mínimo). Si el volumen de compra es significativamente mayor que el volumen de venta, indica que la línea raíz K termina con una posición de compra más fuerte, que es una señal de compra.
Mediante la combinación de indicadores MACD y análisis de volumen de transacciones, la estrategia puede determinar con eficacia la relación de oferta y demanda en el mercado y la dirección de la tendencia pending. Al mismo tiempo, la estrategia también verifica si el precio está en la zona crítica, si el MACD se invierte con eficacia y si la diferencia de volumen de transacciones entre los compradores y los vendedores es lo suficientemente grande como para filtrar el ruido de algunas operaciones de impulso y asegurar una alta probabilidad y alta eficiencia de entrada.
La mayor ventaja de esta estrategia reside en la combinación de las relaciones de oferta y demanda en el mercado. La línea MACD puede determinar con eficacia la oposición de las fuerzas de las bolsas de compra y venta y la dirección de la tendencia del mercado. El análisis de la diferencia de transacción puede identificar claramente las fuerzas dominantes de las bolsas de compra y venta.
El riesgo se puede evitar mediante la siguiente estrategia: determinar con precisión las principales tendencias del mercado, evitar el uso de esta estrategia en el disco de oscilación; prestar atención a la información del mercado, identificar el volumen de transacciones que han sido manipulados por el hombre; ajustar los parámetros con cuidado, puede tomar como referencia las recomendaciones de las instituciones profesionales.
La estrategia puede ser optimizada en los siguientes aspectos:
En resumen, se puede ver que hay mucho espacio para optimizar esta estrategia, y los inversores pueden hacer los ajustes y mejoras adecuados según sus propias circunstancias y el entorno del mercado para mejorar la eficacia de la estrategia.
3 10 La estrategia de marcado del contorno del oscilante combina con éxito el análisis MACD, la comparación del volumen de transacciones y la verificación de filtración de múltiples condiciones. Tiene una fuerte capacidad para determinar la relación de oferta y demanda y la dirección de la tendencia del mercado, al tiempo que controla el riesgo con un mecanismo de parada y parada integrado. La estrategia tiene un amplio espacio de optimización y un amplio panorama de aplicaciones, que merece la consideración y el estudio profundo de los inversores.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("3 10 Oscillator Profile Flagging", shorttitle="3 10 Oscillator Profile Flagging", overlay=true)
signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.8)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=10)
takeProfit = input( title="Take Profit", defval=0.75)
stopLoss = input( title="Stop Loss", defval=0.5)
fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)
buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
//plot(macdSlope, color=color.red, title="Total Volume")
//plot(signalSlope, color=color.green, title="Total Volume")
intrabarRange = high - low
getLookBackSlope(lookBack) => signal - signal[lookBack]
getBuyerVolBias(lookBack) =>
j = 0
for i = 1 to lookBack
if buyVolume[i] > sellVolume[i]
j += 1
j
getSellerVolBias(lookBack) =>
j = 0
for i = 1 to lookBack
if sellVolume[i] > buyVolume[i]
j += 1
j
getVolBias(lookBack) =>
float b = 0
float s = 0
for i = 1 to lookBack
b += buyVolume[i]
s += sellVolume[i]
b > s
getSignalBuyerBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] > signalBiasValue
j += 1
j
getSignalSellerBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] < ( 0 - signalBiasValue )
j += 1
j
getSignalNoBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] < signalBiasValue and signal[i] > ( 0 - signalBiasValue )
j += 1
j
getPriceRising(lookBack) =>
j = 0
for i = 1 to lookBack
if close[i] > close[i + 1]
j += 1
j
getPriceFalling(lookBack) =>
j = 0
for i = 1 to lookBack
if close[i] < close[i + 1]
j += 1
j
getRangeNarrowing(lookBack) =>
j = 0
for i = 1 to lookBack
if intrabarRange[i] < intrabarRange[i + 1]
j+= 1
j
getRangeBroadening(lookBack) =>
j = 0
for i = 1 to lookBack
if intrabarRange[i] > intrabarRange[i + 1]
j+= 1
j
bool isNegativeSignalReversal = signalSlope < 0 and signalSlope[1] > 0
bool isNegativeMacdReversal = macdSlope < 0 and macdSlope[1] > 0
bool isPositiveSignalReversal = signalSlope > 0 and signalSlope[1] < 0
bool isPositiveMacdReversal = macdSlope > 0 and macdSlope[1] < 0
bool hasBearInversion = signalSlope > 0 and macdSlope < 0
bool hasBullInversion = signalSlope < 0 and macdSlope > 0
bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0 - signalBiasValue )
bool hasSignalBuyerBias = hasSignalBias and signal > 0
bool hasSignalSellerBias = hasSignalBias and signal < 0
bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0 - macdBiasValue )
bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)
bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )
// 7.48 Profit 52.5%
if ( hasSignificantBuyerVolBias and getPriceRising(shortLookBack) == shortLookBack and getBuyerVolBias(shortLookBack) == shortLookBack and hasPositiveMACDBias and hasBullInversion)
strategy.entry("Short1", strategy.short, qty=10)
strategy.exit("TPS", "Short1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)
// 32.53 Profit 47.91%
if ( getPriceFalling(shortLookBack) and (getVolBias(shortLookBack) == false) and signalSlope < 0 and hasSignalSellerBias)
strategy.entry("Long1", strategy.long, qty=10)
strategy.exit("TPS", "Long1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)