
A estratégia é um sistema de negociação de alta qualidade, baseado no MACD (Moving Average Convergence/Divergence Indicator), que aumenta a precisão das decisões de negociação por meio de uma visualização de fundo dinâmica e vários conjuntos de parâmetros predefinidos. O núcleo da estratégia é capturar os pontos de conversão das tendências do mercado através do sinal de cruzamento do MACD e mostrar o estado de vazio do mercado de forma visual.
A estratégia usa dez diferentes configurações de parâmetros MACD, incluindo a configuração padrão (<12,26,9), curto prazo (,35,5) e longo prazo (<19,39,9)), para se adaptar a diferentes ambientes de mercado e estilos de negociação. Quando a linha MACD cruza com a linha de sinal, o sistema gera um sinal de compra e venda; Quando ocorre uma cruz de morte, o sistema gera um sinal de venda. A estratégia de sinal aumenta a identificação visual, ajudando os comerciantes a entender melhor a tendência do mercado, através de mudanças dinâmicas na cor do fundo (<<, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <, <
Esta é uma versão avançada da estratégia MACD, bem estruturada e com uma lógica clara. A utilidade e operabilidade da estratégia são grandemente aumentadas por meio de predefinições de múltiplos parâmetros e feedback visual dinâmico. Embora haja alguns riscos inerentes, a estratégia tem o potencial de se tornar um sistema de negociação robusto após a melhoria da direção de otimização fornecida.
/*backtest
start: 2024-10-12 00:00:00
end: 2024-11-11 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Hanzo - Top 10 MACD Strategy", overlay=false) // MACD in a separate pane
// Define dropdown options for MACD settings
macdOption = input.string(title="Select MACD Setting",
defval="Standard (12, 26, 9)",
options=["Standard (12, 26, 9)",
"Short-Term (5, 35, 5)",
"Long-Term (19, 39, 9)",
"Scalping (3, 10, 16)",
"Cryptocurrency (20, 50, 9)",
"Forex (8, 17, 9)",
"Conservative (24, 52, 18)",
"Trend-Following (7, 28, 7)",
"Swing Trading (5, 15, 5)",
"Contrarian (15, 35, 5)"])
// MACD setting based on user selection
var int fastLength = 12
var int slowLength = 26
var int signalLength = 9
switch macdOption
"Standard (12, 26, 9)" =>
fastLength := 12
slowLength := 26
signalLength := 9
"Short-Term (5, 35, 5)" =>
fastLength := 5
slowLength := 35
signalLength := 5
"Long-Term (19, 39, 9)" =>
fastLength := 19
slowLength := 39
signalLength := 9
"Scalping (3, 10, 16)" =>
fastLength := 3
slowLength := 10
signalLength := 16
"Cryptocurrency (20, 50, 9)" =>
fastLength := 20
slowLength := 50
signalLength := 9
"Forex (8, 17, 9)" =>
fastLength := 8
slowLength := 17
signalLength := 9
"Conservative (24, 52, 18)" =>
fastLength := 24
slowLength := 52
signalLength := 18
"Trend-Following (7, 28, 7)" =>
fastLength := 7
slowLength := 28
signalLength := 7
"Swing Trading (5, 15, 5)" =>
fastLength := 5
slowLength := 15
signalLength := 5
"Contrarian (15, 35, 5)" =>
fastLength := 15
slowLength := 35
signalLength := 5
// MACD Calculation
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
macdHist = macdLine - signalLine
// Buy and Sell conditions based on MACD crossovers
enterLong = ta.crossover(macdLine, signalLine)
exitLong = ta.crossunder(macdLine, signalLine)
// Execute buy and sell orders with price labels in the comments
if (enterLong)
strategy.entry("Buy", strategy.long, comment="Buy at " + str.tostring(close, "#.##"))
if (exitLong)
strategy.close("Buy", comment="Sell at " + str.tostring(close, "#.##"))
// Plot the signal price using plotchar for buy/sell prices
//plotchar(enterLong ? close : na, location=location.belowbar, color=color.green, size=size.small, title="Buy Price", offset=0)
//plotchar(exitLong ? close : na, location=location.abovebar, color=color.red, size=size.small, title="Sell Price", offset=0)
// Background highlighting based on bullish or bearish MACD
isBullish = macdLine > signalLine
isBearish = macdLine < signalLine
// Change background to green for bullish periods and red for bearish periods
bgcolor(isBullish ? color.new(color.green, 90) : na, title="Bullish Background")
bgcolor(isBearish ? color.new(color.red, 90) : na, title="Bearish Background")
// Plot the MACD and Signal line in a separate pane
plot(macdLine, title="MACD Line", color=color.blue, linewidth=2)
plot(signalLine, title="Signal Line", color=color.orange, linewidth=2)
hline(0, "Zero Line", color=color.gray)
plot(macdHist, title="MACD Histogram", style=plot.style_histogram, color=color.red)