
Cet article présente un système de suivi des tendances combinant une boîte de Darvas et une moyenne mobile à 25 cycles. Cette stratégie permet d’identifier les boîtes qui se forment entre les zones de couverture des prix et, combinée à la confirmation de la tendance uniforme, de capturer les tendances fortes lors de la rupture. La conception du système prend en compte la continuité des tendances et le filtre de fausse rupture, offrant aux traders un cadre d’entrée et de sortie complet.
La stratégie comporte trois composantes principales:
Cette stratégie, combinant la théorie classique du cube de Davos et le suivi de la tendance des moyennes mobiles, construit un système de négociation robuste. Le principal avantage du système réside dans la capacité de capturer efficacement les comportements tendancieux tout en contrôlant les risques grâce à de multiples mécanismes de filtrage. Bien qu’il y ait un certain retard, la stratégie est capable d’obtenir des performances stables dans les marchés tendancieux grâce à une optimisation des paramètres et une gestion des risques raisonnables.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("DARVAS BOX with MA25 Buy Condition", overlay=true, shorttitle="AEG DARVAS")
// Input for box length
boxp = input.int(5, "BOX LENGTH")
// Calculate 25-period moving average
ma25 = ta.sma(close, 25)
// Lowest low and highest high within the box period
LL = ta.lowest(low, boxp)
k1 = ta.highest(high, boxp)
k2 = ta.highest(high, boxp - 1)
k3 = ta.highest(high, boxp - 2)
// New high detection
NH = ta.valuewhen(high > k1[1], high, 0)
// Logic to detect top and bottom of Darvas Box
box1 = k3 < k2
TopBox = ta.valuewhen(ta.barssince(high > k1[1]) == boxp - 2 and box1, NH, 0)
BottomBox = ta.valuewhen(ta.barssince(high > k1[1]) == boxp - 2 and box1, LL, 0)
// Plot the top and bottom Darvas Box lines
plot(TopBox, linewidth=3, color=color.green, title="Top Box")
plot(BottomBox, linewidth=3, color=color.red, title="Bottom Box")
plot(ma25, color=#2195f31e, linewidth=2, title="ma25")
// --- Buy and Sell conditions ---
// Buy when price breaks above the Darvas Box AND MA15
buyCondition = ta.crossover(close, TopBox) and close > ma25
// Sell when price drops below the Darvas Box
sellCondition = ta.crossunder(close, BottomBox)
// --- Buy and Sell Signals ---
// Plot BUY+ and SELL labels
plotshape(series=buyCondition, title="Buy+ Signal", location=location.abovebar, color=#72d174d3, style=shape.labeldown, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.belowbar, color=color.rgb(234, 62, 62, 28), style=shape.labelup, text="SELL")
// --- Strategy execution ---
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.close("Buy")