
La estrategia es un sistema de negociación cuantitativa que combina el precio promedio ponderado por peso (GWAP) y el análisis de la dinámica. Proyecta el movimiento de los precios mediante el tratamiento ponderado por peso de los datos históricos de precios y en combinación con un indicador de dinámica a corto plazo. El núcleo de la estrategia consiste en utilizar el factor peso para asignar un mayor peso a los precios a corto plazo, lo que aumenta la sensibilidad a los movimientos recientes del mercado.
La estrategia se basa principalmente en dos teorías psicológicas centrales: el efecto dinámico y el precio ponderado por Puma. En cuanto a la dinámica, la estrategia aprovecha las características de la continuación de la tendencia de los precios en los mercados financieros; en cuanto a la ponderación, se le otorga un peso de desaceleración de escala indexal a los precios históricos a través del factor Puma (rango de valoración de 0.5-1.5). En la implementación concreta, la estrategia se basa en el cálculo de GWAP como precio de referencia, y se abren posiciones extras cuando el precio está por encima de GWAP y presenta una tendencia alcista durante tres períodos consecutivos, y viceversa.
La estrategia permite el seguimiento inteligente de las tendencias del mercado mediante la combinación de pesos y dinámicas de la palanca. Su principal ventaja es la capacidad de ajustar la asignación de pesos en función de la dinámica de las condiciones del mercado, al tiempo que se mantiene una alta eficiencia de cálculo. Aunque existen ciertos problemas de riesgo de mercado y sensibilidad de parámetros, la estrategia tiene un buen futuro de aplicación mediante la optimización y el perfeccionamiento continuos.
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-16 08:00:00
period: 6h
basePeriod: 6h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("BTC Future Gamma-Weighted Momentum Model (BGMM)", shorttitle="BGMM", overlay=true,
default_qty_type=strategy.cash, default_qty_value=50000,
slippage=1, commission_value=0.01)
// Inputs
length = input.int(60, "Length for GWAP Calculation")
gamma_factor = input.float(0.75, "Gamma Weight Factor", minval=0.5, maxval=1.5, step=0.01)
// Helper Functions
var float cumulative_weighted_price = na
var float cumulative_weight = na
price = (high + low + close) / 3 // Typical price as a baseline
gamma_weights = array.new_float(length, 0.0)
price_series = array.new_float(length, na)
// Populate Arrays for Calculation
if bar_index >= length
for i = 0 to length - 1
weighted_gamma = math.pow(gamma_factor, i)
array.set(gamma_weights, i, weighted_gamma)
array.set(price_series, i, close[i])
// Compute GWAP
weighted_sum = 0.0
weight_total = 0.0
for i = 0 to length - 1
w = array.get(gamma_weights, i)
p = array.get(price_series, i)
weighted_sum := weighted_sum + p * w
weight_total := weight_total + w
GWAP = weight_total != 0 ? weighted_sum / weight_total : na
plot(GWAP, color=color.red, title="Gamma Weighted Average Price")
// Conditions for Trade Signals
long_condition = close > GWAP and close[1] > close[2] and close[2] > close[3]
short_condition = close < GWAP and close[1] < close[2] and close[2] < close[3]
// Strategy Logic
if long_condition
strategy.entry("Long", strategy.long)
if short_condition
strategy.entry("Short", strategy.short)