
La estrategia de brecha horizontal de punto medio único es una estrategia de negociación cuantitativa basada en el indicador de movimiento de Chande. La estrategia determina si el mercado está en la fase de liquidación horizontal calculando el cambio de movimiento del precio.
La estrategia primero calcula el cambio dinámico en el precio.mommY luego lo dividimos por la potencia positiva.m1y la carga negativam2Luego se calcula la suma de las fuerzas positivas y negativas en un período determinado.sm1ysm2Y por último, el indicador de movimiento de Chande.chandeMOEl indicador tiene el 0 como eje central, y cuando el indicador es mayor que 0 indica que la fuerza ascendente es mayor que la fuerza descendente, y cuando es menor que 0 indica lo contrario.
Cuando el indicador de la dinámica de Chande rompe la línea de compra desde el nivel bajo, indica que el precio se desprende de la fase de caída y entra en la fase de reajuste para subir, en este momento la estrategia realiza una operación de compra. Cuando el indicador cae desde el nivel alto hasta la línea de venta, se realiza una operación de venta.
Se puede configurar una línea de compra y venta dinámica, o en combinación con otras señales de filtración de indicadores. También se debe configurar un stop loss para controlar el riesgo.
La estrategia de brecha horizontal de punto medio único determina el punto de inflexión de los precios desde la caída hasta la corrección y luego la subida a través del indicador de la dinámica de Chande. La estrategia es sencilla y práctica y puede capturar de manera efectiva los giros de tendencia.
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//* Backtesting Period Selector | Component *//
//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//
testStartYear = input(2021, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(10, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(999999, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(26, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
/////////////// END - Backtesting Period Selector | Component ///////////////
strategy(title="Chande Momentum Strat", shorttitle="ChandeMO Strat", format=format.price, precision=2)
length = input(9, minval=1)
src = input(close, "Price", type = input.source)
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, length)
sm2 = sum(m2, length)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)
plot(chandeMO, "Chande MO", color=color.blue)
hline(0, color=#C0C0C0, linestyle=hline.style_dashed, title="Zero Line")
buyline= input(-80)
sellline= input(80)
hline(buyline, color=color.gray)
hline(sellline, color=color.gray)
if testPeriod()
if crossover(chandeMO, buyline)
strategy.entry("Long", strategy.long, alert_message="a=ABCD b=buy e=binanceus q=1.2 s=uniusd")
// strategy.exit(id="Long Stop Loss", stop=strategy.position_avg_price*0.8) //20% stop loss
if crossunder(chandeMO, sellline)
strategy.entry("Short", strategy.short, alert_message="a=ABCD b=sell e=binanceus q=1.2 s=uniusd")
// strategy.exit(id="Short Stop Loss", stop=strategy.position_avg_price*1.2) //20% stop loss
// remember to alert as {{strategy.order.alert_message}}