Tuesday 24 October 2017

Estratégias de negociação matlab


A Bitfinex anunciou hoje o início dos contratos de mineração como produto comercial na plataforma. No total, 100 THS (terahashes por segundo) com uma expiração em 3 meses foram disponibilizados para negociação sob o nome TH1BTC. Os 100 THS fazem parte de um pool maior de 3500 THS para que mais contratos de mineração possam estar disponíveis no futuro. Curiosamente, isso marca a primeira vez que é possível fechar um contrato de mineração. O shorting de um contrato de mineração significa receber um montante da Bitcoin agora (o preço em que o vendemos) e, posteriormente, pagar dividendos (em Bitcoin) ao longo dos 3 meses seguintes, até que o contrato expire em meados de dezembro. Um lucro é feito se a soma de todos os dividendos pagos (mais os juros que pagamos para reduzir o contrato) é menor do que o recebemos no início quando vendemos o contrato (para outra pessoa obviamente). Isso significa que o preço do TH1BTC deve depender de 3 variáveis ​​(em ordem decrescente de importância): A mudança da dificuldade de mineração até 15 de dezembro O tempo restante até 15 de dezembro A taxa de juros (taxa de swap) Se a dificuldade aumentar, os pagamentos de dividendos se tornam menores porque 1 THS representa uma fração menor de todo o poder de hashing da rede. Portanto, o preço de um contrato deve diminuir se a dificuldade aumentar. Quanto mais chegarmos a expirar a febre, Bitcoins pode ter uma sensação de 1 THS no total. Portanto, o preço de um contrato deve diminuir quanto mais chegarmos ao vencimento e atingir um preço de 0 no vencimento. Quanto maior a taxa de juros, mais caro é entrar e manter o contrato durante todo o período de 3 meses. O Bitfinex não oferece swaps de 90 dias, portanto, entrar em um contrato com o objetivo de mantê-lo até o final contém um pouco de risco de taxa de juros porque em algum momento um novo swap deve ser retirado (a uma taxa de juros potencialmente desfavorável). Isso é menos um problema ao longo (as taxas de Bitcoin são tipicamente baixas) do que quando são curtas (há apenas um máximo de 100 contratos disponíveis no total, sem curto-circuito nulo). Para compensar os preços de risco deve aumentar quando as taxas de swap estão aumentando. O grande desconhecido é, naturalmente, a mudança na dificuldade de mineração nos próximos 90 dias. Na figura a seguir, vemos como a dificuldade mudou nos últimos 6 meses. Os dados são de Tradeblock e mostra não apenas uma representação gráfica de mudanças passadas na dificuldade (a dificuldade muda a cada 14 dias, dependendo da taxa de hash passada. Mais informações podem ser encontradas no wiki), mas também algumas estatísticas básicas de resumo. Em média, a dificuldade aumentou 27 nos últimos 30 dias e 77 nos últimos 60 dias. Para estimar o preço justo de um TH1BTC, assumiremos que a dificuldade aumentará em média 15 por mês nos próximos 3 meses. Atualmente, o preço de compra de um contrato no valor de 1 THS é de 2 BTC. A taxa da piscina é de 3 e ignoraremos as taxas de juros. Preenchendo todas as informações, obtemos os seguintes resultados: Por isso, se formos um longo contrato com base em nossas premissas, faríamos uma perda de cerca de 0,39 Bitcoin (um pouco mais na realidade desde que iremos começar a minar no meio de setembro até o meio De dezembro) porque os dividendos esperados (receita mensal) não irão cobrir nossos custos iniciais de 2 BTC antes do término do contrato. Por outro lado, ir a um preço de 2 Bitcoin teria gerado um lucro de cerca de 0,39 Bitcoin por contrato. Tenha em mente que não incluímos custos de swap que são atualmente em torno de 1 por dia (). Existem duas maneiras de analisar os resultados. Ou podemos dizer que os preços do TH1BTC estão atualmente sobrevalorizados e devem estar mais próximos de cerca de 1,5 BTB. Se assumirmos que a dificuldade aumentará mais de 15 por mês, os preços devem ser ainda menores do que isso. Ou podemos dizer que o mercado é eficiente e os preços são corretos, o que implicaria que o mercado espera dificuldade em diminuir, em média, cerca de 2 por mês nos próximos 90 dias. De qualquer forma, os resultados serão conhecidos com certeza em 90 dias. Lutando para se recuperar do mais recente acidente de inércia do Bitcoin que se originou no Bitfinex apenas quatro dias depois. Os preços da Bitcoin levaram outro mergulho hoje, já que os comerciantes de margem obtiveram suas posições liquidadas no BTC-e. O evento começou às 13h36 (UTC1), quando as grandes encomendas de venda começaram a aparecer na terceira maior troca Western Bitcoin BTC-e. O impulso para baixo aumentou de forma constante à medida que o livro de pedidos se tornava cada vez mais fino, baixando os preços para um valor baixo de USD 309 por Bitcoin às 13h43. Nos minutos seguintes, os preços se recuperaram rapidamente em volume fino de volta para US $ 442, enquanto os comerciantes de arbitragem começaram a aproveitar o desconto em relação a outras trocas. A BTC-e é uma das poucas trocas grandes que oferecem negociação de margem para seus clientes através da plataforma MetaTrader desde novembro de 2017, mas os detalhes de quem fornece os fundos necessários para negociação de margem continuaram a ser claros. A forma e, especialmente, o momento do acidente, aponta para que os comerciantes de margem sejam liquidados (ou interromper as ordens que estão sendo executadas), semelhante ao que aconteceu no Bitfinex há alguns dias atrás. No entanto, ao contrário do Bitfinex que é transparente sobre as posições de troca aberta. BTC-e não fornece dados importantes que seriam necessários para fornecer uma análise mais completa e, portanto, esta última afirmação só pode ser considerada um bom palpite. Ao contrário do Bitfinex, que depende de um algoritmo oculto em um esforço para controlar o fluxo de pedidos. BTC-e parece não ter salvaguardas especiais para minimizar tais eventos. A queda abaixo de 400 foi principalmente devido à falta de lances no caderno de pedidos e não porque o mercado acreditava que o valor verdadeiro era inferior a 400, já que a recuperação de mais de 440 apenas alguns minutos depois provou. Assim, suspender a negociação durante a volatilidade extrema para baixo poderia ter evitado facilmente o derramamento de sangue entre os comerciantes de margem, dando aos outros participantes do mercado mais tempo para engrossar o caderno de pedidos. Atualização 4:58 PM (UTC1): BrCapoeira postou no Reddit um interessante gráfico baseado em dados da plataforma Metatrader: este gráfico implica que uma única ordem grande foi a causa desse evento. Se esse pedido foi criado devido a uma chamada de margem, um simples erro, manipular o mercado ou abrir uma posição curta grande não está claro. O senso comum sugeriria que provavelmente era o resultado de uma chamada de margem de um único grande comerciante. A minha publicação anterior sobre este tópico foi exibida durante as discussões no rescaldo do último crash do Bitcoin. Coindesk foi um dos primeiros a retirá-lo e, desde então, várias publicações sobre transparência e a possível responsabilidade das trocas para gerenciar ativamente a execução das ordens começaram a aparecer. Como resultado desses eventos, Josh Rossi, vice-presidente de Desenvolvimento de Negócios do Bitfinex, prosseguiu no Reddit para abordar abertamente algumas das questões levantadas contra a troca. Os fatos que sabemos com certeza são que houve algumas grandes ordens de venda pouco antes do início do acidente, por exemplo, uma ordem de 500 vendas na Bitstamp às 9.49am (UTC1), cerca de 6 minutos antes que uma grande ordem de venda no Bitfinex desencadeasse o acidente. No entanto, os dados não nos dizem se foi insider trading, alguma forma de manipulação de mercado. Ou um simples erro. O fato é que depois que as posições de troca de abertura do crash do Bitcoin diminuíram de cerca de 28m para 24m, o que indica que cerca de 8400 margens foram fechadas as posições longas (assumindo uma média de 475) de uma maneira (chamada de margem) ou outra (stop order hit). Os dados não nos dizem qual é a proporção, mas, de acordo com Josh, apenas cerca de 650 Bitcoins foram vendidos como resultado de chamadas de margem. Como corretamente apontado por Jonathan Levin. O fato é que começando cerca de 24 horas antes do corte de bitcoin bater até o acidente em si, 1000 Bitcoins adicionais foram retirados em posições curtas e cerca de 2500 shorts foram posteriormente fechados durante o acidente. Se esses shorts foram abertos para proteger as posições existentes, como uma tentativa mal-intencionada de ativar uma chamada de margem, ou uma maneira de fazer frente ao mercado, usando informações privadas, não pode ser determinado a partir dos dados disponíveis (embora pareça estranhamente suspeito). O que foi inesperado Pessoalmente, o ponto interessante não é que o flash do Bitcoin tenha travado. As flutuações súbitas dos preços aconteceram no passado e acontecerão no futuro, especialmente em mercados ilíquidos como o Bitcoin. O ponto interessante é o envolvimento do Bitfinex e a forma como eles gerenciaram ativamente a execução da ordem sem informar antecipadamente os participantes no mercado. O mecanismo de correspondência do Bitfinex não foi interrompido durante todo o acidente, embora tenha diminuído a velocidade (mas em nenhum lugar tão ruim quanto o infame atraso da ordem de 70 minutos na atual troca de MtGox durante o crash em 2017). No entanto, o que o Bitfinex fez foi que eles introduziram algo que agora se referem como superposições de velocidade. O que significa é que eles essencialmente indicam ordens que consideram inválidas ou potencialmente perigosas e desaceleram intencionalmente. À primeira vista, isso pode parecer uma boa idéia. Quem não deseja que um filtro remova ou desacelere pedidos maliciosos No entanto, como tantas vezes com esse tipo de coisas, o diabo está no detalhe. O problema é que o Bitfinex não (e possivelmente nunca será) tornará público como exatamente eles categorizam uma ordem, pois 8220bad8221 e 8220 desaceleram o down8221. Se um participante do mercado decidir colocar uma grande ordem de venda em uma lista de pedidos fina, então essa decisão é essa. Se a sua ação foi ou não intencional não depende da troca para decidir. Pode ser que este participante do mercado tenha sido simplesmente a primeira pessoa a reagir a um evento importante e está totalmente disposto a suportar os custos adicionais da derrapagem resultante em antecipação a uma grande mudança de preço. Simplesmente não existe uma maneira de classificar com precisão ordens a priori como 8220good8221 ou 8220bad8221, pois isso assumiria automaticamente o conhecimento de todos os eventos futuros imediatos. O que pode ser melhorado Erros (8220fat finger8221, algoritmo havococ) acontecem, as margens são chamadas e as pessoas tentam jogar o sistema de todas as formas possíveis. Logicamente, deve haver salvaguardas no lugar para proteger os mercados e seus participantes. Bitfinex estava definitivamente ciente de potencial fluxo de ordem tóxica e medidas de contador preparadas. A única coisa que eles esqueceram foi informar seus clientes sobre os recursos de segurança ocultos. Esconder essas salvaguardas do público acrescenta incerteza ao mercado (especialmente agora que sabemos que existem e, às vezes, faz alguma coisa) e, essencialmente, coloca todos os comerciantes em confiança nas mãos do Bitfinex. Neste ponto, um comerciante só pode esperar que o Bitfinex sempre atue nas melhores intenções de seus clientes. Esta esperança pode ser inútil, porém, uma vez que o Bitfinex ganha dinheiro com taxas de negociação, independentemente se um comerciante realmente faz algum dinheiro. Não é preciso pensar por muito tempo para perceber o potencial oculto de abuso em tal sistema. A razão principal trazida por Josh porque o Bitfinex não pretende divulgar seu algoritmo é evitar dar aos comerciantes a possibilidade de explorá-lo é falso e o seguinte mostra o porquê. Esses são os disjuntores oficiais de mercado utilizados pelo NASDAQ, publicados on-line e inteiramente transparentes para cada participante no mercado. Essas regras certamente não são perfeitas, mas são simples, transparentes e funcionam para um dos maiores mercados de ações do mundo. Agora, tenho um grande respeito pelas pessoas que trabalham na plataforma Bitfinex, mas duvido que eles conseguiram criar um algoritmo que proteja os participantes do mercado melhor do que os usados ​​por uma grande troca negociando mais de 900 milhões de ações por dia, em média . E se o fizeram, agora é a chance de o Bitfinex provar isso ao mundo e, possivelmente, escrever a história, ensinando aos grandes como fazer uma troca adequada. Quando se trata de trocas públicas, a transparência é uma obrigação, não apenas para o Bitfinex, mas para qualquer troca. Os participantes do mercado devem saber exatamente o que acontece quando fazem um pedido e, em nenhuma circunstância, devem confiar apenas em boa fé. As salvaguardas são importantes porque os acidentes ocorrem e os mercados caem, mas não depende da troca de discriminação de ordem secreta. Existem diferentes maneiras de proteger os mercados financeiros e nenhum deles é perfeito. A adição de complexidade geralmente aumenta a chance de efeitos colaterais não intencionais e, portanto, uma abordagem simples e transparente parece mais apropriada do que uma solução oculta e complexa. Dois dias atrás, o BitMEX reduziu suas taxas de negociação para 0 e comemorou isso, lançando um mercado básico de grifos no Github. O BitMEX atualmente está executando um desafio comercial até o dia 29 de agosto de 2017 para promover sua nova plataforma. Liberar um bot de marcação de mercado é provavelmente uma maneira interessante e efetiva de aumentar o tráfego da API e o esforço testar a plataforma um pouco. Claro que não consegui resistir e dar uma olhada. Market-maker é um Liquidbot bifurcado. Que foi original projetado para rodar no agora obsolet MtGox troca. Houve algumas mudanças menores (nova classe api para se conectar ao BitMEX, algumas impressões adicionais para console, mudanças para se adaptar para contratos de futuros e uma impressão enorme e desnecessária para o console ao iniciar), mas sem alterações significativas na lógica comercial. O algoritmo usa REST e verifica apenas as mudanças a cada 60 segundos. Isso já desqualifica o bot, pois é essencial demais para reagir às mudanças em curso no livro de pedidos. O BitMEX limita os pedidos para a API REST a 150 por 5 minutos para que você possa tentar reduzir os 60 segundos para algo como 3, mas ele não altera o fato de que, assim que os mercados começarem a se mover, você atingirá o limite e ficará preso com as posições abertas. Para ser justo, o BitMEX fornece o bot mais como um stunt de marketing e afirma explicitamente que a mudança para o WebSocket será altamente benéfica, pois permite atualizações em tempo real. Em geral, o algoritmo é escrito de forma sólida, funciona tecnicamente e é fácil de configurar, mas ganhou-lhe nenhum dinheiro a longo prazo. Se alguém considera seriamente utilizar este bot, recomendaria as seguintes pequenas alterações para tornar o código mais útil: 1. Alterar para o Websocket 2. Sair da posição ao fechar: 3. Criar ordens a partir do ponto intermediário: Além disso, eu recomendaria medir Volatilidade de alguma forma e adaptar a distância entre as encomendas de forma dinâmica, bem como o tamanho. Durante o teste, a API sempre foi sensível e precisa. O volume na troca ainda é baixo, mas os fundamentos da plataforma parecem promissores. Este bot é uma ferramenta divertida para introduzir os usuários no mundo da fabricação de mercado e do comércio algorítmico, mas ganhou uma chance contra algoritmos estabelecidos. Nota: Se você considerar usar este algoritmo, tenha em mente que a criação de mercado é um trabalho a tempo inteiro. Qualquer coisa menos do que a dedicação completa, tempo de reação rápido e 100 tempo de atividade fará com que você perca dinheiro. Editar: Acompanha as conseqüências aqui. Hoje, os preços da Bitcoin fizeram um mergulho enquanto os comerciantes da margem em uma das maiores trocas Bitfinex conseguiram que suas ordens fossem liquidadas. Para muitos observadores próximos do mercado e comerciantes mais sofisticados, isso não veio como uma surpresa. De fato, as posições longas têm crescido continuamente ao longo dos últimos meses em antecipação a uma nova bolha nos preços da Bitcoin e atingiram até 30m em posições de troca pendentes no Bitfinex. Agora, isso não seria um problema por si só, desde que existam fundos suficientes para apoiar o empréstimo. Infelizmente, a maioria dessas posições longas foram inseridas em cerca de 600 8211 640 USDBTC e as garantias foram principalmente fornecidas no próprio Bitcoins. A tabela a seguir mostra bem o acúmulo de posições longas, atingindo o máximo de 14 de julho com cerca de 32m em swaps. Executando algumas matemáticas rápidas com base na margem de manutenção do Bitfinex de 13 e assumindo a Bitcoin como garantia, achamos que as chamadas de margem devem começar em torno da marca 520 8211 540 USDBTC. Ontem, os preços chegaram perto e hoje eles finalmente pularam no penhasco. O problema é que, uma vez que as chamadas de margem estabelecidas em você têm um efeito de cascata que rasga no livro de pedidos, causando ainda mais pedidos para alcançar o ponto de não retorno e aumentando ainda mais o impulso descendente. Esse tipo de eventos não se limitam às trocas de Bitcoin, mas também podem ocorrer em trocas importantes, como durante o crash do Flash de 2010 nos EUA. A causa desse crashe de flash pode variar e passa de erros de dedos gordurosos para erros de programação para chamadas de margem em cascata. É interessante ver como as trocas lidam com esses eventos. Nos EUA, a Nasdaq implementou disjuntores de mercado que causariam que a negociação pare em circunstâncias extremas. Os mercados Bitcoin ainda não são tão avançados e geralmente continuam a negociar. Se olharmos para a ação da ordem no Bitfinex hoje, vemos algo muito peculiar: parece (e isso é apenas um palpite, pois não há comentários oficiais da troca) como se o Bitfinex estivesse executando um algoritmo para lidar com as chamadas de margem. O algoritmo começa a vender, mas se limita a uma queda de 10 em 1 minuto. Se os preços caírem mais de 10 em 1 minuto, ele vai parar de vender e aguardar pedidos de compra. Uma vez que haja novamente uma certa quantidade de ordens de compra no livro de pedidos, o algoritmo começa a vender novamente até que todas as chamadas de margem sejam atendidas. Edit: LeMogawai foi o primeiro a apontar isso neste post e corresponde à minha observação pessoal no momento do evento. Esta parece ser uma maneira interessante de lidar com chamadas de margem em cascata, mas também pode ser considerada como manipulação de mercado limítrofe do lado da troca. Ao espalhar as ordens de venda ao longo do tempo, o impulso descendente é reduzido, no entanto, os comerciantes acabam negociando contra a própria troca e não o mercado. A troca tem uma vantagem informacional nesse ponto e, portanto, é mais provável que se beneficie do que os comerciantes. Felizmente, isso só durou cerca de 10 minutos, após o que o controle foi devolvido ao mercado. Outras trocas que também oferecem negociação de margens como BTC-e e OKcoin agora estão em uma posição favorável e podem aprender com os eventos de hoje. Implementar um sistema mais parecido com os disjuntores de grandes trocas, como o Nasdaq, pode ser um primeiro movimento inteligente. Recentemente estou trabalhando para começar minha nova plataforma de negociação. Esta nova versão é baseada no Python, usa o MySQL para manter um banco de dados de todas as séries temporais de diferentes moedas virtuais com preenchimento automático da BitcoinCharts e integra as 3 maiores trocas MtGox, BTC-E e Bitstamp. A plataforma será usada como forma de testar algumas estratégias e se envolver em negociação automática. Durante o período anterior a isso, decidi retirar alguns dados da BTC contra o USD da BitcoinCharts e com base nas idéias de um artigo de Hashem e Timmermann (1995) implementaram uma estratégia de negociação simples. A idéia é prever o sinal do retorno do período t1 com base em uma regressão, que é estimada em uma seleção automática de indicadores técnicos durante o último n período até t. Então, após t1 aconteceu, atualizamos o modelo e tentamos prever t2 usando todos os dados disponíveis dos últimos n períodos até t1 e assim por diante. Para minha tese de bacharel, examinei quatro regras comerciais diferentes nos mercados de Forex. Ele usa o teste MCS e SPA para procurar modelos válidos entre os diferentes parâmetros que não estão sujeitos a espionagem de dados. Tendo em conta os custos de transação realistas, não encontramos evidências de retornos excessivos, o que é consistente com a eficiência do mercado. Com este código você deve poder procurar oportunidades de arbitragem de Bitcoin dentro do BTC-e. Ele usa a idéia de um preço e aplica arbitragem triangular, levando em conta custos e propagação. A razão pela qual eu postei isso aqui é, apesar disso, funciona, é provável que você seja muito lento para competir com outros investidores fazendo o mesmo. Possíveis melhorias seriam levar em conta a profundidade do livro de pedidos e dividir as negociações dinamicamente, tentando minimizar outros comerciantes fazendo o mesmo. Também configurar tudo em um servidor dedicado perto da localização física do motor de correspondência BTC-e deve reduzir drasticamente o atraso e dar-lhe uma vantagem potencial. Post navigationMatlabTrading Esta publicação é sobre o quão importante é usar diferentes tipos de métodos de otimização, como algoritmos genéticos e paralelização para obter resultados mais rápidos. Otimização de Algoritmos Genéticos Apesar do fato de que o princípio do algoritmo genético (evolutivo) é muito bem explicado nos webinars de MathWorks, no entanto, ele é usado apenas para otimizar a escolha de um grupo de estratégia a partir de um conjunto. Este é um bom exemplo do uso desses algoritmos, no entanto, acontece que há uma necessidade de configurar muitas variáveis ​​com intervalos significativos para uma estratégia, você não passa por uma iteração e a paralelização de processos. Os cálculos podem levar vários dias . Certamente, existem estratégias na fase final de otimização. Quando quase certamente sabemos que a estratégia de negociação é bem sucedida, podemos aguardar vários dias também ou alugar todo o cluster - o resultado pode valer a pena. No entanto, se precisarmos estimar os resultados de uma estratégia volumosa e decidir se vale a pena gastar o tempo, os algoritmos genéticos podem ser perfeitamente adequados. Nós fornecemos a possibilidade de usar três métodos para otimizar a estratégia em WFAToolbox: Método linear 8211 é um modo usual de classificação em que você verá todos os resultados intermédios (sub-ótimos). Ele fornece a máxima precisão. Método paralelo 8211, todos os kernels da sua CPU serão usados. Não permite ver resultados intermediários, mas acelera significativamente a operação. Ele fornece a máxima precisão durante o aumento da velocidade de computação. O método genético 8211 usa o algoritmo de otimização evolutiva. Permite ver valores sub-óptimos, mas dá o resultado próximo ao melhor. Não é um método muito preciso, mas é suficientemente preciso para a execução inicial da estratégia. Muito rápido. Muitas vezes, nos perguntam se o WFAToolbox - Walk-Forward Analysis Toolbox para MATLAB tem a capacidade de usar o GPU em cálculos. Infelizmente, o GPU não é adequado para todas as tarefas e seu uso é muito específico. Para usá-lo, você precisa ajustar a lógica e o código de cada estratégia para o teste de núcleos gráficos. Infelizmente, devido a tal não-universalidade do método, não se pode usar o GPU no WFAToolbox. Continuando a Parte 2 da discussão de problemas e soluções no teste e análise da estratégia de negociação algorítmica no MATLAB, convido você a ler esta publicação sobre o problema da indisponibilidade da visualização dos processos em soluções de software modernas para testar sistemas de negociação. Visualização do processo de teste Na minha experiência de trabalho, muitas vezes analisei outras plataformas populares para testes de estratégia comercial. Como a TradeStation. MetaStock. Multicartas etc e sempre fiquei surpreso com a pouca atenção dada à visualização do processo de teste. O que é que, quando não vemos os resultados dos valores intermediários, sub-ótimos de parâmetros otimizados, muitas vezes jogamos fora o ouro junto com a sujeira. O assunto é devido a uma amostragem excessivamente ampla, a estratégia ajusta os parâmetros da maneira como queremos ver uma estratégia perfeita que falha na vida real ou veja uma ou duas promoções, que supostamente são as melhores porque foi selecionado dados de intervalo de tempo onde a A melhor estratégia de negociação seria buy-and-hold, mas por que outras estratégias são necessárias para a visualização do processo de teste de estratégia de negociação em MATLAB (proposto no webinar). Como resultado, sem ver resultados intermédios, nós precisamos que simpatizar187 mudar os parâmetros para tentar Para obter melhores dados ou assisti-lo em algum 3D ou 4D (a cor é a 4ª dimensão), conforme proposto nos webinars. A análise de valores nos espaços N-dimensional pode definitivamente ser uma alternativa, mas tem várias limitações: o que acontece se houver mais de 4 dimensões. Quando você vê quais sinais e a que freqüência aparecem na faixa de preço, você tem quase todos os Representação visual necessária de sua estratégia: a freqüência das transações, sua rentabilidade (curva de renda), a precisão da abertura, a semelhança com outros valores sub-ótimos, etc., que não pode ser dito sobre o desempenho no espaço N-dimensional, onde todas as informações úteis É, de fato, que o valor ótimo não é apenas um, mas existe toda uma gama de valores subóptimos em uma ou mais áreas. Ao otimizar uma estratégia na WFAToolbox 8211 Walk-Forward Analysis Toolbox para MATLAB174. Como um novo valor ótimo é encontrado, os sinais de estratégia de negociação no período em amostra e fora da amostra aparecem imediatamente no gráfico, para que você sempre possa controlar o intervalo de opções que você deve atribuir e também pode pausar a otimização Sem esperar o fim do teste, pois fica claro que algo deu errado ou tudo está bem. Hola, meu nome é Igor Volkov. Desenvolvi estratégias de negociação algorítmicas desde 2006 e trabalhei em diversos fundos de hedge. Neste artigo, gostaria de discutir as dificuldades surgidas no caminho do desenvolvedor de estratégias de negociação MATLAB durante testes e análises, bem como oferecer soluções possíveis. Eu tenho usado o MATLAB para testar estratégias de algoritmos desde 2007 e cheguei à conclusão de que esta não é apenas a ferramenta de pesquisa mais conveniente, mas também a mais poderosa porque possibilita a utilização de modelos complexos estatísticos e econométricos, redes neurais, Aprendizado de máquina, filtros digitais, lógica difusa, etc., adicionando caixa de ferramentas. A linguagem MATLAB é bastante simples e bem documentada, então mesmo um não programador (como eu) pode dominá-la. Como tudo começou. Foi 2008 (se não me enganei) quando o primeiro webinar sobre negociação algorítmica em MATLAB com Ali Kazaam foi lançado, abrangendo o tópico de otimização de estratégias simples baseadas em indicadores técnicos, etc., apesar de um código bastante 8220chaotic8221, as ferramentas eram interessantes O suficiente para usar. Eles serviram como ponto de partida para pesquisa e aprimoramento de um modelo de teste e análise que permitiria usar todo o poder das caixas de ferramentas e a liberdade das ações MATLAB durante a criação de suas próprias estratégias comerciais, ao mesmo tempo que permitiria controlar o processo De testes e os dados obtidos e suas análises subsequentes escolheriam um portfólio efetivo de sistemas de negociação robustos. Posteriormente, os webinars Mathworks foram atualizados a cada ano e gradualmente introduziram elementos cada vez mais interessantes. Assim, o primeiro webinar em negociação de pares (arbitragem estatística) usando a Econometric Toolbox foi realizado em 2010, embora a caixa de ferramentas de testes e análises permaneceu a mesma. Em 2017, surgiu o Trading Toolbox da Mathworks, que permitiu conectar MATLAB a diferentes corretores para a execução de suas aplicações. Embora houvesse soluções automáticas para a execução das transações, a partir desse ponto, o MATLAB poderia ser considerado um sistema para desenvolver estratégias de negociação com um ciclo completo: desde o carregamento de dados até a execução de estratégias de negociação automatizadas. Por que cada Algotrader deve reinventar a roda No entanto, a Mathworks não ofereceu uma solução completa para testar e analisar as estratégias. Os códigos que você poderia sair dos webinars eram os únicos elementos de um teste completo do sistema, e era necessário modificá-los. , Personalize-os e adicione-os à GUI para facilidade de uso. Foi muito demorado, colocando uma questão: seja qual for a estratégia, deve passar pelo mesmo processo de testes e análises, o que permitiria classificar-se como estável e útil 8211, então por que cada algotrader reinventar a roda e escrever Seu próprio código para estratégias de teste adequadas em MATLAB Então, a decisão foi tomada para criar um produto que permitisse realizar todo o processo associado ao teste e análise de estratégias de negociação algorítmicas utilizando uma interface simples e fácil de usar. Em primeiro lugar, gostaria de responder as seguintes perguntas: O que aconteceu com o blog. Jev Kuznetsov já não é o dono. O blog foi comprado pelo nosso amigo Jev Kuznetsov, que se mudou para o seu outro blog com o blog com o blog. Ele concluiu que Python é melhor que o MATLAB para negociação, o que eu considerava falso. MATLAB continua a ser um dos melhores softwares do mundo para fins de negociação algorítmica IMHO (eu tenho alguns fatos sobre isso, porém para discussão futura). 2. Nós mudamos a marca. A partir deste momento, o blog será chamado MatlabTrading, o que é muito mais compreensível em relação aos tópicos que irá incluir. Além disso, o nome do domínio foi alterado para matlabtrading em vez do matlab-trading. blogspot inicial. Embora o domínio antigo ainda esteja funcionando redirecionando do nome de domínio primário. O que acontecerá com o blog 1. Mais publicações e artigos Esperamos trazer a vida a este blog postando conteúdos relevantes uma ou duas vezes por semana. Nos primeiros meses, publicaremos principalmente artigos e vídeos que já temos para tornar mais fácil para os nossos queridos leitores pesquisar informações sobre um recurso e reticular-se sobre eles. Então temos planos para escrever posts sobre aspectos práticos da negociação algorítmica no MATLAB. Como criar estratégias modernas de negociação automática, tais como: negociação de pares de arbitragem estatística significa estratégias de negociação neutras de mercado de reversão com base na cointegração bollinger bandas filtro kalman etc para commodities, ações e Forex. Tendência de estratégias seguidas com Jurik Moving Average e outros filtros digitais sofisticados Estratégias de previsão com aprendizado de máquina (Support Vector Machines) e outros métodos Criando estratégias de negociação robustas usando o teste visual avançado de gerenciamento de dinheiro para reinvestir seu capital (ciência sobre como obter 1M de 10K Em um ano com o máximo, mas o risco estimado e as recompensas de suor). Talvez depois de ler isso, você pensou que este seria um outro artigo burro para aqueles caras pobres que procuram como se tornar rico através da negociação no forex e tudo isso. Bem, isso é totalmente falso Estamos trabalhando em MATLAB, e a maioria de nós é cientistas e especialistas nesse aspecto, então tudo é sério. 2. Mais interatividade Ficarei feliz se pudermos nos relacionar com comentários em postagens. Assine nossas novidades para receber alertas sobre as últimas postagens e eventos. Mais tarde, temos planos de fazer webinars do Google Hangouts. Não perca, clique no botão Siga no canto superior direito para se juntar à nossa comunidade. O que você gostaria de ler em nossas postagens de blog Que tópicos você pode sugerir Por favor, escreva aqui nos comentários. Na minha publicação anterior, cheguei à conclusão de que a negociação de pares fechados para perto não é tão lucrativa hoje quanto antes. Um leitor apontou que poderia ser que a natureza reversa dos spreads acabasse de mudar para prazos mais curtos . Eu compartilhei a mesma idéia, então eu decidi testar essa hipótese. Desta vez, apenas um par é testado: 100 SPY vs -80 IWM. O Backtest é executado em dados de barra de 30 segundos de 11.2017 a 12.2017. As regras são simples e similares à estratégia que testei na última publicação: se o retorno da barra do par exceder 1 no z-score, troque a barra seguinte. O resultado parece muito bonito: considero que isso é uma prova suficiente de que ainda existe uma grande inversão média na escala de 30 segundos. Se você acha que este gráfico é muito bom para ser verdade, isso infelizmente é o caso. Não foram considerados custos de transação ou spread de oferta e solicitação. Na verdade, eu duvidaria que houvesse algum lucro depois de subtrair todos os custos de negociação. Ainda assim, este tipo de gráficos é a cenoura pendurada na minha frente, mantendo-me em pé. Boas notícias de todos, de acordo com os meus cálculos (que eu sinceramente espero que sejam incorretas), o comércio de pares clássicos está morto. Algumas pessoas estariam totalmente em desacordo, mas aqui é o que eu encontrei: vamos tomar uma estratégia hipotética que funciona em uma cesta de etfs: SPY, XLY, XLE, XLF, XLI, XLB, XLK, IWM, QQQ, DIA A partir destes etfs 90 unique Podem ser feitos pares. Cada par é construído como um spread neutro para o mercado. Regras de estratégia: em cada dia, para cada par, calcule o z-score com base no desvio padrão de 25 dias. Se o limite de gt de z-score, fique curto, feche o próximo dia. Se o limite de z-score lt for longo, feche o próximo dia. Para manter tudo simples, o cálculo é feito sem gerenciamento de capital (um pode ter até 90 pares em portfólio Em cada dia). Os custos de transação também não são considerados. Simplificando, esta estratégia rastreia a natureza do dia de um dia reverter a natureza dos spreads de mercado neutro. Aqui estão os resultados simulados para vários limiares: Não importa qual limite seja usado, a estratégia é altamente rentável em 2008, muito boa até 2009 e completamente inútil desde o início de 2010. Esta não é a primeira vez que me deparo com essa mudança na reversão média Comportamento em etfs. Não importa o que tentei, não tive sorte em encontrar uma estratégia de negociação de pares que funcionasse em ETFs passados ​​em 2010. Minha conclusão é que esses tipos de modelos simples de stat-arb simplesmente não cortaram mais. Negociação algorítica com MATLAB: WFAToolbox Video Tutorial Trading, FOREX, Stocks, Algorithmic Trading, Automated Trading, Quantitative Finance, Computational Finance - todas essas áreas de conhecimento são relevantes para este curso. ÚLTIMA ATUALIZAÇÃO . 31 de maio de 2017 Junte-se aos 1400 estudantes satisfeitos neste incrível curso de negociação algorítmica No último capítulo, mostraremos um método especial, que lhe permite tomar a estratégia de negociação típica e convertê-la em uma nova. O que lhe trará 1461350 de 10000 em 4 anos. Este curso irá mostrar-lhe como criar, testar e analisar estratégias de negociação algorítmicas nos mercados financeiros (forex, stocks, etc.) no MATLAB, utilizando a aplicação WFAToolbox, que pode tornar o processo de desenvolvimento confortável e Interessante, bem como fornece resultados confiáveis, reduzindo todo o processo de semanas ou meses a alguns minutos. Este curso destina-se a quem conheça os fundamentos do idioma MATLAB e tenha alguma experiência em negociação financeira nos mercados financeiros (forex, ações etc.), mas mesmo que não esteja familiarizado com o MATLAB, nosso curso inclui todos os links para os recursos necessários, O que permitirá que você compreenda tudo o mais rápido possível. No final deste curso, você poderá carregar dados gratuitos do Google Finance diretamente no MATLAB, descrever as regras da sua estratégia de negociação nos mercados financeiros (forex, ações etc.) na linguagem MATLAB, realizar uma análise visual progressiva usando paralelização De processos e algoritmos genéticos, bem como realizar análises detalhadas de seus testes. Na parte final, vamos contar e mostrar-lhe um método especial, o que lhe permite tomar uma estratégia comercial típica nos mercados financeiros (forex, ações, etc.) e convertê-lo em um novo, o que o levará 1461350 de 10000 em 4 anos. Não há Magia ou segredo neste método, ele usa matemática pura. Principais características e duração do curso Este curso é um pouco intratável para a Udemy, porque foi feito por um grupo de pessoas e o trabalho levou mais de 1,5 meses. No nosso mundo moderno, o tempo converte-se em um bem realmente caro, por isso nos surpreendemos realmente quando vemos que alguns autores nos dizem orgulhosamente que seu curso leva 7 ou mesmo 15 horas - onde pode-se encontrar tempo para vê-lo? Por isso, nós fizemos Trabalho excelente e difícil para ter certeza de que você irá entender toda a informação durante 30 minutos, além de aprender todos os métodos e instrumentos específicos, que são descritos em nome do curso. Tentamos fazer tudo o que é máximo, informativo e direto ao ponto. Você consegue se lembrar do episódio do filme The Matrix, onde Neo foi conectado a um cabo para conhecer o Kung Fu em alguns segundos. Tentamos fazer com que você entenda o WFAToolbox com a mesma velocidade. Ou quase o mesmo. A história sobre fundos de hedge que faz bilhões de dólares por ano usando o MATLAB (e o caminho para você roubar suas tecnologias). Você sabe qual tecnologia é usada pelos departamentos de fundos de hedge de JP Morgan ou Deutsche Bank para criar seus Estratégias algorítmicas altamente eficazes. Sim, às vezes os desenvolvedores escrevem tudo a partir do zero, mas na maioria dos casos eles usam o sistema MATLAB. Porque ele acelera o processo de desenvolvimento de sistemas de negociação em mercados financeiros (forex, estoques etc.) e a análise visual pode ser realizada mesmo por estudante. O mais importante que tem todas as coisas necessárias para a análise de finanças quantitativas avançadas e engenharia financeira. Processamento de sinal digital (filtros adaptativos não-lineares, filtros kalman), redes neurais, máquinas de vetor de suporte, algoritmos genéticos e muitos outros e mais modernos. Em nosso mundo moderno, alguém pode ser considerado como pessoa indecente se ele ou ela publica um artigo sobre o novo método de análise de dados ou previsão de séries temporais sem anexo de tal código na linguagem MATLAB. Até muito recentemente, o MATLAB estava disponível apenas para profissionais altamente remunerados de investimento Bancos e fundos de hedge, porque o preço da versão básica era igual a 4400, mas recentemente a empresa MathWorks oferece licença doméstica para uso pessoal apenas por 135 ótimos resultados de que tal versão possui funcionalidades completas e permite que você use todos os recursos do MATLAB. Durante o estudo, você pode instalar a versão de avaliação gratuita e evitar o pagamento até ter certeza de que precisa deste produto. A disponibilidade do MATLAB deu novas e inéditas oportunidades para investidores e comerciantes privados. Que estão interessados ​​na criação de estratégias de negociação algorítmicas altamente lucrativas nos mercados financeiros (forex, ações etc.). Mas temos que mencionar que os investidores institucionais geralmente não usam uma única pessoa, mas uma equipe inteira para criar suas estratégias, mesmo em MATLAB, porque alguns processos precisam ser integrados em uma estrutura existente (por exemplo, estrutura bancária), portanto, alguns dos processos necessários nunca Existia ou requer conexão com serviços caros. Mas estes dias finalmente temos o WFAToolbox. Este aplicativo (de fato, o seu complemento) que funciona no MATLAB, que permite realizar todos os processos necessários para criar, testar e analisar estratégias de negociação nos mercados financeiros (forex, ações etc.) no MATLAB, proporcionando o máximo de conforto e velocidade e Usando otimização moderna e sistemas de visualização de dados sem qualquer carinho em oportunidades ilimitadas de uso de sistemas de análise de dados, predição e assim por diante, que são parte do próprio MATLAB. Este curso para comerciantes que têm alguma experiência com Forex, Stocks, etc., que comercializam ou querem descobrir um mundo de Finanças Quantitativas para si próprio. Este curso não se destina para aqueles que não estão prontos para investigar as coisas às vezes difíceis (mas, portanto, rentáveis), mesmo com nossa ajuda abrangente. Este curso NÃO é para aqueles que procuram 31242 de 100 investimentos durante a noite sem nenhum esforço. Muitas coisas deste curso devem ser bem aprendidas antes de começar a fazer mais de 100 de retorno anual em seus investimentos.

No comments:

Post a Comment