A estratégia é um sistema de negociação quantitativa que combina o canal G (G-Channel) e a média móvel do índice (EMA). O núcleo da estratégia é capturar a direção da tendência do mercado através do canal G, ao mesmo tempo em que usa a EMA para a confirmação de sinais e controle de risco, para obter lucros nas flutuações bidirecionais do mercado. A estratégia adota um modelo de negociação totalmente automatizado, sem a necessidade de intervenção humana.
A estratégia opera com base em dois indicadores centrais: o canal G e a EMA. O canal G identifica a tendência dos preços através do cálculo dinâmico de ascensão e descensão, emitindo um sinal de negociação quando o preço quebra o canal.
A estratégia, combinando o canal G e os dois indicadores técnicos da EMA, constrói um sistema de negociação quantitativa robusto. A lógica da estratégia é clara, a implementação é simples e possui uma boa escalabilidade.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © stanleygao01
//@version=5
strategy('G-Channel with EMA Strategy', overlay=true)
// G-Channel parameters
length = input(100, title='G-Channel Length')
src = input(close, title='Source')
a = 0.0
b = 0.0
a := math.max(src, nz(a[1])) - nz(a[1] - b[1]) / length
b := math.min(src, nz(b[1])) + nz(a[1] - b[1]) / length
avg = math.avg(a, b)
crossup = b[1] < close[1] and b > close
crossdn = a[1] < close[1] and a > close
bullish = ta.barssince(crossdn) <= ta.barssince(crossup)
// EMA parameters
emaLength = input(50, title='EMA Length')
ema = ta.ema(close, emaLength)
// Buy and Sell Conditions
buyCondition = bullish and close < ema
sellCondition = not bullish and close > ema
// Plot G-Channel
c = bullish ? color.lime : color.red
p1 = plot(avg, title='Average', color=c, linewidth=1, transp=90)
p2 = plot(close, title='Close Price', color=c, linewidth=1, transp=100)
fill(p1, p2, color=c, transp=90)
// Plot EMA
plot(ema, title='EMA', color=color.new(color.blue, 0), linewidth=2)
// Strategy Entries and Exits
if buyCondition
strategy.entry('Buy', strategy.long)
if sellCondition
strategy.close('Buy')
// Plot Buy/Sell Labels
plotshape(buyCondition, title='Buy Signal', location=location.belowbar, color=color.new(color.lime, 0), style=shape.labelup, text='Buy')
plotshape(sellCondition, title='Sell Signal', location=location.abovebar, color=color.new(color.red, 0), style=shape.labeldown, text='Sell')