Neste artigo
Depois deste artigo, saberá…
- Separar resultados sorteados dos executados antes de uma paragem.
- Calcular máximos drawdowns incluindo capital inicial e escolher a cauda correta.
- Distinguir menor ruído computacional de evidência sobre o mercado.
Conceitos sem sair do artigo
Backtesting: teste histórico de regras Drawdown — queda a partir de um máximo Plano de negociação Valor esperado (expectativa matemática) Tamanho da posiçãoUm backtest mostra um percurso realizado; uma simulação explora percursos gerados por pressupostos declarados. Ordem dos resultados, reamostragem e dimensionamento podem alterar o drawdown. O objetivo é construir e verificar um modelo simples, sem apresentar probabilidades condicionais como risco comprovado de uma conta real não especificada.
O que se está a sortear?
Monte Carlo usa sorteios repetidos de um modelo. Baralhar uma lista fixa de resultados monetários altera o percurso mas conserva a soma, se todos forem executados. Reamostrar com reposição pode alterar ambos. Um modelo paramétrico com vitórias e perdas independentes produz outra distribuição. Declare procedimento e atualização do volume antes de comparar números.
Comece pelo exemplo verificável à mão: capital 1000 unidades, resultados +200, −100, −100; percurso 1000→1200→1100→1000, drawdown máximo 200/1200≈16,67%. Outra ordem, −100, −100, +200, dá 1000→900→800→1000 e drawdown 20%. Ambos terminam em 1000. Inclua o capital inicial nos máximos; omiti-lo subestima a queda quando as primeiras operações perdem.
A regra de paragem muda o que é executado
Modelo original em USD: início 1000, lista +300, −150, −150. Verifique após cada resultado completo e termine se capital ficar em 850 USD ou menos. A ordem A executa os três e termina em 1000; B, −150, −150, +300, chega a 850 no primeiro passo e não executa os restantes. São resultados líquidos fictícios, sem reinvestimento nem fluxos. Duas trajetórias não descrevem probabilidades. A regra de 850 é exercício, não recomendação de limite financeiro.
Lista sorteada e lista executada não são a mesma coisa.
- A: +300; −150; −150
- 1000 → 1300 → 1150 → 1000 – Três resultados executados
- B: −150; −150; +300
- 1000 → 850 → paragem – Só primeiro resultado executado
- Limite
- Capital ≤850 USD – Regra do exercício, não recomendação
Os passos omitidos de B não são operações de resultado zero. Separe lista sorteada e lista executada. Restrições de capital, paragem ou mudança de volume exigem essas regras no modelo; somar indiscriminadamente uma permutação histórica não as reproduz. A função random.shuffle baralha uma sequência; a regra de terminação é uma parte adicional deste exercício.
Perguntas que a simulação pode responder
Calcule drawdown máximo em cada percurso completo e depois o percentil desses máximos. Uma banda de percentis de equity em cada instante não é uma trajetória executada. Declare a convenção de quantil: interpolação e distribuições discretas podem alterar a proporção situada abaixo de um valor. Estes resumos não são limites garantidos de perdas futuras.
No modelo original de 200 operações independentes, probabilidade de ganho 0,55, ganho líquido fixo 100 EUR e perda líquida 80 EUR, esperança por operação é 0,55×100−0,45×80=19 EUR, ou 3800 no conjunto. Se K conta vitórias, lucro final é 180K−16000 EUR. Quantis binomiais exatos, pelo menor K cuja probabilidade acumulada atinge a percentagem, são os seguintes. São valores calculados da distribuição assumida, não resultados observados nem medição de uma estratégia.
| Quantil | K mínimo | Lucro EUR |
|---|---|---|
| 1% | 94 | 920 |
| 5% | 98 | 1640 |
| 50% | 110 | 3800 |
| 95% | 122 | 5960 |
Uma folha Excel que inclui o estado inicial
As fórmulas seguintes mantêm nomes ingleses, ponto decimal e vírgulas técnicas para reproduzir o exemplo EN. Numa instalação portuguesa, traduza funções e separadores segundo a configuração; não altere números e referências indiscriminadamente. A1=0.55, A2=100, A3=−80 e A4=10000 são probabilidade, ganho, perda e capital fictícios. Em C1 coloque =$A$4, em D1 =C1 e em E1 zero. A linha 1 antecede qualquer operação.
B2: =IF(RAND()<$A$1,$A$2,$A$3)
C2: =C1+B2
D2: =MAX(D1,C2)
E2: =(D2-C2)/D2
Copie B2:E2 até à linha 201: são exatamente 200 operações. Capital final C201; drawdown máximo =MAX(E1:E201). O horizonte não significa necessariamente um ano. Este modelo de dinheiro fixo precisa de regras separadas de margem, insolvência e paragem antes de qualquer aplicação prática.
Para outra trajetória copie o bloco inteiro B:E, incluindo linha inicial, preservando referências absolutas aos parâmetros A. Mantenha distribuição de capital final separada de máximos drawdowns. Para magnitudes positivas de drawdown, =PERCENTILE.INC(range,0.95) olha a cauda adversa superior; cauda desfavorável de capital usa 0,05 ou 0,01. A função pode interpolar. RAND recalcula com a folha: conserve valores sorteados, dados e pressupostos do ensaio que quer rever.
Python e bootstrap com pressupostos explícitos
Bootstrap sorteia resultados registados, em vez de apenas dois montantes fixos assumidos. Excel também o pode fazer com fórmulas adequadas; a linguagem não decide se o modelo está correto. Para história monetária líquida não vazia, new_sequence = rng.choice(history,size=200,replace=True) permite repetição. Inclua o estado inicial no percurso: equity = np.concatenate(([initial_capital], initial_capital + np.cumsum(new_sequence))). Calcule picos correntes e drawdowns de cada trajetória antes de resumir máximos.
Registe dados, semente, versão da biblioteca, horizonte, unidades, custos e regras de paragem. Mais trajetórias reduzem ruído computacional, sem criar observações de novos regimes. Reamostrar operações individualmente quebra a ordem e não conserva agrupamentos de perdas; também não gera um choque ausente da história. Se a dependência importa, considere blocos e cenários de stress separados, reconhecendo o que a amostra limitada não contém.
Mesmos sorteios para comparar dois limiares
Modelo original: resultado +1 quando U uniforme é menor que o limiar e −1 caso contrário. A=0,55 e B=0,60 são hipotéticos. Esperanças 0,10 e 0,20, diferença B−A de 0,10. Com o mesmo U, a diferença é +2 apenas em 0,55≤U<0,60; fora desse intervalo é zero. Variância 4×0,05−0,10²=0,19. Com sorteios independentes, somam-se variâncias 0,99+0,96=1,95. A redução de ruído nesta comparação não reduz incerteza sobre probabilidades do mercado e não ajuda necessariamente estratégias arbitrárias.
Contraprova própria EUR: atribua 10 EUR a cada unidade de resultado. A diferença esperada passa a 1 EUR; variância partilhada torna-se 0,19×10²=19 EUR² e independente 195 EUR². A escala monetária não muda a razão 1,95/0,19≈10,26 nem transforma menor ruído em lucro validado. Não confunda variância, em EUR², com perda monetária ou desvio padrão, em EUR.
Limites honestos e dimensionamento
O exemplo fixo assume independência e estabilidade; o método Monte Carlo também pode modelar dependência e regimes variáveis, mas é preciso especificá-los e avaliá-los. Compare comportamento com história e condições fora dela. Walk-forward organiza períodos sucessivos, sem tornar dados já observados num teste novo ou detetar automaticamente degradação.
Dinheiro fixo e risco recalculado sobre equity produzem experiências diferentes. No modelo idealizado que perde exatamente 5% do capital corrente a cada perda, capital após n perdas é inicial×0,95n, positivo para n finito. Margem mínima, paragem prática, gaps ou perda maior mudam esse modelo. Defina falha antes do estudo e examine custos, execuções ausentes e posições sobrepostas. Um percentil simulado não é teto ou chão probabilístico comprovado do risco real.
Três ações antes de interpretar percentis
- Defina história líquida, contagem, cobertura de mercado, unidades e dimensionamento. Não negoceie só para chegar a cem operações; não existe corte universal que resolva caudas.
- Verifique à mão os percursos de três resultados e a regra de paragem. Guarde sorteios antes de aumentar repetições; uma hora ou mil trajetórias não certificam adequação.
- Examine a cauda adversa com sinais declarados: 95.º percentil para magnitudes positivas de drawdown. Ao reduzir risco ou mudar dados, execute e confira o modelo outra vez; não suponha proporcionalidade garantida nem causa de degradação a partir da mediana.
Verifique o que aprendeu
Aprox. 2 minutos de prática.
Ver resposta e explicação
A primeira perda atinge o limite e a regra é verificada nesse passo completo.
Mais perguntas
O que é Monte Carlo de uma estratégia?
Sorteios repetidos de um modelo explícito. Permutar dinheiro fixo conserva soma se não houver paragem; reposição pode alterar a soma. No exemplo independente 200 operações, probabilidade 0,55, ganho 100 EUR e perda 80 EUR, esperança 19 EUR e quantil de 5% do lucro em 1640 EUR são propriedades condicionais, não ensaio observado.
Como fazer no Excel?
Reserve linha 1 para capital inicial. A1=0.55,A2=100,A3=−80,A4=10000;C1=$A$4,D1=C1,E1=0. B2=IF(RAND()<$A$1,$A$2,$A$3),C2=C1+B2,D2=MAX(D1,C2),E2=(D2−C2)/D2; copie até à linha 201. Fórmulas aqui inglesas; ajuste nomes e separadores da instalação. Preserve sorteios antes de recalcular.
Como fazer em Python?
Defina história não vazia e use rng.choice(history,size=200,replace=True). Acrescente capital inicial antes de medir picos. Reamostragem individual quebra ordem e não cria caudas não observadas. Guarde semente, versão, custos e paragem, conferindo primeiro um percurso determinístico.
Quais são os limites?
Dependem de dados, modelo e parâmetros. A reamostragem simples não preserva dependência temporal nem choques ausentes; modelos mais complexos exigem avaliação própria. Um percentil não garante sobrevivência real e mais repetições não acrescentam regimes observados.
Fontes e verificação
- NumPy: Generator.choice
Amostragem de valores fornecidos, com ou sem reposição.
- Python: random
shuffle permuta sequência; escolhas com reposição e reprodução exigem convenção/versão.
- Microsoft: RAND
Uniforme em [0,1), recalculada com a folha.
- Microsoft: PERCENTILE.INC
k entre 0 e 1 e interpolação; não confundir amostras de capital e drawdown.
Os cálculos usam pressupostos explícitos. Não substituem os dados atuais do mercado nem as condições do prestador.
