
Cette stratégie est appelée “stratégie de rupture de la variation des prix de la dépréciation dynamique”. L’idée principale de cette stratégie est de définir une dépréciation dynamique qui génère un signal d’achat lorsque la variation des prix est supérieure à cette dépréciation et un signal de vente lorsque la variation des prix est inférieure à la valeur négative de cette dépréciation.
Le cœur de la stratégie est de calculer le taux de variation du prix, obtenu en divisant le prix de clôture actuel par le prix de clôture précédent et en soustrayant 1. Ensuite, le taux de variation du prix calculé est comparé à la valeur de la baisse de l’entrée de l’utilisateur. Si le taux de variation du prix est supérieur à la valeur de la baisse, un signal d’achat est généré si aucune position n’est actuellement détenue ou si une position est vacante. Si le taux de variation du prix est inférieur à la valeur négative de la valeur de la baisse, un signal de vente est généré si aucune position n’est actuellement détenue ou si une position est en cours.
La “stratégie de rupture de la variation des prix de la dépréciation dynamique” permet de générer des signaux de négociation en comparant le taux de variation des prix avec la dépréciation dynamique et convient aux conditions de hausse. La logique de la stratégie est simple et claire, avec une certaine flexibilité et une capacité de contrôle du risque.
/*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)