Friday 15 December 2017

Estratégia de negociação baseada em um modelo de comutação de regime


Eu estou sempre me perguntando se alguém tem utilizado modelos de comutação de regime com êxito na previsão ou negociação. Academia há muito discutiu este tema em profundidade, como o uso de modelos de Comutação de Regime para a detecção de deslocamento abrupto do mercado ou mudanças estruturais. As técnicas populares incluem modelar o processo subjacente como um Processo de Markov com certas distribuições e usar esse modelo para estimar a matriz de probabilidade de transição. A premissa desta abordagem é atraente: se podemos aplicar diferentes abordagens baseadas em diferentes regimes de mercado, então o processo de modelagem pode refletir melhor a realidade. No entanto, como qualquer outro modelo, a confiabilidade de tal modelo não é convincente. Pessoalmente, eu tentei implementar alguns modelos de switch Regime propostos por acadêmicos e testar seu poder explicativo para detectar mudanças no mercado (como mudança de ciclos, níveis de volatilidade, etc), mas os resultados são sempre decepcionantes. Pode algum companheiro amigos aqui compartilhar suas opiniões Cheers. Perguntou Jun 25 14 às 12: 28Trading usando Garch Volatilidade Previsão Quantum Financier escreveu um interessante artigo Regime Switching System Usando Volatilidade Previsão. O artigo apresenta um elegante algoritmo para alternar entre as estratégias de reversão média e tendência de seguir com base na volatilidade do mercado. Dois modelos são examinados: um usando a volatilidade histórica e outro usando o Garch (1,1) Previsão de Volatilidade. A estratégia de reversão média é modelada com RSI (2): Long quando RSI (2) e Curto em contrário. A estratégia de tendência seguinte é modelada com SMA 50200 crossover: Long quando SMA (50) gt SMA (200), e Curto em contrário. Eu quero mostrar como implementar essas idéias usando a biblioteca de backtesting na Systematic Investor Toolbox. O código a seguir carrega os preços históricos do Yahoo Fiance e compara o desempenho das estratégias Buy e Hold, Mean-Reversion e Trend-Following usando a biblioteca de backtesting na Systematic Investor Toolbox: Em seguida, vamos criar uma estratégia que alterne entre reversão média e tendência - seguindo estratégias baseadas na volatilidade histórica do mercado. Em seguida, vamos criar um GARCH (1,1) Previsão de volatilidade. Eu recomendaria ler os seguintes artigos para quem quer encontrar o que GARCH é tudo ou para atualizar seus conhecimentos: GARCH (1,1) por David Harper 8211 um artigo introdutório muito bom com muitos diagramas visuais. Questões Práticas na Modelação Univariada de GARCH por Y. Chalabi, D. Wurtz 8211 passo a passo exemplo de ajuste do modelo GARCH (1,1) com código R completo. Introdução básica ao GARCH por Quantum Financier 8211 é uma série de postos que vai para os detalhes e suposições de GARCH e EGARCH. Há alguns pacotes de R para caber modelos de GARCH. Considerarei a função garch do pacote tseries e a função garchFit do pacote fGarch. A função garch do pacote tseries é rápida, mas nem sempre encontra solução. A função garchFit do pacote fGarch é mais lenta, mas converge mais consistentemente. Para demonstrar a diferença de velocidade entre a função garch ea função garchFit eu criei um benchmark simples: A função garchFit é em média 6 vezes mais lenta do que a função garch. Então, para prever a volatilidade vou tentar usar a função garch sempre que ele pode encontrar uma solução e função garchFit caso contrário. Agora, vamos criar uma estratégia que alterna entre as estratégias de reversão média e tendência de seguir com base na previsão de volatilidade GARCH (1,1). A estratégia de comutação que utiliza a previsão de volatilidade GARCH (1,1) apresentou um desempenho ligeiramente superior ao que utiliza a volatilidade histórica. Há muitas abordagens diferentes que você pode tomar para incorporar a previsão em seus modelos e estratégias de negociação. R tem um conjunto muito rico de pacotes para modelar e prever séries temporais. Aqui estão alguns exemplos que achei interessantes: Para ver o código-fonte completo para este exemplo, por favor, dê uma olhada na função bt. volatility. garch () em bt. test. r no github. Nunca perca uma atualização Assine os R-blogueiros para receber e-mails com as últimas postagens R. (Você não verá esta mensagem novamente.) Eu li com interesse um papel mais velho Can Markov Switching Models Predict Excesso de câmbio Devices por Dueker e Neely do Federal Reserve Bank of St. Louis. Eu tenho um carinho por modelos de Markov ocultos por causa de seu grande sucesso em aplicações de reconhecimento de voz, mas confesso que eu nunca fui capaz de criar um modelo HMM que supera os indicadores técnicos simples. Eu culpo que tanto na minha própria falta de criatividade, bem como o fato de que HMM tendem a ter muitos parâmetros que precisam ser ajustados aos dados históricos, o que torna vulnerável a dados snooping viés. Daí eu abordado este papel com a grande esperança de que os especialistas podem me ensinar como aplicar HMM adequadamente para financiar. O objetivo do modelo é simples: prever o retorno em excesso de uma taxa de câmbio em um período de 8 dias. (O retorno excedente neste contexto é medido pela mudança na taxa de câmbio menos o diferencial de taxa de juros entre a base e as moedas de cotação do par de moedas.) Se o retorno esperado excedente for maior que um limiar (chamado de filtro no papel) Então vá por muito tempo. Se for inferior a um outro limite, ir curto. Mesmo que a previsão é em um retorno de 8 dias, a decisão de negociação é feita diariamente. Supõe-se que o excesso de retorno tenha uma distribuição student-t de 3 parâmetros. Os 3 parâmetros são a média, o grau de liberdade ea escala. O parâmetro de escala (que controla a variância) pode alternar entre um valor alto e baixo baseado em um modelo de Markov. O grau de liberdade (que controla a curtose, a. k.a. espessura das caudas) também pode alternar entre 2 valores com base em outro modelo de Markov. A média é linearmente dependente dos valores assumidos pelo grau de liberdade e da escala, bem como outra variável de Markov que alterna entre 2 valores. Assim, a média pode assumir 8 valores distintos. Os 3 modelos de Markov são independentes. A distribuição student-t é mais apropriada para a modelagem de retornos financeiros do que a distribuição normal, devido à tolerância para caudas pesadas. Os autores também acreditam que este modelo capta a mudança entre períodos de alta e baixa volatilidade, com a conseqüente mudança de preferência (diferentes retornos médios) para moedas seguras versus risco, fenômeno bem demonstrado no período de agosto de 2017 a janeiro de 2017. Os parâmetros dos modelos de Markov e as distribuições student-t são estimados no período da amostra (1974-1981) para cada par de moedas, a fim de minimizar o desvio acumulado dos retornos excedentes de zero. Há um total de 14 parâmetros a serem estimados. Após estas estimativas, temos também de estimar os 2 limiares comerciais maximizando o retorno na amostra da estratégia de negociação, assumindo custos de transação de 10 pontos base por comércio. Com este grande número (16 no total) de parâmetros, receio ver os resultados fora da amostra (1982-2005). Amazing, estes são muito melhor do que eu esperava: os retornos anualizados variam de 1,1 a 7,5 para 4 principais pares de moedas. Os índices de Sharpe não são tão impressionantes: eles variam de 0,11 a 0,71. Naturalmente, quando os pesquisadores relatam resultados fora da amostra, deve-se tomar isso com um grão de sal. Se os resultados fora da amostra não eram bons, eles não estariam relatando-os, e eles teriam continuado mudando o modelo subjacente até que bons resultados fora da amostra sejam obtidos. Então, cabe realmente a nós implementar esse modelo, aplicá-lo Para dados após 2005 e para mais pares de moedas, para descobrir se realmente há algo aqui. Na verdade, esta é a razão pela qual eu prefiro ler papéis mais antigos - para permitir a possibilidade de verdadeiros testes fora da amostra imediatamente. O que você acha que pode ser feito para melhorar esse modelo? Eu suspeito que, como um primeiro passo, pode-se ver se os estados de Markov estimados correspondem razoavelmente ao que os comerciantes pensam como risco-em vs regimes de risco-off. Se o fizerem, então, independentemente do uso deste modelo como um gerador de sinal, ele pode pelo menos gerar bons indicadores de risco. Se não, então talvez o modelo de Markov oculto precise ser substituído por um modelo de Markov que é condicionado por indicadores observáveis. 35 comentários: Você tem um erro tipográfico no título do artigo. A palavra quotreservesquot deve ser substituída por return. Homem, eu estava realmente confuso quando vi o título do que você escreveu, eu estava pensando, por quê por que alguém se importaria com a previsão de excesso de reservas de divisas? Seu comentário sobre quotout de testes de amostra em documentos de pesquisa não está sendo tão fora de amostra É um ponto em que eu não acho que muitas pessoas entendem o problema que você levantou, e eu acho que é um ponto muito importante. Aagold, Obrigado por apontar isso. Na verdade, o erro de digitação estava no preprint original, que é por isso que eu copiei Ernie Ernie, Não questionar suas capacidades quant, mas você está seriamente sugerindo um modelo com que muitos parâmetros para caber tem qualquer aplicabilidade para negociação Eu digo isso como comerciante quant Com mais de 14 anos de experiência na indústria e executando o meu próprio meio de empresa hft. Para mim, este documento é absoluto nonesense e os rácios mencionados Sharpe são muito baixos, mesmo em seu próprio quotout de backtests samplequot para justificar a tomar esse papel a sério. AsiaProp, Na verdade, os 16 parâmetros não são tantos quantos eles soam. 14 delas são para a montagem da própria série cronológica: são independentes da estratégia de negociação. Apenas 2 dos parâmetros são usados ​​para otimizar o retorno da estratégia. Os índices de Sharpe relatados na pesquisa acadêmica são quase sempre baixos. Se eles são altos, eles não serão publicados. Nosso trabalho como comerciantes é tomar essas pesquisas como inspiração e tweak-los em estratégias práticas. Obrigado novamente por todo seu trabalho duro. No topo do seu blog e livro, eu ganho grande insight apenas lendo suas conversas com outros comentadores em seu site. Em um tópico de comentário anterior do outro dia você mencionou que uma grande parte dos seus retornos em 2017 veio de estratégias de reversão média no mercado de câmbio. Fiquei me perguntando se você empregar qualquer tipo de modelo de comutação de regime em sua negociação de câmbio para determinar se você deseja ser alocada principalmente para o seu momento ou estratégias de reversão média Zack, Não, eu não usei qualquer regime modelos de comutação. Eu nunca descobri que esses modelos funcionam fora da amostra. Ernie Você já leu este artigo antes, qualquer comentário Hi Anon, Não, eu não vi esse papel, mas vou colocar isso em minha lista de leitura Também, Chris Neely, o autor do artigo que eu descrevi, me mencionou este outro papel relevante: E seu site: Basta falar de uma perspectiva acadêmica, em vez da planície HMM talvez algo como a Máxima Entropia Modelo de Markov oculto pode funcionar melhor Dave, Por que você acha entropia máxima HMM vai funcionar melhor Parece ser apenas mais um método para estimar a Parâmetros. Ernie Eu não tenho nenhuma evidência empírica e previsão financeira não é realmente minha área de especialização. É apenas que em minhas poucas tentativas de usar a aprendizagem de máquina para previsões financeiras, eu aprendi que a quantidade de ruído tende a swamp para fora todas as tendências do mercado pode ter. Como resultado a maioria dos alunos tendem a executar muito mal, muito possivelmente devido ao ajuste excessivo para os dados de treinamento. Então, uma de minhas idéias é usar técnicas como Maximum Entropy para reduzir o grau de excesso. No entanto, eu realmente não tentei isso. Oi ernie: Atualmente estou lendo seu livro chamado quotquantitative tradingquot, e já programado e tentou MATHLAB para backtesting. No entanto, os resultados são diferentes da MetaTrader Strategy testerOptimization. No MT4, tenho centenas de passes que concordam com a maioria dos meus negócios reais (felizmente), mas o último não é tão positivo. Eu uso o mesmo conjunto de dados, que eu faixa de 2001-2009. A principal razão por que MATHLAB é que eu gostaria de empregar Sharpe Ratio. Geralmente, em MT4, escolher meus parâmetros é bastante fácil, direto. Eu escolho aqueles com mínimo drawdown melhores retornos e, em seguida, executar cópias separadas deles. Depois de ler seu livro, eu estava pensando em escolher parâmetros com: 1) Minimal drawdown 2) Melhores retornos e adicionar um terceiro critério, Sharpe Ratio. Desta forma, eu sinto que posso aumentar meus retornos, não A fórmula parece complicado, mas no entanto, não é nenhum mal tentando. O que você acha E obrigado Oi Anon, Quando você disse que os resultados do Matlab difere do Metatrader, você pode ser mais específico Você tem certeza de que a lógica nos 2 programas é idêntica Você pode empregar Sharpe ratio em qualquer programa que você escolher, não necessariamente Matlab. É apenas o retorno médio dividido pelo desvio padrão. Ernie Eu também pensei que a relação Sharpe ainda poderia ser empregada em qualquer programa. É realmente apenas limitado a Mathlab Ernie Chan disse. Oi Anon, Quando você disse que os resultados do Matlab difere do Metatrader, você pode ser mais específico Você tem certeza de que a lógica nos 2 programas são idênticos Sim, estou muito certo de que eles são. Ok, eu ser mais específico. Minha estratégia é extremamente simples, mas rentável (pelo menos para mim) - apenas 2 linhas de lógica, 2 parâmetros inteiros. Eu não posso ver como ou por que tal lógica simples difere muito, entre os dois. A diferença é que em MT4 eu recebo centenas de passes, mas em MATHLAB, eu só recebo cerca de 50 passes. No MATHLAB, um dos testes de 1 ano retorna um saldo de 200K do capital inicial de 10K, mas em MT4, os saldos estão dentro da faixa de 50K-100K, para todas as passagens. Mais uma coisa, em MT4, o tempo das barras é considerado dentro do testador. Eu não preciso re-programar nada. Mas no MATHLAB, eu tenho que separar este conjunto de dados. Talvez seja por isso que a diferença Thx novamente para sua ajuda amável. Oi Ruthstein, Sim, é provável que erros na preparação dos dados sejam o que causou as diferenças. No Metatrader, os dados são instalados como parte do programa. Mas Matlab é uma plataforma de computação geral, muito parecido com uma calculadora. Você tem que ter muito cuidado na preparação de dados para entrada no Matlab. Ernie Oi ernie, muito obrigado por seus comentários. Alguém me ajudar com seu plug-in para a parte do tempo e houve um erro muito ligeiro na preparação do tempo em MATHLAB. Ainda assim, os resultados permanecem inconsistentes. Mas surpreendentemente agora, o Índice de Sharpe é quase o mesmo valor para o top 5 mínimo drawdown passes, mas não em termos de lucros, embora. No lado positivo, isso faz escolhas maneira mais fácil do que antes, uma vez que eu apenas decidir em termos de redução mais segura, uma vez que a relação sharpe para todos eles são bastante aceitável. Mais uma vez, obrigado pela sua amável ajuda e devo dizer, o seu livro é uma boa leitura. Eu não terei nenhuma dúvida que eu compro outra vez seu próximo livro Olá Ruthstein, eu sou contente você encontrou um erro. Se a lógica de programação são os mesmos em Matlab e MT, então os resultados apenas a razão pode ser diferente é os dados de entrada está errado. Ernie Ernies, quando você vem para os EUA para ensinar Quantitative Trading classe Anon, Cabe ao organizador das oficinas, a revista Technical Analyst. Se você estiver interessado, por favor solicite uma oficina de Nova York ou Chicago em trainingtechnicalanalyst. co. uk Ernie Hi, você por favor, postar um link para o seu blog na moeda Trading Comunidade Nossos membros irão apreciá-lo. Os membros incluem: comerciantes de moeda, moeda e Forex Trading especialistas e profissionais. It39s fácil de fazer, basta cortar e colar o link e ele automaticamente links de volta para o seu site. Você também pode adicionar artigos, notícias e vídeos, se quiser. Envie-me por correio electrónico se você precisa alguma ajuda ou gostaria que eu o fizesse para você. Sinta-se livre para compartilhar quantas vezes quiser. A moeda Trading Comunidade: vortscurrencies Espero que você considere compartilhar conosco. Obrigado, James Kaufman, Editor Estou tentando usar Matlab39s HMM função para fazer alguma modelagem simples. Eu ainda estou tentando entender como usar todas as funções para fazer a previsão. Digamos que eu tenho uma série de tempo de retorno diário, eu alterá-lo para cima, plano ou para baixo (1, 0, -1) como a minha observação. Digamos que eu tenho um modelo simples de 2 estados. Agora eu posso colocar toda a série de observação junto com alguns valores iniciais de adivinhação para a Probabilidade de Emissão e Probabilidade de Transição para estimar a matriz de Probabilidade de Transição e Emissão. Agora, com estas duas matrizes, o que você faz para criar a nova previsão Você acaba de executar seq, estados hmmgenerate (1, TRANS, EMIS) para gerar um número que é o próximo Observação e chamá-lo de sua previsão Anon, não estou familiarizado com a função Matlab específico que você usa (eu uso um pacote gratuito em vez), mas em geral, sim, se você quiser prever a próxima variável de medição, que é o que você faz . Em outras aplicações, os comerciantes estão mais interessados ​​na variável de estado (por exemplo, uma relação de hedge, que não é diretamente observável e, portanto, quotchedquot), ea predição de variável de estado seria o foco. Ernie Obrigado Ernie. Essas funções são fornecidas pela caixa de ferramentas Matlab Statistics. Existem cinco funções disponíveis. Hmmgenerate 8212 Gera uma seqüência de estados e emissões de um modelo de Markov hmmestimate 8212 Calcula estimativas de máxima verossimilhança de probabilidades de transição e emissão de uma seqüência de emissões e uma seqüência conhecida de estados hmmtrain 8212 Calcula estimativas de máxima verossimilhança de probabilidades de transição e emissão a partir de uma seqüência de Emissões hmmviterbi 8212 Calcula o caminho de estado mais provável para um modelo de Markov oculto hmmdecode 8212 Calcula as probabilidades de estado posterior de uma seqüência de emissões Em relação ao seu comentário sobre Predição das Variáveis ​​de Estado, a realidade é que não temos idéia de quais são os estados e quantos Deles deve ser assim que as pessoas simplesmente assumem alguns estados arbitrários quotSunny, Rainy, Cloudyquot ou ie (RiskOn, RiskOff, RiskNeutral) tipo de cenário. Para eu obter os estados mais prováveis, eu preciso usar a função Viterbi. Provavelmente, hmmviterbi (seq, TRANS, EMIS). Mas eu precisarei primeiro descobrir aqueles TRANS, EMIS matriz de probabilidade dada a nossa própria seq. Das observações. TRANSEST2, EMISEST2 hmmtrain (seq, TRANSGUESS, EMISGUESS) Afinal, parece que haverá um pouco de estimativa de adivinhação trabalho aqui. Você estima a matriz de probabilidade e usa a matriz de probabilidade estimada para deduzir seus estados. Depois de todo esse trabalho duro, o que você pode encontrar é um monte de números de estado que eles chamam de quotMost Likelyquot estado dado quotWhat tinha happenquot Pergunta é como podemos usá-lo agora para a previsão do futuro Estou faltando alguma coisa aqui Anon, Para determinar o que um estado Variável deve ser, muitas vezes você precisa de algum conhecimento do domínio. I. e. Você precisa de mais do que HMM para restringir o seu modelo. Um bom exemplo é dado no Capítulo 3 do meu novo livro, que ilustra o uso de HMM em encontrar a razão de hedge de um par de cointegrating de ETFs. A variável de estado escolhida neste caso não é arbitrária. Além disso, neste caso, o objetivo não é predizer a próxima medida, embora você possa escolher fazê-lo. Acho que este artigo de Jerry Hong vale a pena ler para você, muito interessante (sobre HMM e SVM). Eecs. berkeley. eduPubsTechRpts2010EECS-2010-63.pdf Oi Laurent, Eu realmente li este papel antes. Na verdade, alguns colaboradores e eu tentamos replicar e estender os resultados para mais ações. O esforço foi um fracasso e reforçou minha opinião de que as técnicas de aprendizado de máquina que aprendem diretamente as regras não são adequadas para negociação. Ernie Isso é interessante. Eu implementado a minha versão do modelo markov e backtests me deu resultados de uma média de 66 vitória taxa em um período de negociação horária ao longo de um período acumulado de negociação de 5 anos. Em seguida, apliquei um método ppmc para estes resultados ea taxa de vitória subiu para uma média de 83. Em termos de negociação real I39ve sido comercial por 7 meses agora ea proporção de vitória média é 69 usando ambos os métodos. Ele fica melhor com o tempo e adapta-se de forma semelhante às condições do mercado em mudança, por isso confio nela. De qualquer maneira apenas dizendo que é possível fazer esta coisa. Obrigado pelo seu relatório de sucesso com o modelo HMM Por PPMC, você quer dizer filtro de partículas Monte Carlo Olá Ernie, você mencionou em seu livro que você usou quotBuy na estratégia gapquot na negociação ao vivo. Como você lida com um caso em que não há tradesquotes para um ou mais instrumentos durante a sessão de pré-abertura Analisando dados históricos, este caso às vezes é verdade. Um outro problema ocorre quando há tradesquotes mas eles são muito velhos, por exemplo timestamp é igual 08:55 Am. I39ll ser grato pela ajuda Olá Ernie, você mencionou em seu livro que você usou quotBuy na estratégia gapquot na negociação ao vivo. Como você lida com um caso em que não há tradesquotes para um ou mais instrumentos durante a sessão de pré-abertura Analisando dados históricos, este caso às vezes é verdade. Um outro problema ocorre quando há tradesquotes mas eles são muito velhos, por exemplo timestamp é igual 08:55 Am. I39ll ser grato pela ajuda Todo o backtesting intraday deve ser feito com aspas em vez de comércios. As citações estão sempre presentes às 9:30 am. Bem, uma vez que o subjectresearch relaciona-se diretamente com dinheiro fazendo oportunidade é totalmente inútil esperar qualquer tipo de feedbackcontribution útil: tolos contribuir, smarts ganhar dinheiro. Se alguém tem uma ideia de trabalho é muito simples de validar - ganhar dinheiro a alternativa seria contribuir e ter um monte de conversa agradável. August 12, 2017 12 de agosto de 2017 Um modelo de mudança de regime: Momentum vs reversão média hoje eu queria Para compartilhar um link para o meu primeiro post sobre Quantopian, em que eu descrevo uma estratégia que usa dados sociais para alternar entre reversão média e regimes de comércio baseado em impulso. Este feito é realizado usando um novo fator social criado. Acredito que esta estratégia apresenta uma nova abordagem à mudança de regime. Esta estratégia representa uma partida das minhas raízes HFT, como o período de rebalanceamento é de 24 horas. Eu acho que eu poderia me acostumar a esse tipo de ritmo pausado, no entanto, especialmente com retornos como estes8230 Dito isto, há provavelmente cargas de melhorias, como um limite social adaptativo e um esquema de ponderação melhor. Mas para um modelo de brinquedo eu acho que é bastante expressivo em mostrar como você pode começar. Agora, a estratégia negocia um universo de 50 Equity ETF8217s, mas provavelmente poderia ser expandido para mais. Quero estender isso para negociar ações individuais LongShort também. Se você tiver alguma dúvida, não hesite em comentar aqui ou usando o post, diretamente se você tem uma conta de Quantopian. Compartilhe isso: Mensagem de navegação Mensagens recentes Comentários recentes Categorias

No comments:

Post a Comment