
La estrategia se llama “estrategia de ruptura de cambio de precio de la depreciación dinámica”. La idea principal de la estrategia es establecer una depreciación dinámica, que genera una señal de compra cuando el cambio de precio supera ese umbral y una señal de venta cuando el cambio de precio es inferior al valor negativo de ese umbral.
El núcleo de la estrategia es calcular el cambio de precio, obtenido por el precio de cierre actual a partir de un precio de cierre anterior menos 1. Luego, se compara el cambio de precio calculado con el valor de la pendiente de entrada del usuario. Si el cambio de precio es mayor que el valor de la pendiente de salida, se genera una señal de compra si no se tiene una posición en la posición actual o si se tiene una posición en la posición vacante; Si el cambio de precio es menor que el valor negativo del valor de la pendiente de salida, se genera una señal de venta si no se tiene una posición en la posición actual o si se tiene una posición en la posición principal.
La “estrategia de ruptura de cambio de precio de depreciación dinámica” para generar señales de comercio mediante la comparación de la tasa de cambio de precio con la depreciación dinámica, es adecuado para su uso en situaciones de alza. La lógica de la estrategia es simple y clara, con cierta flexibilidad y capacidad de control de riesgo.
/*backtest
start: 2023-04-01 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Price Change", shorttitle="Price Change", overlay=true)
change = input(00.1, title="Change", minval=0.0001, maxval=1, type=input.float)
// Calculate price change
priceChange = close / close[1] - 1
// Buy and Sell Signals
buyp = priceChange >= change
sellp = priceChange <= (change * -1)
// Initialize position and track the current position
var int position = na
// Strategy entry conditions
buy_condition = buyp and (na(position) or position == -1)
sell_condition = sellp and (na(position) or position == 1)
var float stop = na
if (buy_condition)
strategy.entry("Long", strategy.long)
stop := lowest(low, 6)
position := 1
if (sell_condition or low < stop)
strategy.close("Long")
position := -1
// Plot Buy and Sell signals using plotshape
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)