
Cette stratégie permet de déterminer le moment de l’achat et de la vente en définissant un pourcentage de dépréciation et en choisissant le bon moment. Un signal d’achat ou de vente est déclenché lorsque le prix est supérieur ou inférieur au pourcentage de dépréciation indiqué par rapport au prix de clôture précédent.
Le cœur de la stratégie est de générer un signal de transaction basé sur le pourcentage de variation du prix. Tout d’abord, l’utilisateur doit définir une marge de pourcentage, qui indique l’ampleur de la variation du prix par rapport au prix de clôture précédent. De plus, l’utilisateur doit choisir une période de temps, telle que 1 minute, 1 heure, 1 jour, etc., pour calculer le prix le plus élevé, le prix le plus bas et le prix de clôture au cours de cette période.
Cet article présente une stratégie de trading quantitatif basée sur la dépréciation en pourcentage, qui génère automatiquement des signaux d’achat et de vente en définissant le dépréciation en pourcentage et le cycle de temps des variations de prix. La stratégie est simple à utiliser, flexible et polyvalente, mais elle est également exposée à des risques tels que les fluctuations du marché, la configuration des paramètres et la suradaptation.
/*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)