
O NOCTURNA v2.0 Shadow Engine é um sistema de negociação multi-modo altamente complexo e adaptável, capaz de alternar automaticamente entre diferentes estratégias de negociação de acordo com as condições do mercado. O sistema inclui quatro principais modos de negociação: EVE (transação de grade), Lucifer (transação de ruptura), Reaper (transação de reversão) e Sentinel (transição de tendência), e é equipado com um módulo de gerenciamento de risco inteligente e um sistema de stop loss de rastreamento adaptável que permite identificar automaticamente o estado do mercado e escolher as estratégias de negociação mais ótimas em diferentes ambientes de mercado, como oscilações horizontais, tendências, reversões e rupturas, para maximizar as oportunidades de lucro e controlar o risco.
O núcleo da NOCTURNA v2.0 está em sua identificação de status de mercado e seu mecanismo de comutação adaptável em vários modos:
Identificação do estado do mercado:
math.abs(ema50 - ema50[10]) < atr * 0.25)math.abs(ema50 - ema200) > atr and macdLine > signalLine)ta.crossover(ema8, ema34) or ta.crossunder(ema8, ema34))ta.crossover(close, ema200) or ta.crossunder(close, ema200))Lógica de comutação de modo:
Modos de negociação lógicos:
gridSpacing)Gestão de Riscos:
volatilitySpike): Bloqueio automático de entrada em ambientes de alta volatilidadeatr * atrMultSL)tpTarget * close)trailTriggeretrailOffset)Forte adaptaçãoO sistema é capaz de identificar automaticamente o estado do mercado e mudar para o modo de negociação mais adequado, sem a necessidade de intervenção humana, sendo altamente adaptável.
Cobertura total do mercadoO sistema é capaz de responder a quase todas as situações de mercado, incluindo oscilações horizontais, tendências claras, reversões de mercado e brechas de níveis críticos, através de quatro modos de negociação diferentes.
Efeito de retorno de lucro das transações em gridsO EVE permite que as transações de grelha multi-camadas capturem pequenas flutuações em mercados turbulentos e gerem um efeito de recuperação de lucros por meio de pequenos ganhos frequentes.
Gerenciamento de riscos em várias camadasA estratégia integra mecanismos de controle de risco em vários níveis, incluindo filtragem de volatilidade, stop loss fixo, stop loss de rastreamento e gerenciamento automático de posições, para controlar efetivamente o risco de uma única transação.
Perda de rastreamento inteligenteO sistema de paralisação de perdas é iniciado automaticamente quando o nível de lucro predeterminado é atingido, bloqueando parte do lucro e dando ao preço espaço suficiente para respirar, evitando que o mercado seja sacudido prematuramente.
Interface de visualizaçãoO painel HUD embutido mostra em tempo real os modelos de negociação atualmente ativados e o número de grades abertas, aumentando a monitorização e a transparência operacional da estratégia.
Sistema de alertaO sistema de alertas em formato JSON e de leitura humana é integrado para facilitar a captação de sinais por traders manuais e robôs de negociação automatizados.
Sensibilidade do parâmetroA estratégia depende de vários parâmetros-chave para julgar o estado do mercado e executar as transações (como o ciclo EMA, o intervalo de grade, o múltiplo ATR, etc.). A configuração inadequada dos parâmetros pode levar a sinais errados frequentes ou a excessos de transações. A solução é o otimização dos parâmetros por meio de feedback e ajuste dos parâmetros para diferentes mercados e prazos de tempo.
Atraso na mudança de modoO mercado pode ter atrasos no julgamento do estado e na mudança de padrão, o que pode levar a estratégias inadequadas perto dos pontos de inflexão. Isso pode ser melhorado com a introdução de mais indicadores de sinais precoces ou com um menor ciclo de julgamento.
Risco de tendência de transações em gridsA negociação em grelha no modo EVE pode continuar a ser correta e perdedora em mercados de forte tendência. A solução é definir limites de risco gerais e filtros de tendência, ou suspender a negociação em grelha após a identificação de uma tendência clara.
Excessiva dependência de indicadores técnicosA estratégia baseia-se principalmente em indicadores técnicos tradicionais, como EMA e MACD, que podem falhar em certas condições de mercado. A análise integrada de relações de preço e quantidade ou algoritmos de identificação de estrutura de mercado são recomendados para aumentar a precisão do julgamento.
Complexidade do sistemaA complexidade dos sistemas multimodo aumenta a dificuldade de manutenção de código e compreensão de estratégias, o que pode dificultar a resposta rápida a anomalias no disco rígido. Devem ser estabelecidos processos de teste e mecanismos de tratamento de emergência.
Ajuste de parâmetros dinâmicosA estratégia atual usa parâmetros fixos, que podem ser otimizados para ajustar automaticamente os parâmetros de acordo com a volatilidade do mercado, por exemplo:
Análise de Multi-Framas de TempoIntrodução de análise de múltiplos prazos para garantir que a direção da negociação esteja de acordo com a tendência do período mais longo, evitando a negociação inversa na direção da tendência principal. Isso pode ser feito analisando EMAs e MACDs de prazos mais longos.
Segmentação do estado do mercadoSegmentar ainda mais o estado do mercado, por exemplo, distinguindo entre tendências fortes e fracas, oscilações regulares e oscilações de contração, etc., e personalizar os parâmetros de negociação para estados de mercado mais segmentados.
Integração de relações de preço e quantidade: Integração da análise de volume nas estratégias, especialmente nas transações de ruptura (modelo LUCIFER), filtrando as falsas rupturas confirmando se a ruptura foi acompanhada de um aumento no volume de transações.
Gestão de posições adaptada: Ajustar o tamanho da posição de acordo com a volatilidade do mercado, a probabilidade de vencimento do modelo e a dinâmica da situação atual de perdas e prejuízos, aumentar a posição em sinais de alto grau de certeza e reduzir a abertura de risco em um ambiente incerto.
Aprendizagem de máquinaIntrodução de algoritmos de aprendizagem de máquina para otimizar a seleção de padrões e ajustes de parâmetros, usando modelos de treinamento de dados históricos para prever quais padrões são mais eficazes no atual ambiente de mercado.
A fusão dos indicadores emocionaisA integração de indicadores de sentimento de mercado (como o VIX ou o índice de pânico de um mercado específico), o ajuste de ações estratégicas ou a suspensão de negociação em um ambiente de extrema emoção.
O NOCTURNA v2.0 Shadow Engine é um inovador sistema de negociação auto-adaptável multimodo, que fornece estratégias de negociação especificamente otimizadas para diferentes ambientes de mercado por meio da identificação inteligente do estado do mercado e da troca de estratégias. Ele combina as vantagens da negociação de grelha, rastreamento de tendências, negociação de reversão e negociação de ruptura, além de ser equipado com um mecanismo abrangente de gerenciamento de risco, incluindo stop loss dinâmico, stop loss de rastreamento inteligente e filtragem de volatilidade.
A principal vantagem da estratégia é a sua abrangência e adaptabilidade ao mercado, permitindo manter um desempenho estável em diferentes ambientes de mercado. No entanto, a complexidade e a sensibilidade dos parâmetros do sistema também trazem certos riscos e desafios de otimização. A estratégia promete aumentar ainda mais a sua estabilidade e lucratividade, através da introdução de medidas de otimização, como o ajuste de parâmetros dinâmicos, a análise de múltiplos quadros temporais, a segmentação de estados de mercado mais detalhados e o aprimoramento da aprendizagem de máquina.
Finalmente, a NOCTURNA v2.0 fornece uma estrutura de negociação robusta, adequada para os comerciantes experientes, que pode ser aplicada em negociações em disco rígido, com o devido gerenciamento de risco, ou como um modelo básico para o desenvolvimento de sistemas de negociação mais complexos.
/*backtest
start: 2025-02-01 00:00:00
end: 2025-06-02 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("NOCTURNA v2.0 – Shadow Engine: Trail Edition", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=2)
// === USER SETTINGS ===
useSL = true
useTP = true
useTrail = true
trailTrigger = 1.5 // % before trail starts
trailOffset = 0.75 // % trail distance
manualMode = input.string("AUTO", title="Mode", options=["AUTO", "EVE", "LUCIFER", "REAPER", "SENTINEL"])
gridSpacing = 0.015
maxLayers = 4
atrMultSL = 1.5
tpTarget = 0.015
// === INDICATORS ===
ema8 = ta.ema(close, 8)
ema34 = ta.ema(close, 34)
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
atr = ta.atr(14)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
volatilitySpike = math.abs(close - open) > 3 * atr
// === AUTO MODE LOGIC ===
isRanging = math.abs(ema50 - ema50[10]) < atr * 0.25
isTrending = math.abs(ema50 - ema200) > atr and macdLine > signalLine
isReversing = ta.crossover(ema8, ema34) or ta.crossunder(ema8, ema34)
isBreakout = ta.crossover(close, ema200) or ta.crossunder(close, ema200)
var string activeMode = "None"
if manualMode != "AUTO"
activeMode := manualMode
else
if isRanging
activeMode := "EVE"
else if isReversing
activeMode := "REAPER"
else if isTrending
activeMode := "SENTINEL"
else if isBreakout
activeMode := "LUCIFER"
// === BASE FOR GRID ===
var float basePrice = na
if na(basePrice) or activeMode != "EVE"
basePrice := close
var int openTrades = 0
openTrades := 0
// === GRID (EVE) ===
for i = 1 to maxLayers
longLevel = basePrice * (1 - gridSpacing * i)
shortLevel = basePrice * (1 + gridSpacing * i)
if activeMode == "EVE" and not volatilitySpike
if close <= longLevel
id = "EVE L" + str.tostring(i)
strategy.entry(id, strategy.long)
sl = close - atrMultSL * atr
tp = useTP ? close + tpTarget * close : na
strategy.exit("TP/SL " + id, from_entry=id, stop=useSL ? sl : na, limit=tp)
openTrades += 1
if close >= shortLevel
id = "EVE S" + str.tostring(i)
strategy.entry(id, strategy.short)
sl = close + atrMultSL * atr
tp = useTP ? close - tpTarget * close : na
strategy.exit("TP/SL " + id, from_entry=id, stop=useSL ? sl : na, limit=tp)
openTrades += 1
// === TRAILING STOP FUNCTION ===
f_trailStop(side, id) =>
if useTrail
trigger = close * (trailTrigger / 100)
offset = close * (trailOffset / 100)
if side == "long"
strategy.exit("Trail " + id, from_entry=id, trail_price=trigger, trail_offset=offset)
else
strategy.exit("Trail " + id, from_entry=id, trail_price=trigger, trail_offset=offset)
// === LUCIFER MODE ===
if activeMode == "LUCIFER" and not volatilitySpike
if ta.crossover(close, ema50)
strategy.entry("Lucifer Long", strategy.long)
f_trailStop("long", "Lucifer Long")
if ta.crossunder(close, ema50)
strategy.entry("Lucifer Short", strategy.short)
f_trailStop("short", "Lucifer Short")
// === REAPER MODE ===
if activeMode == "REAPER" and not volatilitySpike
if ta.crossover(ema8, ema34)
strategy.entry("Reaper Long", strategy.long)
f_trailStop("long", "Reaper Long")
if ta.crossunder(ema8, ema34)
strategy.entry("Reaper Short", strategy.short)
f_trailStop("short", "Reaper Short")
// === SENTINEL MODE ===
if activeMode == "SENTINEL" and not volatilitySpike
if ema50 > ema200 and macdLine > signalLine
strategy.entry("Sentinel Long", strategy.long)
f_trailStop("long", "Sentinel Long")
if ema50 < ema200 and macdLine < signalLine
strategy.entry("Sentinel Short", strategy.short)
f_trailStop("short", "Sentinel Short")
// === DASHBOARD PANEL ===
var label panel = na
label.delete(panel)
panel := label.new(bar_index, high,
"NOCTURNA v2.0\nMode: " + activeMode + "\nOpen Grids: " + str.tostring(openTrades),
style=label.style_label_left, textcolor=color.white, color=color.black)
// === ALERTS – Human Readable
alertcondition(activeMode == "EVE", title="EVE Signal", message="🕊️ NOCTURNA: EVE Grid")
alertcondition(activeMode == "LUCIFER", title="Lucifer Signal", message="🔥 NOCTURNA: LUCIFER Breakout")
alertcondition(activeMode == "REAPER", title="Reaper Signal", message="☠️ NOCTURNA: REAPER Reversal")
alertcondition(activeMode == "SENTINEL", title="Sentinel Signal", message="🛡️ NOCTURNA: SENTINEL Trend")
// === ALERTS – JSON for Bots
alertcondition(activeMode == "EVE", title="JSON EVE", message='{"mode":"EVE","ticker":"{{ticker}}","price":"{{close}}"}')
alertcondition(activeMode == "LUCIFER", title="JSON LUCIFER", message='{"mode":"LUCIFER","ticker":"{{ticker}}","price":"{{close}}"}')
alertcondition(activeMode == "REAPER", title="JSON REAPER", message='{"mode":"REAPER","ticker":"{{ticker}}","price":"{{close}}"}')
alertcondition(activeMode == "SENTINEL", title="JSON SENTINEL", message='{"mode":"SENTINEL","ticker":"{{ticker}}","price":"{{close}}"}')
// === VISUAL PLOT
plot(ema50, title="EMA 50", color=color.gray)