
A estratégia quantitativa “Multi Indicator Fusion POMDP Inspired Trading System” é uma estratégia de negociação baseada em análise técnica e parcialmente observável Markov Decision Process (POMDP). A estratégia combina de forma inteligente os indicadores aleatórios de força e fraqueza (RSI estocástico), os indicadores de fluxo de caixa (MFI), as faixas de Bollinger (Bollinger Bands) e os indicadores de dispersa de conclusão de média móvel (MACD) para gerar sinais de compra e venda. A ideia central da estratégia é construir um quadro de decisão POMDP para responder à incerteza e parcial observabilidade dos mercados financeiros através da observação multidimensional do estado do mercado. A estratégia é especialmente adequada para cenários de negociação com previsão adequada da evolução dos preços, estabelecendo regras de entradas e saídas e implementando um sistema de negociação de risco controlado.
O princípio central da estratégia é baseado na ideia do processo de decisão de Markov parcialmente observável (POMDP), que considera o mercado como um sistema de estado parcialmente visível. O estado do mercado é observado através dos seguintes indicadores técnicos-chave:
Bandas de Bollinger: Usando uma média móvel simples de 20 ciclos como trajectória central, o diferencial padrão é de 2,0, formando uma trajetória ascendente e descendente, usada para identificar intervalos de flutuação de preços.
Indicador aleatório de força e fraqueza (RSI estocástico): Combina os benefícios do RSI e dos indicadores aleatórios, definindo um comprimento de 14 ciclos e um parâmetro de smoothing de 3 ciclos para identificar um estado de sobrevenda. Quando o valor de K é inferior a 30 é considerado um excesso de venda, e acima de 70 é considerado um excesso de compra.
Indicadores de fluxo de capital (IFM)MFI abaixo de 40 é considerado um sinal de sobrevenda, e acima de 60 um sinal de sobrecompra.
Indicador MACD: Usando a configuração de parâmetros 12/26/9, a relação entre a linha MACD e a linha de sinal é usada para confirmar a direção da tendência.
As regras de decisão da estratégia são as seguintes:
A estratégia também implementa um mecanismo de saída automática baseado no tempo, com a configuração de liquidação automática após 5 ciclos de posse, o que controla efetivamente o risco de tempo de posse.
Confirmação de sinal multidimensionalAo combinar vários indicadores técnicos (Stochastic RSI, MFI, MACD), a estratégia pode observar o estado do mercado de diferentes perspectivas, reduzindo o risco de sinais enganosos que um único indicador pode trazer.
Adaptabilidade da estrutura POMDPA introdução do pensamento POMDP permite que a estratégia tome decisões relativamente otimizadas sob condições de incerteza e parcial observabilidade, mais em consonância com o contexto real do mercado.
Controle de riscos claroAo definir um período de saída fixo (cinco ciclos), a estratégia permite o controle de risco em dimensões temporais, evitando a expansão de perdas causadas por tendências adversas de longo prazo.
Complementaridade dos indicadores técnicosO RSI estocástico reflete principalmente a dinâmica dos preços, o MFI combina informações sobre preços e volumes de transação, o MACD capta mudanças de tendência, a faixa de Brin define os limites de flutuação. Esses indicadores se complementam e aumentam a confiabilidade do sinal.
Robustez da implementação do códigoA estratégia usa math.sum em vez de ta.sum para calcular o MFI, corrigindo possíveis erros de cálculo e aumentando a estabilidade da estratégia.
Capacidade de execução automáticaA implementação do Pine Script baseado no TradingView permite que as estratégias gerem e executem sinais de negociação automaticamente, reduzindo a interferência humana e o impacto emocional.
A limitação do limite de sobrevendaA estratégia usa limites fixos de sobrecompra e sobrevenda (30⁄70 para o RSI estocástico e 40⁄60 para o MFI), que podem não ser sempre otimizados em diferentes cenários de mercado e produtos, podendo levar à diminuição da qualidade do sinal.
A espada de dois gumes do mecanismo de saída do tempoO mecanismo de saída de 5 ciclos fixos, embora controle os riscos, também pode sair prematuramente de uma tendência favorável, limitando os potenciais ganhos.
Risco de redundância em vários indicadoresEmbora vários indicadores forneçam confirmação multidimensional, pode haver uma certa correlação e redundância entre os indicadores, o que pode levar a um desvio de amplificação do sinal em certas condições de mercado.
Inadequada adaptação ao mercado de tendênciasA estratégia baseia-se principalmente em sinais de sobrevenda e reversão, que podem gerar muitos sinais errados em mercados de forte tendência, resultando em transações frequentes e custos desnecessários.
Parâmetros de dependência de otimizaçãoA eficácia da estratégia depende muito da configuração dos parâmetros de cada indicador. Diferentes condições de mercado podem exigir diferentes combinações de parâmetros, aumentando a complexidade de manutenção e ajuste da estratégia.
Ausência de mecanismos de adaptação à volatilidadeA estratégia não possui mecanismos de adaptação às variações na volatilidade do mercado, o que pode gerar mais falsos sinais em um ambiente de alta volatilidade.
Mecanismo de ajuste de parâmetros dinâmicosIntrodução de mecanismos de auto-adaptação de parâmetros baseados em condições de mercado, como o ajustamento do diferencial padrão das faixas de Bryn sobre a volatilidade ou o ajustamento do limiar de sobrecompra e sobrevenda de acordo com a intensidade da tendência de mercado, para melhorar a adaptabilidade da estratégia em diferentes ambientes de mercado.
Mecanismo de stop loss perfeitoAlém do mecanismo de saída de dimensão temporal, adicionar mecanismos de stop loss baseados em mudanças de preço, como a definição de pontos de stop loss baseados em ATR, para melhorar a abrangência da gestão de risco.
Filtros ambientais de mercadoAumentar módulos de identificação de cenários de mercado, como indicadores de intensidade de tendência ou indicadores de volatilidade, reduzir ou suspender a negociação em cenários de mercado que não são adequados para a estratégia, evitando o excesso de negociação em condições adversas.
Sistema de classificação de qualidade de sinalDesenvolver um mecanismo de classificação de qualidade do sinal, avaliando os sinais de acordo com a consistência de vários indicadores, o ambiente do mercado, o sucesso do sinal histórico e outros fatores, executando apenas sinais de alta qualidade, aumentando a eficácia da estratégia.
Aprendizagem de máquinaO POMDP é uma ferramenta que combina a estrutura POMDP com métodos de aprendizagem de máquina para otimizar a estratégia de decisão através do treinamento de dados históricos, permitindo que o sistema aprenda e melhore a partir de transações passadas.
Otimização da estratégia de gestão de fundosIntrodução de mecanismos de gestão de posições dinâmicas, ajustando a escala de negociação de acordo com a intensidade do sinal, o estado do mercado e o risco da conta, para uma gestão de fundos mais científica.
O Multi Indicator Fusion POMDP Illuminated Trading System (MIFT) é uma estratégia de negociação quantitativa que combina vários indicadores técnicos com a estrutura de decisão do POMDP. A estratégia resolve, em parte, a observabilidade parcial do mercado, fornecendo confirmação de sinal multidimensional para decisões de negociação, através da sinergia de indicadores como Stochastic RSI, MFI, MACD e Brinks.
A principal vantagem da estratégia reside na sua capacidade de observação do mercado de vários ângulos e no mecanismo de controle de risco definido, mas também enfrenta o desafio de dependência de otimização de parâmetros e insuficiente adaptabilidade a certos contextos de mercado. A estratégia tem o potencial de aumentar ainda mais sua robustez e adaptabilidade, introduzindo otimização de parâmetros dinâmicos, aperfeiçoando os mecanismos de parada de perdas e aumentando os filtros de ambiente de mercado.
Em geral, é um sistema de negociação quantitativa concebido de forma racional e lógica, especialmente para os comerciantes que têm alguma capacidade de previsão do mercado, mas que desejam controlar o risco. A estratégia pode ser uma ferramenta eficaz no kit de ferramentas dos comerciantes, através da otimização contínua e adaptação a diferentes ambientes de mercado.
/*backtest
start: 2024-07-22 00:00:00
end: 2025-07-20 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":2000000}]
*/
//@version=6
strategy("Debit Spread POMDP‑Inspired Strategy", overlay=true, margin_long=100, margin_short=100)
// ——— Constants
const int K_OVERSOLD = 30
const int K_OVERBOUGHT = 70
const int MFI_OVERSOLD = 40
const int MFI_OVERBOUGHT = 60
const int EXIT_BARS = 5
// ——— User inputs
stochLength = input.int(14, "Stochastic RSI length")
stochSmooth = input.int(3, "Stochastic smoothing")
mfiLength = input.int(14, "MFI length")
bbLength = input.int(20, "Bollinger length")
bbStdDev = input.float(2.0, "Bollinger std dev")
macdFast = input.int(12, "MACD fast length")
macdSlow = input.int(26, "MACD slow length")
macdSignal = input.int(9, "MACD signal length")
// ——— Bar index tracking for exits
var int callEntryBar = na
var int putEntryBar = na
// ——— Bollinger Bands
basis = ta.sma(close, bbLength)
upper = basis + bbStdDev * ta.stdev(close, bbLength)
lower = basis - bbStdDev * ta.stdev(close, bbLength)
// ——— Stochastic RSI
rsi = ta.rsi(close, stochLength)
k = ta.sma(ta.stoch(rsi, rsi, rsi, stochLength), stochSmooth)
d = ta.sma(k, stochSmooth)
// ——— Manual MFI calculation (FIXED: using math.sum)
tp = (high + low + close) / 3.0
rawMF = tp * volume
posFlow = (tp > tp[1] ? rawMF : 0.0)
negFlow = (tp < tp[1] ? rawMF : 0.0)
posMF = math.sum(posFlow, mfiLength) // FIXED: math.sum instead of ta.sum
negMF = math.sum(negFlow, mfiLength) // FIXED: math.sum instead of ta.sum
moneyRatio = negMF != 0 ? posMF / negMF : 0.0
mfi = negMF != 0 ? 100 - 100 / (1 + moneyRatio) : 0.0
// ——— Manual MACD calculation
fastMA = ta.ema(close, macdFast)
slowMA = ta.ema(close, macdSlow)
macdLine = fastMA - slowMA
signalLine = ta.ema(macdLine, macdSignal)
// ——— POMDP‑inspired decision rules
bullCondition = ((k < K_OVERSOLD) or (mfi < MFI_OVERSOLD)) and (macdLine > signalLine)
bearCondition = ((k > K_OVERBOUGHT) or (mfi > MFI_OVERBOUGHT)) and (macdLine < signalLine)
if bullCondition
strategy.entry("CallDebit", strategy.long)
callEntryBar := bar_index // Track entry bar
if bearCondition
strategy.entry("PutDebit", strategy.short)
putEntryBar := bar_index // Track entry bar
// FIXED: Manual time-based exits using bar_index
if not na(callEntryBar) and bar_index >= callEntryBar + EXIT_BARS
strategy.close("CallDebit")
callEntryBar := na
if not na(putEntryBar) and bar_index >= putEntryBar + EXIT_BARS
strategy.close("PutDebit")
putEntryBar := na
// ——— Plots
plot(basis, color=color.gray, linewidth=1, title="BB Basis")
plot(upper, color=color.orange, linewidth=1, title="BB Upper")
plot(lower, color=color.orange, linewidth=1, title="BB Lower")
plot(k, title="%K", color=color.blue)
plot(d, title="%D", color=color.purple)
plot(mfi, title="MFI", color=color.green)
plot(macdLine - signalLine, title="MACD Histogram", color=color.red, style=plot.style_columns)