
A estratégia de negociação de quantificação de inversão de movimentos de equilíbrio é um sistema de rastreamento de tendências baseado em regras, cuja lógica central gira em torno da média móvel de 21 EMAs. A estratégia monitora a relação entre o preço e a 21 EMAs, fazendo uma alta quando o preço cruza a equilíbrio acima da equilíbrio, fechando quando o preço cruza a equilíbrio abaixo da equilíbrio e fechando quando o preço cruza a equilíbrio novamente e reverte a posição. A estratégia também inclui mecanismos de controle de risco, como interrupções e interrupções de perda de tempo de negociação personalizadas, limitação do número máximo de transações por dia e bloqueio automático de transações após o primeiro lucro, com o objetivo de fornecer um sistema de negociação disciplinado e logicamente claro.
O princípio central da estratégia é capturar a dinâmica do preço em torno da 21 EMA, para realizar o acompanhamento da tendência e a negociação de reversão.
A estratégia também integra o preço médio ponderado por volume de transação (VWAP) como um indicador de referência auxiliar, fornecendo informações adicionais sobre o contexto do mercado.
Essas orientações de otimização visam aumentar a robustez e a adaptabilidade das estratégias, reduzir os falsos sinais e aumentar a lucratividade.
A estratégia de negociação de volume de inversão de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajetória de trajet
As principais vantagens da estratégia reside na sua lógica de negociação simples e intuitiva e no seu perfeito mecanismo de execução disciplinar, especialmente na sua concepção de bloqueio de negociação após o primeiro lucro, que impede efetivamente o excesso de negociação e o retorno de lucros. No entanto, a estratégia também apresenta riscos potenciais, como atraso linear, dependência excessiva de um único indicador.
A direção de otimização futura deve se concentrar na dinamização de parâmetros, confirmação de sinais multifatoriais, aumento do gerenciamento de riscos e classificação do estado do mercado, entre outros aspectos, para aumentar a capacidade de adaptação da estratégia em diferentes ambientes de mercado. Com essas otimizações, a estratégia pode se tornar um sistema de negociação quantitativa mais robusto e confiável.
Como parte do método DSPLN, esta estratégia reflete a filosofia de negociação “Do So Patiently Listening Now”, enfatizando a disciplina e a sistematização, proporcionando aos comerciantes uma estrutura de negociação que supera a interferência emocional e se concentra na execução das regras.
/*backtest
start: 2025-06-15 00:00:00
end: 2025-06-21 08:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EnvisionTrades
//@version=5
strategy("DSPLN EMA Flip Strategy v6", overlay=true)
// 🔹 Inputs
startHour = input.int(8, "Start Hour")
startMinute = input.int(30, "Start Minute")
endHour = input.int(10, "End Hour")
endMinute = input.int(30, "End Minute")
useTPSL = input.bool(true, "Use TP/SL?")
tpPoints = input.int(40, "Take Profit (points)")
slPoints = input.int(20, "Stop Loss (points)")
// 🔹 Time Filter
isWithinTradingHours = (hour > startHour or (hour == startHour and minute >= startMinute)) and
(hour < endHour or (hour == endHour and minute < endMinute))
// 🔹 Indicators
ema21 = ta.ema(close, 21)
vwap = ta.vwap
plot(ema21, title="21 EMA", color=color.orange)
plot(vwap, title="VWAP", color=color.blue)
// 🔹 State Variables
var int tradesToday = 0
var bool lastTradeWon = false
var float entryPrice = na
var label winLabel = na
var int prevTradeCount = 0
// 🔹 Entry Conditions
longEntry = isWithinTradingHours and close > ema21 and close[1] <= ema21[1]
shortEntry = isWithinTradingHours and close < ema21 and close[1] >= ema21[1]
// 🔹 Exit Conditions
longExit = strategy.position_size > 0 and close < ema21
shortExit = strategy.position_size < 0 and close > ema21
// 🔹 Trade Control
canTrade = tradesToday < 5 and not lastTradeWon
// 🔹 Entry Logic
if canTrade and strategy.position_size == 0 and longEntry
strategy.entry("Long", strategy.long)
entryPrice := close
if useTPSL
strategy.exit("TP Long", from_entry="Long", stop=close - slPoints * syminfo.mintick, limit=close + tpPoints * syminfo.mintick)
if canTrade and strategy.position_size == 0 and shortEntry
strategy.entry("Short", strategy.short)
entryPrice := close
if useTPSL
strategy.exit("TP Short", from_entry="Short", stop=close + slPoints * syminfo.mintick, limit=close - tpPoints * syminfo.mintick)
// 🔹 EMA Manual Exit Logic
if longExit
strategy.close("Long")
tradesToday += 1
lastTradeWon := close > entryPrice
if lastTradeWon
winLabel := label.new(bar_index, high, "✅ WIN - No More Trades", style=label.style_label_down, color=color.green)
if shortExit
strategy.close("Short")
tradesToday += 1
lastTradeWon := close < entryPrice
if lastTradeWon
winLabel := label.new(bar_index, low, "✅ WIN - No More Trades", style=label.style_label_up, color=color.green)
// 🔹 Detect Closed Trades (TP/SL exits)
tradeCount = strategy.closedtrades
if tradeCount > prevTradeCount
closedProfit = strategy.netprofit - strategy.netprofit[1]
tradesToday += 1
lastTradeWon := closedProfit > 0
if lastTradeWon
winLabel := label.new(bar_index, high, "✅ TP WIN - No More Trades", style=label.style_label_down, color=color.green)
prevTradeCount := tradeCount
// 🔹 Reset Daily
if (hour == endHour and minute == endMinute)
tradesToday := 0
lastTradeWon := false
entryPrice := na
prevTradeCount := 0
if not na(winLabel)
label.delete(winLabel)