Sunday 18 March 2018

Sistema de negociação simulação monte carlo


Sistema de negociação simulação monte carlo
NOTA: tópico avançado. Certifique-se de ler as partes anteriores do tutorial primeiro. Para interpretar corretamente os resultados da simulação de Monte Carlo, você precisa ler esta seção do manual. Configurações não triviais e detalhes não óbvios são explicados abaixo. Por favor, não salte.
De um modo geral, "Monte Carlo" Os métodos representam uma ampla classe de algoritmos de computador que usam amostragem aleatória repetida para obter propriedades estatísticas de determinado processo. Foi inventado pela matemática polaca Stanislaw Ulam trabalhando em projetos de armas nucleares no laboratório Los Alamos. Como ele não conseguiu analisar processos físicos complexos usando métodos matemáticos convencionais, ele pensou que ele poderia criar uma série de experiências aleatórias, observar os resultados e usá-los para obter propriedades estatísticas do processo.
No desenvolvimento do sistema de negociação, a simulação de Monte Carlo refere-se ao processo de utilização de seqüências de comércio simuladas aleatorizadas para avaliar as propriedades estatísticas de um sistema comercial.
Há muitas maneiras de executar cálculos reais que diferem quando se trata de detalhes de implementação, mas provavelmente o mais simples e confiável é o método de inicialização que realiza amostragem aleatória com a substituição da lista de comércio real gerada pelo back-test.
Vários métodos de simulação de Monte Carlo permitem verificar a robustez do sistema de negociação, descobrir a probabilidade de ruína e muitas outras propriedades estatísticas do sistema de negociação.
Como funciona em AmiBroker?
Para realizar a simulação de Monte Carlo (ou teste de inicialização) do seu sistema de negociação, a AmiBroker executa o seguinte:
A. Criando conjunto de entrada.
A.1 Realizar back-testing do seu sistema de negociação para produzir o conjunto original de N trades.
B. repetidamente (1000 vezes)
B.1 escolha aleatoriamente trocas da lista de comércio original para produzir novo conjunto aleatório de N trades (chamado 'realização')
Este conjunto aleatório contém o mesmo número de negócios, eles são ordenados aleatoriamente e algumas negociações originais podem ser ignoradas e algumas usadas mais de uma vez (permutação com repetição ou amostragem aleatória com substituição).
Uma vez que o número de realizações únicas é N ^ N (então, com apenas 100 negócios de entrada, temos 100 100 realizações únicas), com número suficiente de negócios (& gt; 100) a probabilidade de escolher uma seqüência idêntica como original é praticamente zero.
B.2 executam sequencialmente cálculo de ganhos / perdas para cada comércio escolhido aleatoriamente, usando o dimensionamento de posição definido pelo usuário para produzir equidade no sistema.
B.3 registar a equidade do sistema na distribuição.
C.1 Dados do processo obtidos em B para gerar estatísticas e gráficos de distribuição.
Tudo o que acontece acima acontece quando você pressiona o botão Backtest na janela New Analysis. O simulador de Monte Carlo da AmiBroker é tão rápido que costuma ser apenas uma fração de segundo em relação ao procedimento de teste normal.
Deve ser bem notado que os negócios simulados durante o bootstrap são realizados sequencialmente. Se o seu sistema de negociação original negociasse várias posições ao mesmo tempo (então, algumas ou todas as negociações estão sobrepostas), isso pode resultar em reduções menores do sistema sendo relatadas pelo teste de inicialização, porque as retiradas de transações individuais ocorreram de forma sequencial (não em paralelo, como acontece com as transações sobrepostas ).
A maneira como o simulador Monte Carlo funciona pode ser controlada a partir da página Configurações de análise, "Monte Carlo" aba:
Habilite a simulação de Monte Carlo.
Esta caixa de seleção controla sempre que a simulação MC é executada automaticamente como parte do backtest (logo após o backtest gerar lista comercial)
define o número de simulações MC para executar (deve ser 1000 ou mais)
Simule o uso de mudanças na equivalência do portfólio.
esta opção faz com que a simulação de MC use modificações de porcentagem de equivalência de portfólio bar-by-bar ao invés de transações individuais. Essas mudanças de equidade individuais são escolhidas aleatoriamente e permutadas para criar a execução da simulação. Neste modo, as mudanças de capital bar-by-bar são calculadas como proporção (portanto, o aumento de 10% é representado como 1.1), selecionado aleatoriamente e multiplicado cumulativamente. Esta configuração permite lidar com situações quando você possui vários negócios sobrepostos em seu sistema e não requer nenhuma configuração especial para dimensionamento de posição.
Simule usando a lista de comércio.
Essa opção faz com que a simulação MC use transações individuais do backtest original para criar a execução de simulação. Para executar a simulação nesse modo, o simulador de MC escolhe aleatoriamente negócios originais e aplica novo dimensionamento de posição conforme definido abaixo. Este modo é útil nos casos em que você não possui trocas sobrepostas.
define o método de dimensionamento de posição usado pelo simulador de MC em "lista de comércio" modo:
Não mude - usa o tamanho da posição original, conforme utilizado durante o backtest. Tenha em mente que ele sempre usa o valor em dólar original do comércio (ou qualquer moeda que você usa), mesmo que sua fórmula esteja usando porcentagem do patrimônio da carteira.
Tamanho fixo - usa número fixo de ações / contratos por negociação.
Valor constante - usa valor fixo em dólares para abrir qualquer operação comercial.
Porcentagem do patrimônio líquido - usa porcentagem definida do valor atual do capital simulado. Tenha cuidado ao usar esta configuração - faz com que o tamanho da posição de um comércio dependa dos lucros em negócios anteriores (acumulando lucros) e crie dependência em série. Isso também pode levar a um efeito de composição extra quando você possui transações sobrepostas em seu backtest original, pois o bootstrap executa negócios de maneira seqüencial (portanto, eles não se sobrepõem). Por esse motivo, seu uso é limitado aos casos em que não ocorrem trocas sobrepostas.
Habilite as curvas de equidade do MC (Min / Max / Avg)
liga os gráficos de equivalência patrimonial (incluindo os gráficos de capital mais altos, mais baixos e médios, além dos gráficos de capital da vassoura de palha). Observe que as linhas verdes e vermelhas (min / equidade máxima) não são realmente únicas "melhor" e "pior" ações. São os pontos mais altos (max) e mais baixos (mínimos) de TODAS as ações geradas durante o MC.
Então eles são realmente melhores pontos de todas as ações e os piores pontos de todas as ações. E a linha azul (média) é a média de todas as linhas de equidade (todas as corridas).
Mostrar valores absolutos s em escala linear - exibe ações em valores absolutos do dólar usando gráfico de escala linear.
Mostre o valor absoluto s na escala logarítmica - exibe ações em valores absolutos do dólar usando o gráfico semi-logarítmico.
Mostrar variação percentual - exibe ações como "taxa de mudança" desde o começo.
Parcelas de gráfico de vassoura de palha - define quantos equivalentes de teste individuais devem ser plotados como "gráfico de vassoura de palha" (o grande número pode diminuir o processamento / desenho)
Use a escala logarítmica para Final Equity.
Exibe gráfico CDF de capital final usando uma escala semi-logarítmica em vez de linear.
Use a escala logarítmica para $ Drawdown.
Exibe gráfico CDF de redução de dólar usando uma escala semi-logarítmica em vez de linear.
Use números negativos para Drawdown (Drawdown CDF reverso)
Quando esta opção está ativada, tanto o dólar como o percentual de redução são relatados como números negativos. Isso também afetou a distribuição de CDF. Inverte o pedido de "remoção" coluna na tabela MC e inverte o significado (ou seja, o valor do percentil de 10% significa que há 10% de chances de que as retiradas sejam iguais ou pior (mais negativas) do que o valor apresentado. Com esta opção desativada (como em versões antigas), as retiradas são relatado como números maiores do que zero (positivo) e 10% do valor percentil significa 10% de chances de que as remessas sejam iguais ou melhores (menor) do que a quantidade apresentada.
Para remover os riscos de correlação em série que afete os resultados da simulação de Monte Carlo, é altamente encorajado a usar o dimensionamento de posição fixo (valor fixo em dólares de negociações ou número fixo de ações / contratos), de modo que a ordem em que ocorreu o comércio ocorre na sequência original não afeta o lucro / perda devido à composição.
Também dependendo sempre que o sistema abrir várias posições sobrepostas, escolha o método de simulação da seguinte maneira.
Simule usando a lista de comércio - para sistemas com trades que não se sobrepõem.
Os resultados da simulação de Monte Carlo são exibidos no "Monte Carlo" página do relatório Backtest.
No topo da página, podemos ver uma tabela que fornece valores de algumas estatísticas-chave derivadas dos gráficos de distribuição cumulativa (CDFs) dos resultados da simulação de Monte Carlo.
Aqui estão os resultados da amostra (os destaques são adicionados manualmente para fins de ilustração). O patrimônio inicial foi de 10000 neste exemplo. O teste foi feito ao longo de 7 anos (dados EOD).
A primeira coluna mostra o nível percentil (o valor abaixo do qual uma determinada porcentagem de observações de teste (realizações) cai). Então, digamos que o 10º percentil nos diz que 10% do valor observado no tempo está abaixo do valor mostrado. Por exemplo, o valor de retorno anual no 10º pecentile (neste caso -0,41%) significa que 10% dos testes (realizações) tiveram lucro anual menor ou igual ao mostrado (-0,41%). Então, podemos dizer que há cerca de 10% de chances de que nosso sistema não faça nenhum dinheiro (não seria o ponto mais baixo). A max. figura de redução no percentil 90 (38,48%) significa que, em 90% dos casos, a redução será inferior a 38,48%. Então, em outras palavras, podemos dizer que há 10% de chance de ser maior do que isso. Se olharmos mais adiante na tabela, também podemos notar que em 99% dos casos, a redução será inferior a 63,82%. É importante notar que a tabela acima é gerada com "Usar números negativos para Drawdown & quot; desligado.
Se ativarmos & quot; Use números negativos para Drawdown & quot; opção, todos os números de retirada tornar-se-ão negativos, e a ordem seria revertida e o significado da coluna de retirada também seria revertido, como na tabela abaixo:
Desta vez, o significado da coluna de retirada é reverso - diz-lhe que as cobranças serão piores (mais negativas) do que a quantidade especificada, o valor percentil de 99% de -7,23% significa que, em 99% dos casos, você verá reduções pior (mais negativo ) do que -7,23%. 1% de valor percentil de -63,82% diz que, em 1% dos casos, você experimentaria reduções iguais ou pior (mais negativas) do que -63,82%
Desta forma, a tabela pode ser lida & quot; row-wise & quot; e o topo da tabela (percentis pequenos) referem-se a "pessimista" cenários.
Abaixo da tabela podemos encontrar min / avg / max + gráfico de vassoura de palha de ações simuladas:
Observe que as linhas verdes e vermelhas (min / equidade máxima) não são realmente únicas "melhor" e "pior" ações. São os pontos mais altos (max) e mais baixos (mínimos) de TODAS as ações geradas durante o MC. Então eles são realmente melhores pontos de todas as ações e os piores pontos de todas as ações. E a linha azul (média) é a média de todas as linhas de equidade (todas as corridas). A "nuvem" de linhas cinza representa as ações de teste individuais - como podemos ver, o mesmo sistema comercial pode gerar resultados diferentes quando as condições do mercado mudam e a simulação MC tenta simular vários resultados e fornecer algumas informações estatísticas sobre o quão ruim / bom pode ser .
Após a tabela de palha de palha, você pode encontrar gráficos de função de distribuição cumulativa (CDF) de equidade final, CAR, drawdowns e menor patrimônio (novamente as linhas de anotação verde e vermelha foram adicionadas manualmente):
Os gráficos de distribuição cumulativa apresentam a mesma informação que foi incluída na tabela na parte superior de "Monte Carlo" página, mas na forma gráfica. Mais uma vez, quando examinamos o gráfico anual de distribuição de lucro anual (CAR), podemos ver que, em aproximadamente 10% dos casos, nosso sistema não se romperia (produz CARs negativos). Também podemos ver que em aproximadamente 35% dos casos, nossa CAR seria inferior a 5%. Os lucros acima de 10% ao ano só ocorrem nos 20% superiores dos testes.
Todos os outros gráficos na página MC são construídos de mesma forma e você pode lê-los usando a mesma metodologia.
O gráfico de capital final mostra a função de distribuição cumulativa do valor final do capital próprio (no final do período de teste)
O gráfico de retorno anual mostra a função de distribuição cumulativa do retorno percentual anual composto do teste.
Max. Drawdown $ e Max. Drawdown% charts mostram a função de distribuição cumulativa de drawdowns (pico máximo para dólar vale / por cento) experimentado durante o teste.
O gráfico de Equidade mais baixa mostra a função de distribuição cumulativa do menor patrimônio já experimentado durante o teste.
Como controlá-lo a partir do nível da fórmula?
Além de usar a caixa de diálogo Configurações, você pode controlar o simulador Monte Carlo usando a função SetOption (). Você também pode recuperar esses valores usando a função GetOption.
SetOption (& quot; MCEnable & quot ;, 0); // value == 0 desabilita a simulação MC.
SetOption (& quot; MCEnable & quot ;, 1); // value == 1 permite MC somente em backtests de portfólio (padrão)
Observe que habilitar o MC na otimização é altamente desencorajado, a menos que você realmente use métricas MC como otimização de destino via backtester personalizado.
ou de outra forma usar distribuições de MC no processo de otimização. O processo de Monte Carlo é computacionalmente caro e, embora algumas centenas de milissegundos adicionadas a um backtest não importam muito, no caso de otimizações quando são multiplexadas por número de etapas, você pode facilmente aumentar o tempo de otimização por ordens de grandeza. Então, a menos que você REALMENTE precise de distribuição MC como métrica personalizada e meta de otimização, NÃO habilite MC na otimização.
SetOption (& quot; MCRuns & quot ;, 1000); // define o número de corridas de simulação de MC (realizações)
Outros parâmetros MC que podem ser configurados usando SetOption e retrived usando o GetOption:
& quot; MCChartEquityCurves & quot; (verdadeiro / falso) & quot; MCStrawBroomLines & quot; (0..100) "MCPosSizePctEquity" (0..100) "MCPosSizeMethod" - 0 - não muda, 1 - tamanho fixo, 2 - valor constante, 3 por cento do patrimônio líquido, "MCPosSizeShares" (número), & quot; MCPosSizeValue & quot; (número) & quot; MCPosSizePctEquity & quot; (número) "MCUseEquityChanges & quot; (número), 1 significa usar mudanças de equidade em vez da lista de comércio & quot; MCChartEquityScale & quot; (número), 1 para escala de log, 0 para escala linear "MCLogScaleFinalEquity" (número), 1 para escala de log, 0 para escala linear "MCLogScaleDrawdown & quot; (número), 1 para escala de log, 0 para escala linear "MCNegativeDrawdown & quot; (número), 1 - use números negativos para retirada (retração reversa CDF)
Como adicionar métricas personalizadas com base nas distribuições de teste MC para o relatório backtest?
Além do relatório MC incorporado, você pode adicionar suas próprias métricas personalizadas ao relatório usando o método GetMonteCarloSim () do objeto Backtester e o objeto MonteCarloSim que esta função retorna. Se você é novo em métricas personalizadas, consulte "Como adicionar métricas personalizadas ao relatório do backtester & quot; parte deste manual primeiro.
O objeto MonteCarloSim tem uma função GetValue ("campo", percentil) que permite acessar os valores de CDF. Campo "disponível" disponível os valores são:
Agora, aqui está o código de exemplo que apresenta como adicionar o percentil 30 FinalEquity e CAR ao relatório:
SetOption ("MCEnable", True);
SetOption ("MCRuns", 1000);
// nota 1: pode ser NULL se MC NÃO estiver habilitado.
// nota 2: os resultados MC estão disponíveis após Backtest () ou PostProcess.
// como a simulação MC é feita na fase final do pós-processamento.
// obtenha o 30º percentil de equidade final e distribuição de CAR.
bo. AddCustomMetric ("FinalEq30", mc. GetValue ("FinalEquity", 30));
bo. AddCustomMetric ("CAR30", mc. GetValue ("CAR", 30));
// você também pode combinar estatísticas de MC com estatísticas normais.
st = bo. GetPerformanceStats (0);
bo. AddCustomMetric ("CAR30 / MDD", mc. GetValue ("CAR", 30) / st. GetValue ("MaxSystemDrawdownPercent"));
Uma vez que as métricas personalizadas são adicionadas, ela pode ser usada como otimização de destino (não se esqueça de mudar MCEnable para 2) e usado no processo de teste Walk Forward como função objetiva. Para selecionar a métrica personalizada como alvo de otimização, você precisará digitar seu nome exatamente como aparece na chamada AddCustomMetric em "Alvo de otimização" campo na caixa de diálogo Configurações, Walk Forward page. Desta forma, você pode executar um teste de otimização / marcha para frente que é direcionado por valores de distribuição de simulação de MC. Então, por exemplo, em vez de usar o CAR / MDD, você pode usar o CAR30 / MDD (CARRO do MC do 30º percentil dividido pela redução do sistema máximo).
Como sobre a randomização de Monte Carlo em vez do teste bootstrap?
A randomização de Monte Carlo é diferente do teste de bootstrap porque não usa a lista de comércio real (realizada) do backtest, mas tenta usar & quot; todos os retornos individuais sempre que eles são realizados ou hifotéticos. Por exemplo, quando o sistema de negociação está gerando mais sinais do que podemos realmente negociar devido ao poder de compra limitado, então temos que escolher quais trades tomamos e quais nós ignoraríamos. Normalmente, essa seleção é parte do sistema comercial e, na variável AmiBroker PositionScore, diz ao backtester quais posições são preferidas e devem ser negociadas. No teste de randomização, em vez de usar algum PositionScore analítico / determinista, você usa aleatoriamente. Se houver mais sinais para posições abertas do que poderíamos tomar, esse processo levaria a escolhas de comércio aleatorizado. Agora, usando a função Optimize () e o PositionScore aleatório, podemos executar milhares dessas picaretas aleatórias para produzir o teste de randomização de Monte Carlo:
step = Optimize ("step", 1, 1, 1000, 1); // 1000 backtests.
// com escolhas comerciais aleatórias do universo amplo (certifique-se de executá-lo em grandes listas de vigilância)
O teste de aleatorização tem uma grande desvantagem: não pode ser usado em muitos casos. Quando o sistema não produz sinais suficientes de cada barra, não há muito (se houver) para escolher. Além disso, mais importante ainda, a randomização de MC faz uma suposição falsa de que todas as "oportunidades de negociação" (sinais) são iguais. Em muitos casos eles não são. Muitas vezes, nosso sistema comercial possui uma maneira específica e determinista de escolher negócios de muitas oportunidades por algum tipo de ranking / pontuação. Quando o sistema está usando uma pontuação (rank) como um componente central do sistema (os sistemas rotativos fazem isso) - se você substituir a pontuação analítica de um número aleatório, você está apenas testando o ruído branco e não o sistema.

Melhor comerciante do sistema.
Better System Trader é o podcast e o blog dedicado a comerciantes sistemáticos, fornecendo dicas práticas de especialistas em comércio em todo o mundo.
Os seus resultados de resposta estão te enganando?
Você já começou a negociar uma estratégia que desempenha bem nos backtests, mas oferece um resultado muito diferente quando você começa a negociar com dinheiro real?
Poderia seus relatórios de resposta estar enganando você, indicando que uma estratégia é ótima, mas realmente só mostra você parte da imagem geral?
Como você se dá uma chance melhor de desenvolver sistemas de negociação que sejam robustos e funcionem bem no futuro?
Kevin Davey (não o cara retratado acima!), Campeão do World Cup Trading da kjtradingsystems, vem criando estratégias de negociação há mais de 25 anos. No Episódio 5 do podcast BetterSystemTrader, ele diz:
Para reduzir as hipóteses de que isso possa ocorrer, ele completa a análise de Monte Carlo em todos os seus sistemas para garantir que eles sejam robustos e atinjam seus requisitos de risco antes que ele coloque seu dinheiro na linha.
O que é a análise de Monte Carlo e como pode ser usado para melhorar seus próprios resultados de negociação? Leia mais, vamos lhe mostrar.
O que é a análise de Monte Carlo?
A análise de Monte Carlo é um processo que permite que você obtenha uma imagem mais precisa do desempenho de uma estratégia comercial além do que um relatório de backtest padrão pode fornecer.
Um relatório de backtest mostra os resultados de uma série de negócios em uma ordem específica, mas o problema é que é apenas história, você não sabe o que vai acontecer no futuro. E se muitos negócios perdidos aparecerem em uma fileira, qual tipo de redução você experimentará? Qual a chance de conseguir uma redução maior do que o esperado ou uma série de negociações perdidas por mais do que o esperado?
A análise de Monte Carlo basicamente permite que você arrase a ordem dos negócios em um backtest para fornecer uma melhor compreensão do possível desempenho futuro, com base no pressuposto de que trades futuros terão características semelhantes a trades históricos, mas em uma ordem desconhecida.
Os resultados permitem que você determine as probabilidades de redução e os níveis de lucro e a chance de sua conta comercial ser completamente eliminada.
Será que é realmente importante?
Sim, mesmo os profissionais experientes como Kevin o usam e é por isso que:
Na verdade, encontrei casos em que a curva de andamento para a frente parecia excelente - provavelmente muitas pessoas simplesmente tomaram a decisão: "Ei, eu vou trocar isso". Mas quando eu executei a simulação de Monte Carlo, descobri que lá era realmente muito mais risco no sistema e era muito mais arriscado do que eu esperava. Então, basicamente, a quantidade de retorno que eu estava obtendo em comparação com a quantidade de risco que eu poderia ter, que não apareceu necessariamente naquela curva de patrimônio histórico, era muito demais para o lucro que eu estava obtendo, e basicamente eu disse " Bem, eu não posso trocar esse sistema em particular ".
Usando a ferramenta de análise de Monte Carlo.
Kevin ofereceu uma cópia gratuita da ferramenta de análise de Monte Carlo que ele desenvolveu no Excel, para todos os ouvintes do podcast do Better System Trader. Existe um link para baixar a ferramenta no final deste artigo, mas vamos primeiro ver como isso funciona e como aplicar os resultados à nossa própria negociação.
Quando você abre o simulador, existem alguns valores que você precisa inserir com base em seus próprios parâmetros comerciais comerciais. (Se solicitar que você ative as macros, você precisará dizer sim caso contrário o simulador não funcionará).
Para configurar o simulador, insira seus detalhes de negociação nas seções azul claro, começando no canto superior esquerdo com o patrimônio inicial básico, o nível no qual você interromperia a negociação do sistema se o patrimônio da conta caiu abaixo dele e o número médio de negócios por ano :
Para inserir seus negócios no simulador, pressione o & # 8216; Limpar & # 8217; clique e cole a lista de ganhos e perdas comerciais em $ no relatório do backtest.
Para este exemplo, usaremos uma lista de negócios de 1805 ao longo de 10,5 anos. Com base em um saldo inicial de US $ 10.000, o CAR é de 31% e o Drawdown máximo é de 11%, o que resulta em uma curva bastante equitativa de equidade:
Os resultados podem parecer impressionantes, mas vamos executá-lo através do simulador de Monte Carlo. Ao adicionar as negociações no simulador e pressionando o botão Calcular, o simulador percorre a lista de trades 2500 vezes, aleatorizando a seqüência de negócios a cada vez. Nós estabelecemos um patrimônio inicial de US $ 10.000 para corresponder ao backtest e o nível de negociação de parada foi ajustado para US $ 8.000.
Os resultados do simulador são muito interessantes.
Analisando os resultados.
Nós usamos a lista de comércio através do simulador de Monte Carlo e agora é hora de comparar os resultados com o backtest:
A primeira coisa a notar é que o Median Drawdown para as simulações de Monte Carlo é de 24,6%, porém o backtest relatou uma Drawdown máxima de 11%. Como isso pode ser?
Ao mudar a ordem dos negócios, identificamos que a estratégia realmente contém mais riscos que o relatório Backtest mostra. A seqüência favorável dos negócios no backtest é subestimar o risco real!
Além disso, se o relatório de backtest apenas produz uma redução de 11%, mas o Monte Carlo Median Drawdown é de 24,6%, há prováveis ​​sequências de negócios que produziram 50% de redução ou maiores, muito superiores ao limite de redução de 20%.
Note-se que a negociação desta estratégia com um saldo inicial de US $ 10.000 tem uma chance de 33% de atingir ou exceder o limite de redução de 20%. Esse risco de arruinar é muito alto demais.
Aplicando os resultados.
Os resultados de Monte Carlo mostraram que a partir de uma conta de US $ 10.000 e um limite de redução de 20%, temos 33% de chances de arruinar e a redução média de 24,6% é maior que o limite de retirada. O que podemos fazer sobre isso?
Sem ajustar as regras da estratégia ou o risco por comércio, parece que a melhor abordagem é começar com um maior saldo da conta. Ao verificar a tabela de resultados amarelos no simulador de Monte Carlo, podemos ver que provavelmente devemos trocar essa estratégia com US $ 25.000 ou mais:
Conclusão.
Agora podemos ver a importância da análise de Monte Carlo no processo de desenvolvimento do sistema. Este exemplo básico nos mostrou como os resultados do backtest, que apenas mostram o desempenho de uma ordem de negócios, podem não mostrar a imagem completa.
Ao executar a lista de comércio através do simulador de Monte Carlo, determinamos:
O valor Maximum Drawdown no relatório backtest (-11%) baseou-se em uma corrida favorável de negócios e estava subestimando o risco real de redução, com as simulações de Monte Carlo mostrando uma redução média de -24,6% O risco de ruína ao negociar um O tamanho da conta de $ 10.000 foi de 33%, muito arriscado para o comércio, então um tamanho de conta maior ou menor risco de comércio seria necessário para reduzir a possibilidade de arruinar.
Baixe.
Deseja obter as últimas atualizações automaticamente?
A melhor maneira de ser notificado quando novas coisas são lançadas é se inscrever na lista de e-mail abaixo, teremos certeza de informá-lo:
Posts Relacionados.
Eu acho que seus resultados de Monte Carlo podem estar te enganando. Você só pode usar a quantidade de dólar P & amp; L se o tamanho do seu comércio permanecer constante. Ou sinto falta de nada?
Oi Nikolay, essa é uma ótima pergunta, então eu pedi a Kevin Davey para responder. Foi assim que ele explicou:
& # 8220; Ao avaliar uma estratégia de negociação potencial, eu gosto de ver seu desempenho sem qualquer dimensionamento de posição ou técnicas de gerenciamento de dinheiro aplicadas. Então, tipicamente avaliamos estratégias potenciais com um tamanho constante de 1 contrato. Se a estratégia for passada (o que significa que tem expectativa positiva a longo prazo), eu a incorporarei a várias carteiras estratégicas que eu tenho e incorporarei o dimensionamento de posição nesse ponto. & # 8221;
Espero que ajude,
Grande pergunta Nikolay. Além da resposta que eu dei a Andrew, eu também deveria mencionar que, se você conhece a linguagem macro do Excel, é bastante simples de adicionar qualquer abordagem de dimensionamento de posição que você deseja. Para uma abordagem fraccional fixa, por exemplo, só precisaria de algumas linhas de código extra.
Então, o simulador é bom porque você pode adaptá-lo às suas necessidades.
Para as pessoas que participam da minha oficina, eu forneço aos alunos uma versão especial do simulador que inclui dimensionamento de posição fracionada fixa.
Olá & # 8230;.como muitas simulações que Monte Carlo realiza? Existem números de confiança?
Este simulador executa 2500 iterações. Não calcula os intervalos de confiança. Se você conhece a linguagem de macro do Excel, você pode facilmente alterar ou modificar o código para o que deseja que o simulador faça.
Trackbacks.
[& # 8230;] prometeu, aqui está o link para a simulação de Monte Carlo, descobri que eu usei no [& # 8230;]
[& # 8230;] esta publicação no bettersystemtrader, Andrew Swanscott entrevista Kevin Davey da KJ Trading Systems que [& # 8230;]
A negociação de ações, opções, futuros e divisas envolve um risco significativo de perda e não é adequado para todos. O desempenho passado não é necessariamente indicativo de resultados futuros.

Sistema de negociação simulação monte carlo
Se você ainda procura uma vantagem nos mercados, os sistemas de negociação mecânica são a melhor maneira de obtê-lo. Saber mais.
Execute a análise de Monte Carlo em seu sistema ou método de negociação existente para melhorar a precisão dos testes do seu sistema e ajudar a evitar o ajuste de curvas. Market System Analyzer (MSA) é um aplicativo independente do Windows que inclui um recurso de simulação Monte Carlo fácil de usar. O software pode ser aplicado a qualquer sistema ou método comercial, independentemente do mercado ou prazo. Quando combinado com os recursos de dimensionamento da posição do MSA, a análise de Monte Carlo pode melhorar substancialmente a estimativa da taxa provável de retorno e redução do seu sistema.
O que é a análise de Monte Carlo?
A análise de Monte Carlo é uma técnica computacional para avaliar o impacto da variação aleatória nos parâmetros do modelo de simulação. Na análise de Monte Carlo, as variáveis ​​aleatórias de um modelo são representadas por distribuições estatísticas, que são amostradas aleatoriamente para produzir o resultado do modelo. Ao usar a análise de Monte Carlo para simular a negociação, a distribuição comercial, conforme representada pela lista de negócios, é provada para gerar uma seqüência comercial. Cada uma dessas seqüências é analisada e os resultados são classificados para determinar a probabilidade de cada resultado. Desta forma, um nível de probabilidade ou confiança é atribuído a cada resultado.
A análise de Monte Carlo é particularmente útil para estimar a redução máxima do pico para o vale. Gerar uma melhor estimativa do levantamento possibilita avaliar melhor o risco de um sistema ou método comercial. Ao usar uma abordagem Monte Carlo para calcular a redução, a seqüência histórica dos negócios é randomizada e a taxa de retorno e redução são calculadas para a seqüência aleatória. O processo é então repetido várias centenas ou mil vezes. Analisando os resultados em conjunto, podemos encontrar, por exemplo, que em 95% das seqüências, a redução foi inferior a 30%, quando 4% do patrimônio foi arriscado em cada comércio. Nós interpretaríamos isso para significar que existe uma chance de 95% de que o saque seja inferior a 30%, quando 4% estiverem arriscados em cada comércio.
A análise de Monte Carlo é fácil de aplicar no Market System Analyzer.
No Market System Analyzer, a análise Monte Carlo é realizada quando o comando Monte Carlo Analysis é selecionado no menu Análise.
O menu Análise contém o comando Monte Carlo Analysis.
A análise é realizada na seqüência atual de transações usando qualquer opções de análise e configuração aplicadas na seqüência atual, incluindo configurações de dimensionamento de posição, regras de dependência e assim por diante. O número de amostras para a análise pode ser inserido na guia Opções da caixa de diálogo Configuração de Análise. Neste contexto, "amostra" significa uma seqüência de negócios selecionada aleatoriamente. O padrão é 500 amostras, o que significa que os resultados de Monte Carlo serão baseados em 500 seqüências comerciais aleatórias. Os resultados serão exibidos na janela de Resultados de Monte Carlo ao nível de confiança inserido na guia Opções. Um exemplo é mostrado abaixo.
Exemplo de resultados de análise de Monte Carlo gerados pelo Market System Analyzer.
Neste exemplo, o patrimônio da conta inicial foi de US $ 10.000, e um método de dimensionamento da posição fixa com um delta de $ 3000 foi aplicado. A seção rotulada "Resultados-Chave em Selecionar Níveis de Confiança & quot; lista a taxa de retorno, a redução do pior caso, a taxa de retorno-redução e a relação de Sharpe modificada em uma variedade de níveis de confiança. Observe, por exemplo, que se você exigir um nível de confiança maior, a taxa de retorno prevista será menor e a redução do pior caso será maior. A seção inferior (não mostrada) lista os resultados de simulação de Monte Carlo no nível de confiança selecionado pelo usuário de 95%. Por exemplo, os resultados podem mostrar um retorno sobre o patrimônio inicial de 900% com 95% de confiança e um fator de lucro de 1,60 com confiança de 95%.
Para aprender a analisar e explorar a dependência comercial usando Market System Analyzer, clique no botão Próximo na parte inferior da página ou vá até a loja online abaixo para comprar sua própria cópia do MSA.
Baixe uma versão de teste totalmente funcional do Market System Analyzer. Avalie o MSA por até 30 dias. Clique aqui para baixar agora sem compromisso.
Para um artigo geral sobre a análise de Monte Carlo, clique aqui. Para obter uma lista completa de artigos comerciais disponíveis, selecione o link Biblioteca de artigos à esquerda.
Se você quiser ser informado de novos desenvolvimentos, novidades e ofertas especiais do Adaptrade Software, por favor, junte-se à nossa lista de e-mail. Obrigado.
Copyright © 2004-2018 Adaptrade Software. Todos os direitos reservados.

Sistema de negociação simulação monte carlo
Análise de Monte Carlo.
Análise de Monte Carlo.
por Michael R. Bryant.
A análise de Monte Carlo é uma técnica computacional que permite incluir as propriedades estatísticas dos parâmetros de um modelo em uma simulação. Na análise de Monte Carlo, as variáveis ​​aleatórias de um modelo são representadas por distribuições estatísticas, que são amostradas aleatoriamente para produzir o resultado do modelo. O resultado é, portanto, também uma distribuição estatística. Comparados aos métodos de simulação que não incluem amostragem aleatória, o método de Monte Carlo produz resultados mais significativos, que são mais conservadores e também tendem a ser mais precisos quando usados ​​como previsões.
Ao usar a análise de Monte Carlo para simular o comércio, a distribuição comercial, conforme representada pela lista de negócios, é provada para gerar uma seqüência comercial. Cada uma dessas seqüências é analisada e os resultados são classificados para determinar a probabilidade de cada resultado. Desta forma, um nível de probabilidade ou confiança é atribuído a cada resultado.
Sem a análise de Monte Carlo, a abordagem padrão para o cálculo da taxa histórica de retorno, por exemplo, seria analisar a seqüência atual dos negócios usando, por exemplo, o dimensionamento fixo da posição fracionada. Pode verificar-se que a taxa de retorno sobre a sequência foi de 114%. Com a análise de Monte Carlo, por outro lado, são analisadas centenas ou milhares de diferentes seqüências de negócios e a taxa de retorno é expressa com um qualificador de probabilidade. Por exemplo, a taxa de retorno, conforme determinado pela análise de Monte Carlo, pode ser de 83% com 95% de confiança. Isso significa que, de todas as milhares de seqüências consideradas, 95% apresentaram taxas de retorno maiores ou iguais a 83%.
A análise de Monte Carlo é particularmente útil para estimar a redução máxima do pico para o vale. Na medida em que a redução é uma medida útil de risco, melhorar o cálculo do levantamento permitirá avaliar melhor um sistema ou método de negociação. Embora não possamos prever como o mercado diferirá amanhã do que vimos no passado, sabemos que será diferente. Se calcularmos a redução máxima com base na seqüência histórica dos negócios, estamos baseando nossos cálculos em uma seqüência de negócios que sabemos que não serão repetidos exatamente. Mesmo que a distribuição de trades (no sentido estatístico) seja a mesma no futuro, a seqüência desses negócios é em grande parte uma questão de chance.
O cálculo da redução em função de uma determinada seqüência é um pouco arbitrário. Além disso, a seqüência de negócios tem um efeito muito grande na redução calculada. Se você escolher uma seqüência de negócios onde cinco perdas ocorrem em uma linha, você pode obter uma redução muito grande. Os mesmos negócios organizados em uma ordem diferente, de modo que as perdas são uniformemente dispersas, podem ter uma redução desprezível.
Em geral, existem duas maneiras de gerar a seqüência de trades em uma simulação de Monte Carlo. Uma opção é construir cada sequência de trocas por amostragem aleatória dos mesmos negócios como na sequência atual, com cada troca incluída uma vez. Este método de amostragem da distribuição comercial é conhecido como seleção aleatória sem substituição. Outro método de amostragem possível é a seleção aleatória com substituição. Se esse método fosse usado, os negócios seriam selecionados aleatoriamente na lista original de negócios, independentemente de o comércio ter sido selecionado ou não. Na seleção com substituição, um comércio pode ocorrer mais de uma vez na nova seqüência.
Um exemplo baseado na amostragem sem substituição é mostrado abaixo. A negociação é simulada usando o dimensionamento da posição fixa começando com um patrimônio da conta de US $ 10.000. Cada simulação emprega 500 seqüências comerciais (amostras). A primeira seção de resultados na figura mostra os principais resultados, como a taxa de retorno, em uma série de níveis de confiança. Observe, por exemplo, que os retornos mais baixos estão previstos para maiores níveis de confiança.
Exemplo de resultados de análise de Monte Carlo.
Se você quiser ser informado de novos desenvolvimentos, novidades e ofertas especiais do Adaptrade Software, por favor, junte-se à nossa lista de e-mail. Obrigado.
Copyright © 2004-2018 Adaptrade Software. Todos os direitos reservados.

Bet Smarter Com a simulação de Monte Carlo.
Em finanças, há uma quantidade razoável de incerteza e risco envolvido com a estimativa do valor futuro de números ou valores devido à grande variedade de resultados potenciais. A simulação de Monte Carlo (MCS) é uma técnica que ajuda a reduzir a incerteza envolvida na estimativa de resultados futuros. O MCS pode ser aplicado a modelos complexos, não-lineares ou usado para avaliar a precisão e o desempenho de outros modelos. Também pode ser implementado em gerenciamento de risco, gerenciamento de portfólio, derivados de preços, planejamento estratégico, planejamento de projetos, modelagem de custos e outros campos.
Definição.
O MCS é uma técnica que converte incertezas nas variáveis ​​de entrada de um modelo em distribuições de probabilidade. Ao combinar as distribuições e selecionar aleatoriamente os valores deles, ele recalcula o modelo simulado muitas vezes e traz a probabilidade da saída.
Características básicas.
O MCS permite que várias entradas sejam usadas ao mesmo tempo para criar a distribuição de probabilidade de uma ou mais saídas. Diferentes tipos de distribuições de probabilidade podem ser atribuídos às entradas do modelo. Quando a distribuição é desconhecida, o que representa o melhor ajuste pode ser escolhido. O uso de números aleatórios caracteriza MCS como um método estocástico. Os números aleatórios devem ser independentes; não deve existir correlação entre eles. O MCS gera a saída como um intervalo em vez de um valor fixo e mostra a probabilidade de o valor de saída ocorrer no intervalo.
Algumas distribuições de probabilidade usadas com freqüência em MCS.
Distribuição normal / gaussiana - Distribuição contínua aplicada em situações em que a média e o desvio padrão são dados e a média representa o valor mais provável da variável. É simétrico em torno da média e não está limitado.
Distribuição lognormal - Distribuição contínua especificada pela média e desvio padrão. Isto é apropriado para uma variável variando de zero a infinito, com aspereza positiva e com logaritmo natural normalmente distribuído.
Distribuição triangular - Distribuição contínua com valores fixos mínimos e máximos. É limitado pelos valores mínimo e máximo e pode ser simétrico (o valor mais provável = média = mediana) ou assimétrico.
Distribuição Uniforme - Distribuição contínua delimitada por valores mínimos e máximos conhecidos. Em contraste com a distribuição triangular, a probabilidade de ocorrência dos valores entre o mínimo eo máximo é a mesma.
Distribuição exponencial - Distribuição contínua usada para ilustrar o tempo entre ocorrências independentes, desde que a taxa de ocorrências seja conhecida.
A Matemática Atrás do MCS.
Considere que temos uma função de valor real g (X) com função de freqüência de probabilidade P (x) (se X é discreto), ou função de densidade de probabilidade f (x) (se X for contínuo). Então, podemos definir o valor esperado de g (X) em termos discretos e contínuos, respectivamente:
Em seguida, faça n desenhos aleatórios de X (x 1, ....xn), chamados corridas de teste ou corridas de simulação, calcule g (x 1), ....g (xn) e encontre a média de g (x) da amostra:
Como a incerteza no preço unitário, nas vendas unitárias e nos custos variáveis ​​afetará o EBITD?
Deixe-nos explicar a incerteza nas entradas - preço unitário, vendas unitárias e custos variáveis ​​- usando distribuição triangular, especificada pelos valores mínimos e máximos respectivos das entradas da tabela.
Gráfico de sensibilidade.
Um gráfico de sensibilidade pode ser muito útil quando se trata de analisar o efeito das entradas na saída. O que diz é que as vendas unitárias representam 62% da variação no EBITD simulado, custos variáveis ​​para 28,6% e preço unitário para 9,4%. A correlação entre vendas unitárias e EBITD e entre preço unitário e EBITD é positiva ou um aumento nas vendas unitárias ou preço unitário levará a um aumento no EBITD. Os custos variáveis ​​e EBITD, por outro lado, estão negativamente correlacionados e, ao diminuir os custos variáveis, aumentaremos o EBITD.
Tenha cuidado com a definição da incerteza de um valor de entrada por uma distribuição de probabilidade que não corresponde ao real e a amostragem dele dará resultados incorretos. Além disso, a suposição de que as variáveis ​​de entrada são independentes pode não ser válida. Os resultados enganosos podem vir de entradas que são mutuamente exclusivas ou se uma correlação significativa for encontrada entre duas ou mais distribuições de entrada.
The Bottom Line.
A técnica MCS é direta e flexível. Não pode eliminar a incerteza e o risco, mas pode torná-los mais fáceis de entender ao atribuir características probabilísticas às entradas e saídas de um modelo. Pode ser muito útil para determinar diferentes riscos e fatores que afetam as variáveis ​​previstas e, portanto, pode levar a previsões mais precisas. Observe também que o número de testes não deve ser muito pequeno, pois pode não ser suficiente para simular o modelo, fazendo com que o agrupamento de valores ocorra.

No comments:

Post a Comment