
La stratégie est un système de suivi des tendances basé sur la théorie du comportement des prix d’Albrooks et les indicateurs MACD. Elle identifie les tendances du marché en combinant les moyennes mobiles (SMA) et les indicateurs MACD et en effectuant des transactions au moment opportun.
La logique fondamentale de la stratégie comprend les éléments clés suivants :
Il s’agit d’un système de négociation complet qui combine la théorie classique du comportement des prix avec des indicateurs techniques. La stratégie obtient des résultats de négociation relativement stables grâce à des mécanismes de confirmation de signaux rigoureux et à des méthodes de gestion des risques. Bien que certains risques inhérents existent, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées par des orientations d’optimisation suggérées.
/*backtest
start: 2024-11-15 00:00:00
end: 2025-02-18 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Abdulhossein
//@version=6
strategy(title="Al Brooks Price Action with MACD Signals", shorttitle="Al Brooks PA + MACD", overlay=true)
// Inputs
length = input.int(52, title="Moving Average Length", minval=1)
riskRewardRatio = input.float(2.0, title="Risk/Reward Ratio", minval=1.0)
stopLossBuffer = input.float(0.01, title="Stop Loss Buffer (in %)", minval=0.001)
candleType = input.string("Close", title="Candle Type", options=["Close", "Open"])
// Indicators
sma = ta.sma(close, length)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
price = candleType == "Close" ? close : open
// Trend Conditions
uptrend = price > sma
downtrend = price < sma
// Buy/Sell Signals
buySignal = price > sma and macdLine > 0 and macdLine > signalLine
sellSignal = price < sma and macdLine < 0 and macdLine < signalLine
// Trade Execution
if (buySignal)
longStopLoss = close * (1 - stopLossBuffer)
longTakeProfit = close + (close - longStopLoss) * riskRewardRatio
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit", "Buy", limit=longTakeProfit, stop=longStopLoss)
if (sellSignal)
shortStopLoss = close * (1 + stopLossBuffer)
shortTakeProfit = close - (shortStopLoss - close) * riskRewardRatio
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit", "Sell", limit=shortTakeProfit, stop=shortStopLoss)
// Plot Signals
plotarrow(buySignal[2] ? 1 : na, colorup=color.new(color.green, 50), title="Buy Signal Arrow", offset=-1)
plotarrow(sellSignal[2] ? -1 : na, colordown=color.new(color.red, 50), title="Sell Signal Arrow", offset=-1)
// Close Positions
if (not buySignal and not sellSignal)
strategy.close("Sell")
strategy.close("Buy")
// Support and Resistance
support = ta.lowest(low, length)
resistance = ta.highest(high, length)
plot(support, title="Support", color=color.green, linewidth=1, style=plot.style_stepline)
plot(resistance, title="Resistance", color=color.red, linewidth=1, style=plot.style_stepline)
plot(sma, title="SMA", color=color.blue, linewidth=2)
// Alerts
alertcondition(buySignal[2], title="Buy Alert", message="Buy Signal Triggered")
alertcondition(sellSignal[2], title="Sell Alert", message="Sell Signal Triggered")