
A estratégia é um sistema de negociação baseado em binário equilíbrio de linhas de cruzamento, para negociar através da monitorização de cruzamento de 9 períodos e 21 períodos de índice de média móvel ((EMA)). A estratégia funciona em um período de 10 minutos de tempo, usando um único modelo de negociação, ou seja, não há reabertura de posições quando a posição é mantida. O sistema usa um capital inicial de 100.000, cada transação é executada com 10% dos juros da conta.
O princípio central da estratégia é aproveitar a alta sensibilidade da EMA de curto prazo às mudanças de preços do mercado em relação à EMA de longo prazo. Quando a EMA de curto prazo ((9 ciclos) sobe através da EMA de longo prazo ((21 ciclos), o sistema emite vários sinais, indicando um aumento da capacidade de oscilação de curto prazo; Quando a EMA de curto prazo atravessa o EMA de longo prazo, indicando um aumento da capacidade de queda de curto prazo, o sistema emite um sinal de equilíbrio. A estratégia garante que apenas uma transação seja realizada ao mesmo tempo, controlando efetivamente o risco.
Trata-se de uma estratégia de cruzamento de equilíbrio linear, concebida de forma racional e com lógica clara. A captura de tendências de mercado através de cruzamento de EMAs, em combinação com o modelo de negociação único e o gerenciamento de posições percentuais, permite um equilíbrio entre riscos e ganhos. Apesar de algumas limitações inerentes, a estabilidade e a adaptabilidade da estratégia podem ser melhoradas com o direcionamento de otimização da recomendação.
/*backtest
start: 2024-02-25 00:00:00
end: 2025-02-22 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=6
strategy("EMA Crossover Labels (One Trade at a Time)", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// ==== User Inputs ====
// Set the testing timeframe (ensure the chart is on a 10-min timeframe)
testTimeFrame = input.timeframe("10", "Strategy Timeframe")
// EMA period inputs
emaPeriod9 = input.int(9, "EMA 9 Period", minval=1)
emaPeriod21 = input.int(21, "EMA 2q Period", minval=1)
// ==== Retrieve Price Data ====
// For simplicity, we use the chart's timeframe (should be 10-min)
price = close
// ==== Calculate EMAs ====
ema9 = ta.ema(price, emaPeriod9)
ema21 = ta.ema(price, emaPeriod21)
// ==== Define Crossover Conditions ====
// Buy signal: when EMA9 crosses above EMA21 AND no current position is open
buySignal = ta.crossover(ema9, ema21) and strategy.position_size == 0
// Sell signal: when EMA9 crosses below EMA21 AND a long position is active
sellSignal = ta.crossunder(ema9, ema21) and strategy.position_size > 0
// ==== Strategy Orders ====
// Enter a long position when a valid buy signal occurs
if buySignal
strategy.entry("Long", strategy.long)
alert("Long Signal: " + syminfo.tickerid + " - EMA9 crossed above EMA21", alert.freq_once_per_bar_close)
// Exit the long position when a valid sell signal occurs
if sellSignal
strategy.close("Long")
alert("Sell Long Signal: " + syminfo.tickerid + " - EMA9 crossed below EMA21", alert.freq_once_per_bar_close)
// ==== Plot Buy/Sell Labels ====
// Only plot a "Buy" label if there's no open position
plotshape(buySignal, title="Buy Label", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy", textcolor=color.white)
// Only plot a "Sell" label if a position is active
plotshape(sellSignal, title="Sell Label", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", textcolor=color.white)
// ==== Plot EMAs for Visualization ====
plot(ema9, color=color.blue, title="EMA 21")
plot(ema21, color=color.orange, title="EMA 21")