
Este artículo presenta una estrategia de comercio cuantitativa basada en la depreciación porcentual. Esta estrategia determina el momento de comprar y vender mediante la fijación de una depreciación porcentual y la selección de un período de tiempo adecuado. Se activa una señal de compra o venta cuando el precio aumenta o disminuye con respecto al precio de cierre anterior por encima de la depreciación porcentual indicada.
El núcleo de la estrategia es generar señales de negociación basadas en el porcentaje de cambio en el precio. En primer lugar, el usuario necesita establecer un porcentaje de desvalorización, que representa la magnitud de la variación del precio en relación con el precio de cierre anterior. Al mismo tiempo, el usuario también debe elegir un período de tiempo, como 1 minuto, 1 hora, 1 día, etc., para calcular el precio más alto, el precio más bajo y el precio de cierre en ese período.
Este artículo presenta una estrategia de comercio cuantitativa basada en la depreciación porcentual, que genera automáticamente señales de compra y venta mediante la configuración de la depreciación porcentual y el ciclo de tiempo de los cambios en los precios. La estrategia es simple de operar, flexible y de gran alcance, pero al mismo tiempo se enfrenta a la volatilidad del mercado, la configuración de los parámetros y el exceso de ajuste.
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("GBS Percentage", overlay=true)
// Define input options for percentage settings and timeframe
percentage = input.float(1.04, title="Percentage Threshold", minval=0.01, step=0.01) / 100
timeframe = input.timeframe("D", title="Timeframe", options=["1", "3", "5", "15", "30", "60", "240", "D", "W", "M"])
// Calculate high, low, and close of the selected timeframe
high_timeframe = request.security(syminfo.tickerid, timeframe, high)
low_timeframe = request.security(syminfo.tickerid, timeframe, low)
close_timeframe = request.security(syminfo.tickerid, timeframe, close)
// Calculate the percentage threshold based on the previous close
threshold = close_timeframe[1] * percentage
// Define conditions for Buy and Sell
buyCondition = high_timeframe > (close_timeframe[1] + threshold)
sellCondition = low_timeframe < (close_timeframe[1] - threshold)
// Entry and exit rules
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.entry("Sell", strategy.short)
// Close the positions based on the conditions
if (sellCondition)
strategy.close("Buy")
if (buyCondition)
strategy.close("Sell")
// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, title="Buy Entry", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Entry", color=color.red, style=shape.triangledown, location=location.abovebar)
// Plot the equity curve of the strategy
plot(strategy.equity, title="Equity", color=color.blue, linewidth=2)