A Bitfinex anunciou hoje o início dos contratos de mineração como um produto de negociação em sua plataforma. No total, 100 THS (terahashes por segundo) com um vencimento 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 se tornar disponíveis no futuro. Curiosamente, isso marca a primeira vez que é possível cortar um contrato de mineração. Shorting um contrato de mineração significa receber uma quantidade de Bitcoin agora (o preço que vendê-lo em) e, posteriormente, pagar dividendos (em Bitcoin) durante os três meses seguintes até o contrato expira em meados de dezembro. Um lucro é feito se a soma de todos os dividendos pagos (mais os juros que pagamos para curto o contrato) é menor do que o que recebemos no início quando vendemos o contrato (para alguém obviamente). Isto 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) THS representa uma fração menor do poder de hashing da rede inteira. Portanto, o preço de um contrato deve diminuir se a dificuldade aumenta. Quanto mais perto chegarmos à expiração da febre Bitcoins pode ser mente com 1 THS no total. Portanto, o preço de um contrato deve diminuir mais perto chegamos à expiração e chegar a um preço de 0 na expiração. Quanto maior a taxa de juros mais caro é para entrar e manter o contrato sobre o comprimento total de 3 meses. Bitfinex não oferece swaps de 90 dias, portanto, entrar um contrato com a meta de mantê-lo até o final contém um pouco de risco de taxa de juros porque em algum momento um novo swap tem de ser retirado (a uma taxa de juros potencialmente desfavorável). Isto é menos um problema quando vai longo (Bitcoin taxas são normalmente baixas) do que quando vai curto (há apenas um máximo de 100 contratos disponíveis no total, sem naked shorting). 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 do passado. 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 vamos assumir que a dificuldade vai aumentar em média 15 por mês durante os próximos 3 meses. Atualmente, o preço de compra de um contrato no valor de 1 THS é de 2 BTC. A taxa de piscina é 3 e vamos ignorar as taxas de juros. Preenchendo todas as informações obtemos os seguintes resultados: Portanto, se vamos longo um contrato com base em nossas suposições que faria uma perda de cerca de 0,39 Bitcoin (um pouco mais na realidade, uma vez que vamos começar a mineração em meados de setembro até o meio De dezembro) porque os dividendos esperados (receita mensal) não vão cobrir nossos custos iniciais de 2 BTC antes do contrato expirar. Por outro lado, ir curto a um preço de 2 Bitcoin teria gerado um lucro de cerca de 0,39 Bitcoin por contrato. Tenha em mente que nós didn8217t incluir swap custos que estão atualmente em torno de 1 por dia (). Há duas maneiras de olhar para os resultados. Ou podemos dizer que os preços para TH1BTC estão atualmente sobrevalorizados e devem estar mais perto de 1,5 BTC. Se assumir a dificuldade vai aumentar mais de 15 por mês, em seguida, os preços devem ser ainda mais baixos do que isso. Ou poderíamos dizer que o mercado é eficiente e os preços estão corretos, o que implicaria que o mercado está esperando dificuldade de diminuir em média cerca de 2 por mês nos próximos 90 dias. De qualquer maneira, os resultados serão conhecidos com certeza em 90 dias. Esforçando-se para recuperar do mais recente acidente de flash Bitcoin que se originou no Bitfinex apenas quatro dias. Os preços da Bitcoin deram outro mergulho hoje, à medida que os comerciantes de margem obtiveram suas posições liquidadas no BTC-e. O evento começou às 1:36 PM (UTC1) quando grandes ordens de venda começaram a aparecer na terceira maior troca Bitcoin ocidental BTC-e. O impulso descendente aumentou de forma constante à medida que a carteira de encomendas ficou cada vez mais fina, atingindo preços baixos de US $ 309 por Bitcoin às 13h43. Nos minutos seguintes, os preços recuperaram rapidamente em volume fino de volta para cerca de USD 442 como comerciantes de arbitragem começou a tirar proveito do desconto em relação a outras bolsas. A BTC-e é uma das poucas trocas importantes que oferecem margem de negociação para seus clientes através da plataforma MetaTrader desde novembro de 2013, mas os detalhes de quem excactly fornece os fundos necessários para a margem comercial permanecem obscuros. A forma e especialmente o tempo do acidente apontam para os comerciantes de margem que estão sendo liquidados (ou ordens de parada sendo executadas), semelhante ao que aconteceu no Bitfinex um par de dias atrás. No entanto, ao contrário do Bitfinex, que é transparente sobre as posições de swap aberto. BTC-e não fornece dados importantes que seriam necessários para fornecer uma análise mais aprofundada e por isso esta última afirmação só pode ser considerada uma boa suposição. Ao contrário do Bitfinex, que se baseia em um algoritmo escondido em um esforço para controlar o fluxo da ordem. O BTC-e parece não ter salvaguardas especiais no local para mitigar tais eventos. A queda abaixo de 400 foi principalmente devido à falta de lances no livro de encomendas e não porque o mercado acreditava que o verdadeiro valor era inferior a 400, como a recuperação de volta para mais de 440 apenas minutos mais tarde, basicamente, provou. Assim, interromper negociação durante extrema volatilidade para baixo poderia ter evitado facilmente o derramamento de sangue entre os comerciantes de margem, dando mais participantes do mercado mais tempo para engrossar o pedido. Atualização 4:58 PM (UTC1): BrCapoeira postou no Reddit um gráfico interessante baseado em dados da plataforma Metatrader: Este gráfico implica que uma única grande ordem foi a causa deste evento. Se esta ordem foi criada devido a uma chamada de margem, um simples erro, para manipular o mercado, ou para abrir uma grande posição curta permanece obscuro. O senso comum sugeriria que era provavelmente o resultado de uma chamada de margem de um único comerciante grande. Meu post anterior sobre este tópico foi criado durante as discussões no rescaldo do mais recente acidente com o flash Bitcoin. Coindesk foi um dos primeiros a buscá-lo e desde então vários posts sobre transparência e a possível responsabilidade de trocas para gerenciar ativamente a execução de ordens começaram a aparecer. Como resultado desses eventos, Josh Rossi, vice-presidente de Desenvolvimento de Negócios da Bitfinex, foi à 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 venda de 500 na Bitstamp às 9.49am (UTC1), cerca de 6 minutos antes de uma grande ordem de venda no Bitfinex disparou o acidente. No entanto, os dados não nos dizem se foi insider trading, alguma forma de manipulação do mercado. Ou um simples erro. O fato é que após o flash flash Bitcoin as posições de swap abertas diminuíram de cerca de 28m para 24m o que indica cerca de 8400 margem de posições longas foram fechadas (assumindo uma média de 475) de uma forma (chamada de margem) ou outra. 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 correctamente salientado por Jonathan Levin. O fato é que começando cerca de 24 horas antes do acidente de flash bitcoin até o acidente em si um adicional de 1000 Bitcoins foram retirados em posições curtas e cerca de 2500 shorts foram posteriormente fechados durante o acidente. Se esses shorts foram abertos para cobrir posições existentes, como uma tentativa maliciosa para desencadear uma chamada de margem, ou uma maneira de front-run do mercado usando informações privadas não pode ser determinada a partir dos dados disponíveis (parece estranhamente suspeito embora). O que foi inesperado Pessoalmente, o ponto interessante não é que o flash Bitcoin caiu. As flutuações repentinas de preços aconteceram no passado e acontecerão no futuro, especialmente em mercados sem liquidez, como o Bitcoin. O ponto interessante é o envolvimento do Bitfinex e como eles gerenciaram ativamente a execução de ordens sem informar previamente os participantes do mercado. O motor de correspondência Bitfinex não foi interrompido durante todo o acidente, apesar de ter desacelerado (mas em nenhum lugar tão ruim quanto a infame 70 minutos de atraso de ordem na agora extinta troca MtGox durante o acidente em 2012). No entanto, o que Bitfinex fez foi que eles introduziram algo que eles agora se referem como colisões de velocidade. O que significa é que eles essencialmente bandeira ordens que consideram como inválido ou potencialmente perigoso e retardá-los intencionalmente. À primeira vista isso pode parecer uma boa idéia. Quem não quer um filtro para remover ou retardar ordens maliciosas No entanto, como muitas vezes com esse tipo de coisas o diabo está nos detalhes. O problema é que o Bitfinex não tem (e possivelmente nunca vai) tornar público como exatamente eles classificam uma ordem como 8220bad8221 e 8220slow down8221. Se um participante do mercado decide colocar uma grande ordem de venda contra um fino orderbook então that8217s sua decisão. Se sua ação foi intencional ou não, não cabe à troca decidir. Poderia ser que este participante no mercado foi simplesmente a primeira pessoa a reagir a um grande evento e está inteiramente disposto a suportar os custos adicionais da derrapagem resultante em antecipação de uma grande mudança de preços. Simplesmente não existe uma maneira de classificar com precisão ordens a priori como 8220good8221 ou 8220bad8221, uma vez que assumiria automaticamente o conhecimento de todos os eventos futuros imediatos. O que pode ser melhorado Erros, as margens são chamados e as pessoas tentam jogar o sistema de todas as maneiras possíveis. Logicamente, devem existir salvaguardas para proteger os mercados e seus participantes. Bitfinex estava definitivamente ciente do potencial fluxo de ordem tóxica e preparou contra-medidas. A única coisa que eles esqueceram foi informar seus clientes sobre os recursos de segurança escondidos. Esconder essas salvaguardas do público acrescenta incerteza ao mercado (especialmente agora que sabemos que existem e, por vezes, fazer alguma coisa) e, essencialmente, coloca todos os comerciantes confiança nas mãos do Bitfinex. Neste ponto, um comerciante só pode esperar que o Bitfinex irá sempre agir nas melhores intenções de seus clientes. Esta esperança pode ser fútil embora, desde que Bitfinex faz o dinheiro das taxas negociando, independente se um comerciante faz realmente algum dinheiro. Não é preciso pensar por muito tempo para perceber o potencial oculto de abuso em tal sistema. A principal razão trazida por Josh porque Bitfinex não pretende divulgar seu algoritmo é evitar dar aos comerciantes a possibilidade de explorá-lo é falso eo seguinte mostra o porquê. Esses são os disjuntores de mercado oficiais usados pelo NASDAQ, publicados on-line e totalmente transparentes para todos os participantes do 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, eu tenho um grande respeito pelas pessoas que trabalham na plataforma Bitfinex, mas duvido que eles conseguiram chegar a um algoritmo que protege os participantes do mercado melhor do que os usados por uma grande troca de mais de 900 milhões de ações por dia em média . E se eles fizeram, agora é a chance de Bitfinex para provar isso para o mundo e possivelmente escrever história, ensinando os meninos grandes como corretamente executar uma troca. Quando se trata de intercâmbio público transparência é uma obrigação, não apenas para o Bitfinex, mas para qualquer troca. Os participantes do mercado têm de saber exatamente o que acontece quando eles fazem um pedido e não devem sob nenhuma circunstância depender apenas da boa fé. As salvaguardas são importantes porque os acidentes acontecem e os mercados caem, mas não cabe à troca se envolver na discriminação de ordem secreta. Existem diferentes maneiras de salvaguardar os mercados financeiros e nenhum deles é perfeito. Adicionando complexidade geralmente aumenta a chance de efeitos colaterais não intencionais e, portanto, uma abordagem simples e transparente parece mais apropriado do que um oculto, complexo. Dois dias atrás BitMEX reduziu suas taxas de negociação para 0 e celebrou-o por liberar um mercado básico fazendo bot em Github. BitMEX está atualmente executando um desafio comercial até 29 de agosto de 2014 para promover sua nova plataforma. Liberar um mercado que marca o bot é provavelmente uma maneira interessante e eficaz de aumentar o tráfego da API e testar o stress da plataforma um pouco. Claro que não conseguia resistir e tinha um olhar. Market-maker é um bifurcado fora Liquidbot. Que era original projetado funcionar na troca agora do obsolet MtGox. Houve algumas pequenas alterações (nova classe api para se conectar ao BitMEX, algumas impressões adicionais para o 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 mudanças significativas na lógica comercial. O algoritmo usa REST e apenas verifica as alterações a cada 60 segundos. Isso já desqualifica o bot como é essencial muito lento para reagir às mudanças em curso no pedido. O BitMEX limita as solicitações à API REST a 150 por 5 minutos para que você possa tentar reduzir os 60 segundos para algo como 3, mas ele não mudará o fato de que, assim que os mercados começarem a se mover, você atingirá o limite e ficará preso com posições abertas. Para ser justo, o BitMEX fornece o bot mais como um stunt de marketing e afirma explicitamente que mudar para o WebSocket será altamente benéfico, pois permite atualizações em tempo real. Em geral, o algoritmo é solidamente escrito, tecnicamente funciona e é fácil de configurar, mas won8217t fazer você qualquer dinheiro a longo prazo. Se alguém considerar seriamente empregar este bot eu recomendaria as seguintes pequenas mudanças para tornar o código mais utilizável: 1. Mude para Websocket 2. Saia posição no próximo: 3. Construa ordens a partir do ponto médio: Além disso eu aconselharia a medida Volatilidade de alguma forma e adaptar a distância entre ordens dinamicamente, bem como o tamanho. Durante meus testes, a API sempre foi responsiva e precisa. Volume sobre a troca ainda é baixa, mas os fundamentos da plataforma parecem promissores. Este bot é uma ferramenta divertida para introduzir os usuários no mundo de fazer mercado e negociação algorítmica, mas ele won8217t stand uma chance contra algoritmos estabelecidos. Nota: Se você considerar usar este algoritmo, tenha em mente que a criação de mercado é um trabalho em tempo integral. Qualquer coisa menos do que dedicação completa, tempo de reação rápida e 100 uptime fará com que você perca dinheiro. Edit: Acompanhe o rescaldo aqui Hoje os preços Bitcoin tomou um mergulho como comerciantes de margem em uma das maiores câmbio Bitfinex tem suas ordens liquidada. Para muitos observadores de mercado próximos e comerciantes mais sofisticados isso não veio como uma surpresa. Na verdade, as posições longas têm vindo a crescer continuamente ao longo dos últimos meses em antecipação de uma nova bolha nos preços da Bitcoin e atingiu até 30m em posições de swap em circulação na Bitfinex. Agora, este wouldn8217t ser um problema sozinho, desde que haja capital suficiente apoio ao empréstimo. Infelizmente, a maioria dessas posições longas foram inscritas em torno de 600 8211 640 USDBTC e as garantias foram fornecidas principalmente na própria Bitcoins. O gráfico a seguir mostra bem o acúmulo de posições longas, atingindo o pico em torno de 14 de julho com cerca de 32 milhões de swaps. Executando algumas matemática rápida com base na margem de manutenção do Bitfinex de 13 e assumindo Bitcoin como garantia nós achamos que chamadas de margem deve começar em torno da marca 520 8211 540 USDBTC. Ontem, os preços chegaram perto e hoje eles finalmente saltou sobre o penhasco. O problema é que uma vez que as chamadas de margem definidas em você tem um efeito em cascata que rasga o livro de encomendas, fazendo com que ainda mais ordens cheguem ao ponto de não retorno e aumentando o impulso descendente ainda mais. Este tipo de eventos não se limitam a trocas Bitcoin, mas também podem ocorrer em grandes bolsas, como durante o crash flash 2010 nos EUA. A causa de tal crashe de flash pode variar e vai de erros de dedo de gordura para erros de programação para chamadas de margem em cascata. É interessante ver como os intercâmbios lidam com esses eventos. Nos EUA, a Nasdaq implementou disjuntores de mercado, o que fará com que a negociação pare em circunstâncias tão extremas. Os mercados da Bitcoin ainda não estão tão avançados e geralmente continuam operando. Se olharmos para a ação de ordem no Bitfinex hoje vemos algo muito peculiar: Parece (e isso é apenas uma suposição como não há nenhum comentário oficial da troca) como se Bitfinex está executando um algoritmo para lidar com as chamadas de margem. O algoritmo começa a vender, mas limita-se a uma queda de 10 nos preços em 1 minuto. Se os preços caírem mais de 10 em 1 minuto ele vai parar de vender e aguardar ordens de compra para entrar pol Uma vez que há novamente uma certa quantidade de ordens de compra no orderbook o algoritmo começa a vender novamente até que todas as chamadas de margem são atendidas. Edit: LeMogawai foi o primeiro a apontar isso neste post e ele corresponde à minha observação pessoal no momento do evento. Esta parece ser uma maneira interessante de lidar com as 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 para baixo é reduzido, no entanto, os comerciantes acabam por negociar contra a própria bolsa e não o mercado mais. O câmbio tem uma vantagem informacional nesse ponto e, portanto, é mais provável que o lucro do que os comerciantes. Felizmente, isso só durou cerca de 10 minutos depois que o controle foi dado de volta para o mercado. Outras trocas que também oferecem margem de negociação, como BTC-e e OKcoin estão agora em uma posição favorável e pode aprender com os eventos de hoje. Implementar um sistema mais parecido com os disjuntores de grandes bolsas como a Nasdaq pode ser um primeiro passo inteligente. Recentemente eu estou trabalhando para obter a minha nova plataforma de negociação vai. Esta nova versão é baseada em Python, usa o MySQL para manter um banco de dados de todas as séries temporais de moedas virtuais diferentes com o preenchimento automático do BitcoinCharts e integra as 3 principais bolsas de MtGox, BTC-E e Bitstamp. A plataforma será usada como forma de backtest algumas estratégias e se envolver em negociação automática. Durante a corrida até este eu decidi retirar alguns dados de BTC contra USD de BitcoinCharts e baseado nas idéias de um papel por 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 o t1 acontecer, 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 eu examinei quatro diferentes regras técnicas de negociação nos mercados de Forex. Ele usa MCS e teste de SPA para procurar modelos válidos entre diferentes parâmetros que não estão sujeitos a snooping de dados. Levando em conta os custos de transação realistas não encontramos evidência de excesso de retorno, o que é consistente com a eficiência do mercado. Com este código você deve ser capaz de procurar oportunidades de arbitragem Bitcoin dentro BTC-e. Ele usa a idéia de um preço e aplica arbitragem triangular, levando em conta os custos e propagação. A razão pela qual eu postei este aqui é apesar de que ele funciona, as chances são que você vai ser 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 os negócios de forma dinâmica, tentando subcotar outros comerciantes fazendo o mesmo. Também configurar tudo em um servidor dedicado perto da localização física do mecanismo de correspondência BTC-e deve reduzir drasticamente o atraso e dar-lhe uma vantagem potencial. Post navigationMatlabTrading Esta mensagem é 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ápido. Otimização de Algoritmos Genéticos Apesar do fato de que o princípio do algoritmo genético (evolutivo) é muito bem explicado nos webinars do MathWorks, nos exemplos, no entanto, ele é usado apenas para a otimização da 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 definir muitas variáveis com intervalos significativos para uma estratégia, você não obter com uma iteração ea paralelização de processos 8211 cálculos podem levar vários dias . Certamente, existem estratégias na fase final de otimização. Quando nós quase certamente sabemos que a estratégia de negociação é bem sucedida, podemos esperar por vários dias ou alugar o cluster inteiro - o resultado pode valer a pena. No entanto, se precisamos estimar os resultados de uma estratégia volumosa e decidir se vale a pena gastar o tempo, então algoritmos genéticos podem ser perfeitamente adequado. 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 intermediários (subótimos). Dá a máxima precisão. O método paralelo 8211 todos os kernels de sua CPU serão usados. Não permite ver resultados intermediários, mas acelera significativamente a operação. Dá máxima precisão durante o aumento da velocidade de cálculo. O método genético 8211 utiliza o algoritmo evolutivo de otimização. Permite ver valores subóptimos, mas dá o resultado próximo ao melhor. Não é um método muito preciso, mas é preciso o suficiente para a execução inicial da estratégia. Muito rápido. Muitas vezes nos perguntam se o WFAToolbox - Caixa de Ferramentas de Análise Walk-Forward para MATLAB tem a capacidade de usar a GPU nos cálculos. Infelizmente, a GPU não é adequada para todas as tarefas e seu uso é muito específico. Para usá-lo, você precisa ajustar a lógica eo código de cada estratégia para testes de núcleos gráficos. Infelizmente, devido a tal não universalidade do método não se pode usar GPU em WFAToolbox. Continuando a parte 2 da discussão de problemas e soluções em testes e análise de estratégia de negociação algorítmica em MATLAB, convido você a ler este post sobre o problema de indisponibilidade de visualização de processos em soluções de software moderno para testes de sistemas de negociação. Visualização do processo de teste Na minha experiência de trabalho, muitas vezes eu analisei outras plataformas populares para testes de estratégia de negociação. Tais como TradeStation. MetaStock. Multicharts etc. e eu fui surpreendido sempre em como pouca atenção foi pagada à visualização do processo testando. A coisa é que quando nós não vemos os resultados dos valores intermediários, sub-optimal de parâmetros optimized, nós jogamos frequentemente afastado o ouro junto com a sujeira. A questão é por causa de uma amostragem excessivamente ampla, a estratégia ajusta os parâmetros da maneira como vemos uma estratégia perfeita que falha na vida real ou ver um ou dois negócios, que são supostamente o melhor porque foi selecionado tais dados de intervalo de tempo onde o Melhor estratégia de negociação seria buy-and-hold, mas por que são então outras estratégias 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 intermediários, precisamos 171blindly187 alterar os parâmetros para tentar Para obter os melhores dados ou assisti-lo em alguns 3D ou 4D (cor é a dimensão 4), como proposto em webinars. A análise de valores nos espaços N-dimensionais pode definitivamente ser uma alternativa, mas tem várias limitações: E se houver mais de 4 dimensões Quando você vê que sinais e em que freqüência eles aparecem na faixa de preço, você tem quase todos os A representação visual necessária de sua estratégia: a freqüência das transações, sua rentabilidade (curva de renda), a precisão de abertura, a similaridade com outros valores subótimos, etc. que não se pode dizer 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 há toda uma gama de valores subóptimos em uma ou mais áreas. Ao otimizar uma estratégia em 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 imediatamente aparecem no gráfico, para que você sempre pode controlar o intervalo de opções que você deve atribuir, e também você pode pausar a otimização Sem esperar pelo final do teste, como se torna claro que algo deu errado ou tudo está bem. Hola, meu nome é Igor Volkov. Tenho desenvolvido estratégias de negociação algorítmica desde 2006 e tenho trabalhado em vários fundos de hedge. Neste artigo, eu gostaria de discutir as dificuldades que surgem no caminho do desenvolvimento de estratégias de negociação MATLAB durante testes e análises, bem como para oferecer soluções possíveis. Tenho vindo a utilizar o MATLAB para testar estratégias de algoritmos desde 2007 e cheguei à conclusão de que esta não é apenas a ferramenta de investigação mais conveniente, mas também a mais poderosa porque torna possível o uso de modelos estatísticos e econométricos complexos, redes neurais, Aprendizagem de máquina, filtros digitais, lógica fuzzy, etc, adicionando caixa de ferramentas. A linguagem MATLAB é bastante simples e bem documentada, por isso mesmo um não-programador (como eu) pode dominá-lo. Como tudo começou. Era 2008 (se não me engano) 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 com base em indicadores técnicos, etc. apesar de um código bastante simulado, as ferramentas eram interessantes Suficiente para usar. Eles serviram como ponto de partida para a pesquisa e aprimoramento de um modelo de teste e análise que permitiria usar todo o poder das caixas de ferramentas e liberdade de ações do MATLAB durante a criação de estratégias comerciais próprias, ao mesmo tempo que permitiria controlar o processo Dos testes e os dados obtidos e sua análise subsequente escolheriam carteira efetiva de sistemas de negociação robustos. Posteriormente, webinars Mathworks foram atualizados a cada ano e gradualmente introduziu elementos cada vez mais interessantes. Assim, em 2010, realizou-se o primeiro webinar sobre pares comerciais (arbitragem estatística) utilizando a Caixa de Ferramentas Econométrica, embora a Caixa de Ferramentas de teste e análise permanecesse a mesma. Em 2013, Trading Toolbox da Mathworks apareceu que permitiu conectar MATLAB para 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 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 deveria 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 obter dos webinars eram os únicos elementos de um teste de sistema completo e era necessário modificá-los , Personalizá-los e adicioná-los à GUI para facilidade de uso. Foi muito demorado, colocando assim uma questão: seja qual for a estratégia, ela deve passar pelo mesmo processo de testes e análises, o que permitiria classificá-lo como estável e utilizável, então por que cada algotrader deveria reinventar a roda e escrever Seu próprio código para estratégias de teste adequadas no MATLAB Portanto, a decisão foi tomada para criar um produto que permitiria executar todo o processo associado ao teste e análise de estratégias de negociação algorítmicas usando uma interface simples e amigável. Em primeiro lugar, gostaria de responder às seguintes perguntas: O que aconteceu com o blog 1. Jev Kuznetsov não é o dono mais O blog foi comprado de nosso amigo, Jev Kuznetsov, que se mudou para o seu outro blog tradingwithpython. blogspot. Ele concluiu que Python é melhor do que MATLAB para negociação, o que eu considero ser falso. MATLAB continua a ser um dos melhores softwares do mundo para fins de negociação algorítmica IMHO (tenho alguns fatos sobre isso, embora para discussão futura). 2. Nós mudamos a marca A partir deste momento o blog será chamado MatlabTrading, que é muito mais compreensível sobre os temas que irá incluir. Além disso, o nome de domínio foi alterado para matlabtrading em vez do matlab-trading. blogspot inicial. Embora o domínio antigo ainda esteja trabalhando redirecionando do nome de domínio primário. O que acontecerá com o blog 1. Mais artigos e artigos Esperamos trazer vida a este blog postando conteúdo relevante uma ou duas vezes por semana. Nos primeiros meses, publicaremos na maioria dos artigos e vídeos que já temos para tornar mais fácil para nossos queridos leitores a busca de informações sobre um recurso e ter crosslink sobre eles. Então nós temos planos para escrever posts sobre aspectos práticos de negociação algorítmica no MATLAB. Como criar estratégias de negociação automáticas modernas, tais como: pares de arbitragem estatística negociação reversão média estratégias de negociação neutra mercado baseado em cointegration bollinger bandas kalman filtro etc para commodities, ações e Forex. Tendência de estratégias de acompanhamento com Jurik Moving Average e outros filtros digitais sofisticados Previsão de estratégias com aprendizado de máquinas (Support Vector Machines) e outros métodos Criando estratégias de negociação robusto usando o teste de fluxo de visão visual de gestão de dinheiro para reinvestir seu capital (ciência sobre como obter 1M de 10K Em um ano com o máximo, mas estimado risco e suor recompensas). Talvez depois de ler este youve pensou que este vai ser um outro artigo mudo para aqueles caras pobres que procuram como se tornar rico através de negociação em forex e tudo isso. Bem, isso é totalmente falso Estamos trabalhando no MATLAB, ea maioria de nós são cientistas e especialistas nesse aspecto, então tudo é sério. 2. Mais interatividade Eu ficarei feliz se todos nós pudermos relacionar através de comentários em postagens. Assine nossas notícias para receber alertas sobre as postagens e eventos mais recentes. Mais adiante, temos planos para fazer webinars do Google Hangouts. Não perca, clique no botão Seguir no canto superior direito para se juntar à nossa comunidade. O que você gostaria de ler em nossos posts Que tópicos você pode sugerir Escreva aqui nos comentários. No meu post anterior, cheguei a uma conclusão de que fechar a fechar pares de negociação não é tão rentável hoje como costumava ser antes de 2010. Um leitor apontou que poderia ser que a natureza reverter média dos spreads apenas mudou para prazos mais curtos . Acontece que compartilho a mesma idéia, então decidi testar essa hipótese. Desta vez apenas um par é testado: 100 SPY vs -80 IWM. Backtest é realizado em dados de barra de 30 segundos de 11.2011 para 12.2012. As regras são simples e semelhantes à estratégia que testei no último post: se o retorno da barra do par exceder 1 na pontuação z, troque a próxima barra. O resultado parece muito bonito: eu consideraria isso como prova suficiente de que ainda há uma abundância de reversão média na escala de 30 segundos. Se você acha que este gráfico é muito bom para ser verdade, que infelizmente é o caso. Nenhum custo de transação ou spread bid-ask foram considerados. Na verdade, eu duvido que não haveria qualquer lucro à esquerda depois de subtrair todos os custos de negociação. Ainda assim, este tipo de gráficos é a cenoura pendurada na frente do meu nariz, mantendo-me ir. Bad notícias de todos, de acordo com meus cálculos, (que espero sinceramente estão incorretos) o comércio de pares clássicos está morto. Alguns povos discordariam fortemente, mas é aqui o que eu encontrei: Vamos fazer exame de uma estratégia hipotética que trabalhe em uma cesta de etfs: ESPY, XLY, XLE, XLF, XLI, XLB, XLK, IWM, QQQ, DIA Pares podem ser feitas. Cada par é construído como uma propagação neutra do mercado. Regras de estratégia: Em cada dia, para cada par, calcule z-score com base no desvio padrão de 25 dias. Se z-score gt limiar, ir curto, fechar próximo dia Se z-score lt - threshold ir longo, fechar próximo dia Para manter tudo simples, o cálculo é feito sem qualquer gestão de capital (pode-se ter até 90 pares em carteira Em cada dia). Os custos de transação também não são considerados. Para colocá-lo simplesmente, esta estratégia rastreia um dia reverter natureza média do mercado de spreads neutros. Aqui estão os resultados simulados para vários limiares: Não importa qual limiar é usado, a estratégia é altamente rentável em 2008, muito bom throuh 2009 e completamente inútil a partir de início de 2010. Esta não é a primeira vez que me deparei com esta mudança na média reverter Comportamento em etfs. Não importa o que eu tentei, eu não tive sorte em encontrar uma estratégia de negociação de pares que iria trabalhar em ETFs passado de 2010. Minha conclusão é que esses tipos de modelos simples stat-arb apenas não cortá-lo mais. Lá Se você é novo aqui, você pode querer assinar o feed RSS ou feed de e-mail para atualizações sobre tópicos não-documentados Matlab. Em 23 de maio de 2013, dei uma apresentação na MATLAB Computational Finance Conference em Nova York. O quarto estava lotado, com cerca de 200 profissionais da indústria financeira. A energia e feedback foram enormes, foi uma grande experiência. Se você veio à conferência, obrigado por ser um grande público. Em 19 de setembro de 2013 eu dei uma variação dessa apresentação na Conferência Virtual MATLAB Computational Finance. A apresentação (formato PDF) é fornecida aqui. A gravação de vídeo está disponível aqui. Em ambos os casos, apresentei um aplicativo de demonstração que mostrou como o Matlab pode ser usado para criar um sistema de negociação completo de ponta a ponta, destacando o potencial do Matlab8217s como uma plataforma de escolha. Eu usei Interactive Brokers para demonstrar o feed de dados do mercado ao vivo e a entrada do accountportfolio, bem como para enviar ordens de negociação para o mercado, através do conector IB-Matlab: O algoritmo de negociação usado na demo é trivialmente simplista (aleatório). Em um sistema da vida real você naturalmente substitui-lo com seu próprio algoritmo proprietário. Mas sinta-se à vontade para usar esta demonstração como ponto de partida para sua aplicação. O código-fonte de demonstração é fornecido aqui (tradingDemo. m e arquivos de suporte). Note que este é fornecido tal qual, gratuitamente, mas sem qualquer garantia ou suporte. Naturalmente, você precisaria do IB-Matlab e de uma conta Interactive Brokers para executá-lo. Espero que tenhamos a oportunidade de trabalhar juntos em seus projetos. Envie-me um e-mail se você quiser minha ajuda em qualquer trabalho de consultoria, treinamento ou desenvolvimento. 4 Responses to Real-time sistema de negociação demo Tentei a rota Activex antes de comprar o produto. Há uma grande falha fundamental quando se trata de usar ActiveX com Matlab. Digamos que você está executando um algoritmo e está processando uma função e, ao mesmo tempo, o TWS dispara um Evento. Se você usar o ActiveX, o MATLAB NÃO atualizará o preço até que o processamento de sua função tenha sido concluído. Assim, vários eventos serão perdidos eo preço que você estaria procurando seria diferente. Considerando que em JAVA. Não há tal problema. Como qualquer evento disparado será imediatamente capturado pelo java que está sendo executado em segundo plano. Então, quando você chamar getLastPrice, você receberá o preço correto. Outra falha é, obviamente, o fato de que você pode usar ActiveX SOMENTE com WINDOWS. Considerando que com JAVA você pode usá-lo com janelas, Mac, Linux, etc Não é uma boa idéia para transmitir em dados Live Trades como ele vem em MATLAB. Imagine, você tem 100 símbolos, que atualiza cada dizer 200 msec, então você tem um comércio acontecendo tão rapidamente e ser capturado e armazenado em Matlab. Devido ao problema MATLAB8217s single-threaded, alguns carrapatos Trades serão perdidos e também vai comer sua memória. Então, tudo o que você será capaz de fazer é apenas transmitir dados e não fazer nada mais. Na verdade, a API Java (que é usada pelo IB-Matlab) tem muitas vantagens sobre a API ActiveX (que é usada pela MathWorks8217 Trading Toolbox). Um dos resultados afortunados de usar o Java é que o IB-Matlab pode ser executado em todas as plataformas que executam o Matlab (Windows, Mac, Linux), uma vez que todas essas plataformas têm Java e um cliente IB TWS. A API Java também é muito mais rápida e confiável (o conector ActiveX é relatado para ser soltando IB eventos de vez em quando). Quanto à latência de fluxo contínuo, isso depende da volatilidade da segurança, do número de títulos monitorados, da largura de banda da rede, do hardware do computador, de outros processos em execução no computador e de uma ampla gama de outros aspectos que podem afetar o desempenho. Em um laptop Lenovo Thinkpad E530 padrão executando o Matlab R2013a no Win7, alcancei a latência de cotação de fluxo de até 1-2 mSec (ou seja, centenas de eventos IB por segundo). Naturalmente, YMMV. Marco Ruijken diz: Algorithmic Trading com MATLAB: WFAToolbox Vídeo Tutorial Trading, FOREX, Stocks, negociação algorítmica, negociação automatizada, Finanças Quantitativas, Finanças Computacionais - todas essas áreas de conhecimento são relevantes para este curso. ÚLTIMA ATUALIZAÇÃO . 15 Jan 2017 Junte-se a 1400 estudantes encantados neste curso de negociação algorítmica surpreendente No último capítulo, vamos mostrar-lhe um método especial, que permite que você tome a estratégia comercial típica e convertê-lo em um novo. Que irá lhe trazer 1461350 de 10000 em 4 anos Este curso irá mostrar-lhe como criar, testar e analisar estratégias de negociação algorítmica nos mercados financeiros (forex, ações etc.) no MATLAB usando o aplicativo 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 para alguns minutos. Este curso destina-se a quem conhece o básico da linguagem MATLAB e tem alguma experiência em negociação financeira nos mercados financeiros (forex, ações etc.), mas mesmo se você não estiver familiarizado com o MATLAB, nosso curso inclui todos os links para os recursos necessários, Que lhe permitirá entender tudo o mais rápido possível. No final deste curso, você poderá carregar dados diretamente do Google Finance diretamente no MATLAB, descrever as regras de sua estratégia de negociação nos mercados financeiros (forex, ações, etc.) na linguagem MATLAB, realizar análises visuais recorrendo à paralelização De processos e algoritmos genéticos, bem como realizar uma análise detalhada de seus testes. Na parte final vamos dizer e mostrar-lhe método especial, que permite que você tome a estratégia de negociação típica em mercados financeiros (forex, ações, etc) e convertê-lo em um novo, que lhe trará 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 pouco tradicional para Udemy, porque foi feito por um grupo de pessoas eo trabalho levou mais de 1,5 meses. Em nosso mundo moderno, o tempo se converte em um bem realmente caro, é por isso que ficamos realmente surpresos quando vemos que alguns autores estão orgulhosamente nos dizendo que seu curso leva 7 ou até 15 horas - onde podemos encontrar tempo para assisti-lo Por isso, fizemos Grande e duro trabalho para ter certeza que você vai entender todas as informações durante 30 minutos, bem como aprender todos os métodos específicos e instrumentos, que são descritos no nome do curso. Nós Tentou fazer tudo maximamente espaçoso, informativo e ao ponto. Você pode se lembrar do episódio do filme The Matrix, onde Neo estava conectado a um cabo para saber Kung Fu em alguns segundos. Tentamos tornar possível para você entender o WFAToolbox com a mesma velocidade. Ou quase o mesmo A história sobre fundos de hedge que fazem bilhões de dólares todos os anos usando MATLAB (eo caminho para você roubar suas tecnologias) Você sabe qual tecnologia é usada pelos departamentos de fundos de hedge de JP Morgan ou Deutsche Bank, a fim de criar a sua 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 acelera o processo de desenvolvimento dos sistemas de negociação nos mercados financeiros (forex, ações etc) e análise visual pode ser realizada até mesmo por estudante. O mais importante é que ele tem todas as coisas necessárias para a análise de finanças quantitativas avançadas e engenharia financeira. Processamento de sinais digitais (filtros adaptativos não-lineares, filtros kalman), redes neurais, máquinas de vetores 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 artigo sobre o novo método de análise de dados ou previsão de séries temporais sem apego de tal código em linguagem MATLAB Até muito recentemente, MATLAB estava disponível apenas para profissionais altamente remunerados de investimento Bancos e hedge funds, porque o preço da versão básica era igual a 4400, mas recentemente a empresa MathWorks oferece Home-licença para uso pessoal apenas para 135 grande fato de que essa versão tem plena funcionalidade 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é que você tenha certeza que você precisa deste produto. A disponibilidade do MATLAB deu oportunidades novas e sem precedentes 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.). But we have to mention that institutional investors usually use not one single person, but whole team to create their strategies even in MATLAB, because some processes have to be integrated into one existing structure (e. g. bank structure), therefore some of required processes have never existed or require connection to expensive services. But these days we finally have the WFAToolbox . This application (in fact its add-on) that works under MATLAB, which allows to carry out all necessary processes to create, test and analyse trading strategies on financial markets (forex, stocks etc.) in MATLAB, providing maximum comfort and speed and using modern optimisation and data visualisation systems without any affection on limitless opportunities of data analysis systems usage, prediction and so on, which are the part of MATLAB itself. This course for traders who have some experience with Forex, Stocks etc. trading or want to discover a world of Quantitative Finance for himher self. This course is NOT intended for those, who are not ready to investigate sometimes difficult things (but therefore profitable) even with our comprehensive help. This course is NOT for those who are looking for 31242 from 100 investments overnight without any efforts. Many things from this course should be learned well before you start to make more than 100 of annual return on your investments. To create, test and analyze algorithmic trading strategies we will use WFAToolbox. During the course we will guide you how to download, install and setup the WFAToolbox App. Install MATLAB (from R2012b to any later version): free 30 day trial version is more than enough. If you don39t know where to find it - don39t worry, we will guide you in the course. Personal license cost: 135 You will need Excel with macroses support for detailed analysis section of the course. Install trial version of WFAToolbox from the official website
Comments
Post a Comment