Wednesday 23 August 2017

Sistema De Negociação Django


Adam Grandt Adam Grandt Abr 2014 Diretor de Tecnologia atual ndash Visual Trading Systems Inc. metatrader4, java, c, jboss, javabeans, node. js, php, jquery, fix, python Visual Trading É o produto amalgamado da fusão de várias firmas FinTech . Nessa função administrei várias equipes de desenvolvimento usando pilhas variadas. Incluindo uma plataforma de negociação baseada em Java, sistemas de CRM baseados em PHP e um sistema Python ERP. Eu forneci orientação arquitetônica em toda a organização. Estabelecimento de melhores práticas para a integração de código legado com uma solução de ponta. Trabalhando com a equipe de liderança para realizar a visão organizacional. Março 2013 dezembro 2014 Arquiteto e desenvolvedor principal ndash M1: ZERO LLC linux, mongodb, python, turbogears2, scrapy, jquery, backbone. js, twitter-bootstrap, tor Em M1: ZERO Desenvolvi uma ferramenta de coleta e análise para localizar e avaliar humanos Evidência de tráfico na web clara e escura. A principal ferramenta está sendo testada por uma força-tarefa FBIDHSMBI e foi envolvida em várias missões de resgate de sucesso. Jun 2008 Abr 2014 Diretor de Tecnologia ndash GallantVPS Inc postgresdb, linux, wine, xvnc, python, django, php, html5, canvas, prototypejs, apache2, iptables Fundamos a GallantVPS com um parceiro em 2008. Reconhecemos uma necessidade específica no forex Indústria e tornou-se líder tecnológico no campo por mais de cinco anos. Continuei gerenciando todos os aspectos técnicos desta empresa, formando as melhores equipes com as quais tive o prazer de trabalhar, até a compra no início de 2014. Jan 2005 May 2008 Diretor de Tecnologia ndash eTouchWare c. Net, web-services, xslt Entrei como diretor da QA e fui encarregado de levar o produto ao mercado. Eu estabeleci os procedimentos de QA, criei uma equipe de QA e implementou metodologias de desenvolvimento ágil. Comecei a supervisionar as equipes de desenvolvimento cerca de dois anos e fiquei nesse cargo até que a empresa fosse comprada em 2008. Mar 2003 Jan 2005 Fundador ndash Inuwashi Inc php, mysql, javascript Sob o guarda-chuva da minha primeira empresa de consultoria de software, especializei-me em Solução ERPCRM personalizada para SMBs. Eu projetei e desenvolvi soluções para várias indústrias, incluindo: transporte, construção, segurança, medicina e comércio eletrônico. Cada projeto atendeu padrões específicos do setor e melhores práticas de desenvolvimento. 1999 2002 Diretor de Serviços de TI ndash Forças de Defesa de Israel, Comando Central, Divisão de RH sql, troca, vms, diretório ativo, servidor de Windows Mandou uma equipe de onze homens que gerenciou as necessidades de TI de mais de 600 usuários no ambiente diverso e agitado. É o do Comando Central da IDF, Divisão de Pessoal. Nós gerenciamos e apoiamos vários sistemas legados, bem como um novo sistema integrado à medida que as Forças defensivas israelenses evoluíram para a era da informação. A mesma posição incluiu a aplicação de políticas de segurança de informações e o gerenciamento de infraestrutura de cross corp. Projetos amp Interesses Sistema e método para acesso remoto de cliente único WO 2007106496 A2 ndash patents. justiapatent20070220008 A invenção compreende um sistema e método para facilitar a transferência de um arquivo de dados através de uma rede de comunicação. Numa concretização, uma primeira estação de trabalho que tem um arquivo de dados armazenado nela identifica um receptor do arquivo de dados e transmite ao receptor um convite para receber o arquivo de dados. O receptor, uma segunda estação de trabalho, usa o convite para comunicar a um servidor web um endereço para receber o arquivo de dados. O processador de informações recebe de forma segura pacotes do arquivo de dados e modifica a informação do cabeçalho nos pacotes antes de encaminhar os pacotes do arquivo de dados para a segunda estação de trabalho. Em uma forma de realização alternativa, a estação de trabalho do destinatário convida uma estação de trabalho remetente a transmitir um arquivo. Apps amp Software java, delphi, svn, git Visual Trading Systems forneceu o backbone tecnológico para os Serviços de Mercado de Capitais (CMS). A VT Spot, uma abrangente solução de negociação frente a frente, e alcançando o prestigiado ranking em Forex Datasources inaugural FOREXDS Traders Choice Awards. Arquiteto e Gerenciador de Produto html5, tela, vinho, iptables, xvnc, vnc, cloud, amazon-web-services, websocket, python Uma plataforma SaaS que oferece plataformas de negociação e hospedagem de negociação algorítmica em recursos de nuvem Linux usando WINE quando necessário, exposto à web Usuários através de um cliente V55 de proxy HTML5 que se conecta ao XVNC, Arquiteto e desenvolvedor principalForex Trading Diary 1 - Automated Forex Trading com a API OANDA Eu mencionei anteriormente no QuantStart: 2014 Em artigo de revisão que eu estaria gastando parte de 2015 escrevendo sobre negociação de forex automatizada . Dado que eu mesmo geralmente realizo pesquisas em mercados de ações e futuros, pensei que seria divertido (e educacional) escrever sobre minhas experiências de entrar no mercado cambial ao estilo de um diário. Cada entrada do diário tentará construir sobre todos aqueles antes, mas também deve ser relativamente autônoma. Nesta primeira entrada do diário, estou descrevendo como configurar uma nova conta de corretagem de prática com a OANDA, bem como a forma de criar um motor de negociação básico baseado em múltiplos processos que possa executar negócios automaticamente em uma configuração prática e ao vivo. No ano passado, passamos muito tempo olhando o backtester dirigido para eventos. Principalmente para ações e ETFs. O que eu apresento abaixo é orientado para o forex e pode ser usado para negociação de papel ou negociação ao vivo. Eu escrevi todas as instruções para o Ubuntu 14.04, mas elas devem ser facilmente traduzidas para Windows ou Mac OS X, usando uma distribuição Python, como a Anaconda. A única biblioteca adicional usada para o mecanismo comercial Python é a biblioteca de solicitações, que é necessária para a comunicação HTTP para a API OANDA. Uma vez que este é o primeiro post diretamente sobre a negociação cambial, e o código apresentado abaixo pode ser direto adaptado a um ambiente de negociação ao vivo, gostaria de apresentar as seguintes isenções: Disclaimer: A troca de câmbio na margem possui um alto nível de risco, E pode não ser adequado para todos os investidores. O desempenho passado não é indicativo de resultados futuros. O alto grau de alavancagem pode funcionar contra você, bem como para você. Antes de decidir investir em divisas, você deve considerar cuidadosamente seus objetivos de investimento, nível de experiência e apetite de risco. Existe a possibilidade de que você possa sustentar a perda de algum ou todo seu investimento inicial e, portanto, você não deve investir dinheiro que não pode perder. Você deve estar ciente de todos os riscos associados à negociação cambial e procurar o aconselhamento de um consultor financeiro independente se tiver dúvidas. Este software é fornecido como está e quaisquer garantias expressas ou implícitas, incluindo, mas não limitado a, as garantias implícitas de comercialização e adequação para um propósito específico são negadas. Em nenhum caso, os regentes ou contribuidores serão responsáveis ​​por quaisquer danos diretos, indiretos, incidentais, especiais, exemplares ou conseqüenciais (incluindo, mas não limitado a, aquisição de bens ou serviços de substituição perda de uso, dados ou lucros ou interrupção do negócio ) No entanto, causou e em qualquer teoria da responsabilidade, seja no contrato, responsabilidade restritiva ou responsabilidade civil (incluindo negligência ou outra) decorrentes de qualquer uso indevido deste software, mesmo que seja avisado da possibilidade de tal dano. Configurando uma conta com OANDA A primeira pergunta que vem à mente é porque escolher OANDA. Simplificando, depois de um pouco de Googling em torno de corretores de Forex que possuíam APIs, vi que a OANDA havia lançado recentemente uma API REST adequada que poderia ser facilmente comunicada com quase qualquer idioma de uma maneira extremamente direta. Depois de ler a documentação da API do desenvolvedor. Eu decidi fazer uma tentativa, pelo menos com uma conta prática. Para ser claro - não tenho relação anterior ou existente com a OANDA e estou apenas fornecendo esta recomendação com base em minha experiência limitada ao brincar com sua API prática e algum uso breve (para download de dados de mercado) enquanto empregado em um fundo anteriormente. Se alguém se deparou com outros corretores forex que também possuem uma API similarmente moderna, então fique feliz em dar-lhes um olhar também. Antes de utilizar a API, é necessário se inscrever para uma conta prática. Para fazer isso, vá para o link de inscrição. Você verá a seguinte tela: você poderá fazer login com suas credenciais de login. Certifique-se de selecionar a guia fxTradePractice na tela de login: uma vez que você precisará anotar sua ID da conta. Ele está listado abaixo do cabeçalho preto dos meus fundos ao lado do primário. O meu é um número de 7 dígitos. Além disso, você também precisará gerar um token de API pessoal. Para fazer isso, clique em Gerenciar Acesso à API abaixo da guia Outras Ações na parte inferior esquerda: Nesta fase, você poderá gerar um token de API. Você precisará da chave para o uso mais tarde, então certifique-se de anotá-la também. Agora você deseja lançar o aplicativo FXTrade Practice, que nos permitirá ver as ordens executadas e nossa perda de ampliação de lucro (em papel). Se você estiver executando um sistema Ubuntu, você precisará instalar uma versão ligeiramente diferente do Java. Em particular, a versão Oracle do Java 8. Se você não fizer isso, o simulador de prática não será carregado a partir do navegador. Executei esses comandos no meu sistema: agora você poderá iniciar o ambiente comercial da prática. Volte para o painel de controle OANDA e clique no link de Prática de lançamento inicial FXTrade destacado. Ele exibirá uma caixa de diálogo Java perguntando se deseja executá-lo. Clique em Executar e a ferramenta FxTrade Practice será carregada. O meu padrão foi definido para um gráfico de velas de 15 minutos da EURUSD com o painel de citação à esquerda: neste ponto, estamos prontos para começar a projetar e codificar o nosso sistema de negociação forex automatizado contra a API de OANDA. Visão geral da arquitetura de negociação Se você acompanha a série de backtester baseada em eventos para ações e ETFs que eu criei no ano passado, você estará ciente de como esse sistema de negociação baseado em eventos funciona. Para aqueles que são novos para o software dirigido a eventos. Eu sugeriria fortemente a leitura do artigo, a fim de obter uma visão de como eles funcionam. Em essência, todo o programa é executado em um loop infinte while que só termina quando o sistema comercial é desligado. O mecanismo de comunicação central do programa é fornecido através de uma fila que contém eventos. A fila é constantemente consultada para verificar novos eventos. Uma vez que um evento foi retirado do topo da fila, ele deve ser tratado por um componente apropriado do programa. Assim, um feed de dados de mercado pode criar TickEvent s que são colocados na fila quando um novo preço de mercado chega. Um objeto de estratégia gerador de sinal pode criar OrderEvent s que devem ser enviados para uma corretora. A utilidade de tal sistema é dada pelo fato de que não importa qual ordem ou tipos de eventos são colocados na fila, pois eles sempre serão tratados corretamente pelo componente certo dentro do programa. Além disso, diferentes partes do programa podem ser executadas em segmentos separados. O que significa que nunca há uma espera para qualquer componente específico antes de processar qualquer outro. Isso é extremamente útil em situações de negociação algorítmica, onde manipuladores de feed de dados de mercado e geradores de sinal de estratégia possuem características de desempenho muito diferentes. O principal ciclo de negociação é dado pelo seguinte pseudo-código Python: como afirmamos acima, o código é executado em um loop infinito. Em primeiro lugar, a fila é consultada para recuperar um novo evento. Se a fila estiver vazia, o loop simplesmente será reiniciado após um período de sono curto conhecido como batimento cardíaco. Se um evento for encontrado, seu tipo é avaliado e, em seguida, o módulo relevante (seja a estratégia ou o manipulador de execução) é chamado a lidar com o evento e possivelmente gerar novos que voltem para a fila. Os componentes básicos que criaremos para o nosso sistema comercial incluem o seguinte: Controlador de preço de transmissão - Isso manterá uma conexão de longa duração aberta aos servidores da OANDAs e enviará dados do tick (ou seja, bidask) em toda a conexão para quaisquer instrumentos interessados. Gerador de Sinal de Estratégia - Isso levará uma seqüência de eventos de tiques e os usará para gerar ordens de negociação que serão executadas pelo manipulador de execução. Manipulador de Execução - Executa um conjunto de eventos de ordem e depois os executa cegamente com OANDA. Eventos - Esses objetos constituem as mensagens que são transmitidas na fila de eventos. Nós só exigimos dois para esta implementação, nomeadamente o TickEvent e o OrderEvent. Ponto de entrada principal - O ponto de entrada principal também inclui o ciclo de comércio que pesquisa continuamente a fila de mensagens e envia mensagens para o componente correto. Isso geralmente é conhecido como o loop de evento ou manipulador de eventos. Vamos agora discutir a implementação do código em detalhes. Na parte inferior do artigo está a listagem completa de todos os arquivos de código-fonte. Se você colocá-los no mesmo diretório e executar o python trading. py, você começará a gerar ordens, assumindo que você tenha preenchido o ID da sua conta e o token de autenticação da OANDA. Implementação do Python É uma prática ruim armazenar senhas ou chaves de autenticação dentro de uma base de código, pois você nunca pode prever quem será permitido acesso a um projeto. Em um sistema de produção, nós armazenamos essas credenciais como variáveis ​​de ambiente com o sistema e, em seguida, consultamos esses envvars cada vez que o código é redistribuído. Isso garante que as senhas e tokens de autenticação nunca sejam armazenados em um sistema de controle de versão. No entanto, uma vez que estamos apenas interessados ​​em construir um sistema de comércio de brinquedos e não nos preocupamos com detalhes de produção neste artigo, em vez disso, separaremos estes tokens de autenticação em um arquivo de configurações. No seguinte arquivo de configuração settings. py, temos um dicionário chamado AMBIENTES que armazena os pontos finais da API tanto para a API de transmissão de preços OANDA como para a API de negociação. Cada subdiretório contém três pontos de extremidade API diferentes: real. Prática e sandbox. A API do sandbox é puramente para testar o código e verificar se não há erros ou erros. Não possui as garantias de tempo de atividade das APIs reais ou de prática. A prática API, em essência, oferece a capacidade de comércio de papel. Ou seja, ele fornece todos os recursos da API real em uma conta de prática simulada. A verdadeira API é apenas isso - é uma negociação ao vivo Se você usa esse ponto final em seu código, ele será negociado contra o saldo da sua conta ao vivo. SEJA EXTREMAMENTE CUIDADOSO IMPORTANTE: quando negociar contra a prática API, lembre-se de que um custo de transação importante, o impacto de mercado. Não é considerado. Uma vez que nenhum negócio é realmente colocado no meio ambiente, esse custo deve ser explicado de outra forma em outro lugar, usando um modelo de impacto de mercado, se você deseja avaliar de forma realista o desempenho. No seguinte, estamos usando a conta de prática conforme a configuração DOMAIN. Precisamos de dois dicionários separados para os domínios, um para os componentes da API de transmissão e transmissão. Finalmente, temos ACCESSTOKEN e ACCOUNTID. Eu preenchi os dois abaixo com IDs fofos, então você precisará utilizar o seu próprio, que pode ser acessado a partir da página da conta OANDA: O próximo passo é definir os eventos que a fila usará para ajudar todos os componentes individuais a se comunicarem. Precisamos de dois: TickEvent e OrderEvent. O primeiro armazena informações sobre dados do mercado de instrumentos, como o (melhor) bidask e o tempo de troca. O segundo é usado para transmitir ordens para o manipulador de execução e, portanto, contém o instrumento, o número de unidades a negociar, o tipo de ordem (mercado ou limite) eo lado (ou seja, comprar e vender). Para o futuro do nosso código de eventos, vamos criar uma classe base chamada Evento e ter todos os eventos herdados disto. O código é fornecido abaixo em events. py: A próxima classe que vamos criar irá lidar com a estratégia de negociação. Nesta demonstração, vamos criar uma estratégia bastante absurda que simplesmente recebe todos os carrapatos do mercado e, em cada 5º trimestre, compra ou vende de maneira aleatória 10 000 unidades de EURUSD. Claramente, esta é uma estratégia ridícula No entanto, é fantástico para fins de teste, porque é direto codificar e entender. Em futuras entradas no diário, estaremos substituindo isso por algo significativamente mais emocionante que (espero) gire um lucro. O arquivo strategy. py pode ser encontrado abaixo. Vamos trabalhar através dele e ver o que está acontecendo. Em primeiro lugar, importamos a biblioteca aleatória e o objeto OrderEvent de events. py. Precisamos da libação aleatória para selecionar uma ordem de compra ou venda aleatória. Nós precisamos do OrderEvent, pois é assim que o objeto de estratégia enviará ordens para a fila de eventos, que será posteriormente executada pelo manipulador de execução. A classe TestRandomStrategy simplesmente leva o instrumento (neste caso EURUSD), o número de unidades e a fila de eventos como um conjunto de parâmetros. Em seguida, cria um contador de tiques que é usado para contar quantas instâncias do TickEvent já viu. A maior parte do trabalho ocorre no método calculatesignals, que simplesmente leva um evento, determina se é um TickEvent (ignore) e incrementa o contador de tiques. Em seguida, verifica se a contagem é divisível em 5 e, em seguida, compra ou vende aleatoriamente, com uma ordem de mercado, o número especificado de unidades. Certamente, não é a maior estratégia de negociação do mundo, mas será mais do que adequado para nossos objetivos de teste da API de corretagem OANDA. O próximo componente é o manipulador de execução. Esta classe é encarregada de atuar sobre as instâncias do OrderEvent e fazer solicitações ao corretor (neste caso, OANDA) de forma burra. Ou seja, não há gerenciamento de risco ou sobreposição de construção de potfolio. O manipulador de execução simplesmente executará qualquer ordem que tenha sido dada. Devemos passar todas as informações de autenticação para a classe Execution, incluindo o domínio (prática, real ou sandbox), o token de acesso e identificação da conta. Em seguida, criamos uma conexão segura com httplib. Um dos Pythons construído em bibliotecas. A maior parte do trabalho ocorre na ordem de execução. O método requer um evento como um parâmetro. Em seguida, constrói dois dicionários - os cabeçalhos e os params. Esses dicionários serão então codificados corretamente (parcialmente por urllib, outra biblioteca Python) para serem enviados como uma solicitação HTTP POST para a API OANDAs. Passamos os parâmetros de cabeçalho do tipo de conteúdo e autorização, que incluem nossas informações de autenticação. Além disso, codificamos os parâmetros, que incluem o instrumento (EURUSD), unidades, tipo de ordem e lado (buysell). Finalmente, fazemos o pedido e salvamos a resposta: o componente mais complexo do sistema de negociação é o objeto StreamingForexPrices, que lida com as atualizações de preço de mercado da OANDA. Existem dois métodos: connecttostream e streamtoqueue. O primeiro método usa a biblioteca de solicitações Python para se conectar a um soquete de transmissão com os cabeçalhos e parâmetros apropriados. Os parâmetros incluem o ID da conta e a lista de instrumentos necessária que deve ser ouvida para atualizações (neste caso, é apenas EURUSD). Observe a seguinte linha: isso indica que a conexão deve ser transmitida e, portanto, mantida aberta de forma longa. O segundo método, streamtoqueue. Na verdade, tenta se conectar ao fluxo. Se a resposta não for bem sucedida (ou seja, o código de resposta não é HTTP 200), então simplesmente retornamos e saímos. Se for bem sucedido, tentamos carregar o pacote JSON retornado em um dicionário Python. Finalmente, convertemos o dicionário Python com o instrumento, bidask e timestamp em um TickEvent que é enviado para a fila de eventos: agora temos todos os principais componentes no lugar. O passo final é encerrar tudo o que escrevemos até agora em um programa principal. O objetivo deste arquivo, conhecido como trading. py. É criar dois segmentos separados. Um dos quais executa o manipulador de preços e o outro que administra o manipulador de negociação. Por que precisamos de dois segmentos separados. Simplificando, estamos executando dois pedaços separados de código, ambos em execução contínua. Se formássemos um programa não-threaded, o soquete de transmissão usado para as atualizações de preços nunca mais retornaria ao caminho do código principal e, portanto, nunca realizaríamos qualquer negociação. Da mesma forma, se corremos o loop comercial (veja abaixo), nunca retornaríamos o caminho do fluxo para o soquete de transmissão de preços. Portanto, precisamos de vários tópicos, um para cada componente, para que eles possam ser realizados de forma independente. Ambos se comunicarão entre si através da fila de eventos. Vamos examinar isso um pouco mais. Criamos dois segmentos separados com as seguintes linhas: Passamos a função ou o nome do método para o argumento de palavra-chave de destino e passamos uma iterável (como uma lista ou uma tupla) para o argumento de palavras-chave args, que passa esses argumentos para a função do método real . Finalmente, começamos os dois tópicos com as seguintes linhas: assim, podemos executar dois, efetivamente infinitos looping, segmentos de código independentemente, que se comunicam através da fila de eventos. Observe que a biblioteca de threading do Python não produz um ambiente multi-core multi-core real devido à implementação do CPython do Python e do Bloqueio do Intérprete Global (GIL). Se você quiser ler mais sobre multithreading no Python, veja este artigo. Vamos examinar o resto do código em detalhes. Em primeiro lugar, importamos todas as bibliotecas necessárias, incluindo Fila. Threading e tempo. Em seguida, importamos todos os arquivos de código acima. Pessoalmente, eu prefiro capitalizar quaisquer configurações, o que é um hábito que eu tirei do trabalho com o Django. Depois disso, definimos a função comercial, que foi explicada no Pseudocódigo Python acima. Um loop while infinito é executado (enquanto True:) que pesquisa continuamente a partir da fila de eventos e apenas ignora o loop se ele for encontrado vazio. Se um evento for encontrado, então é um TickEvent ou um OrderEvent e, em seguida, o componente apropriado é chamado para executá-lo. Nesse caso, é uma estratégia ou um manipulador de execução. O loop, em seguida, simplesmente dorme durante segundos de heartbeat (neste caso, 0,5 segundos) e continua. Finalmente, definimos o ponto de entrada principal do código na função principal. É bem comentado abaixo, mas vou resumir aqui. Em essência, instanciamos a fila de eventos e definimos as unidades de instrumentos. Em seguida, criamos a classe de transmissão de preços StreamingForexPrices e, posteriormente, o processador de execução Execução. Ambos recebem os detalhes de autenticação necessários fornecidos pela OANDA ao criar uma conta. Em seguida, criamos a instância TestRandomStrategy. Finalmente, definimos os dois tópicos e depois os iniciamos: Para executar o código, você simplesmente precisa colocar todos os arquivos no mesmo diretório e chamar o seguinte no terminal: Observe que para parar o código nesta etapa requer uma morte difícil do Processo de Python. Via Ctrl-Z ou equivalente, não adicionei um segmento adicional para manipular a procura do sys. exit () que seria necessário para parar o código de forma segura. Uma maneira potencial de parar o código em uma máquina UbuntuLinux é digitar: e depois passar a saída deste (um número de processo) para o seguinte: Onde PROCESSID deve ser substituído pela saída do pgrep. Observe que esta não é uma prática particularmente boa Em artigos posteriores, estaremos criando um mecanismo de parada mais sofisticado que faça uso da supervisão do processo Ubuntus para que o sistema comercial seja executado 247. A saída após 30 segundos ou mais, dependendo do tempo de Dia relativo às principais horas de negociação para EURUSD, para o código acima, é fornecido abaixo: As cinco primeiras linhas mostram os dados de marca JSON retornados da OANDA com os preços da bidask. Posteriormente, você pode ver a saída da ordem de execução, bem como a resposta JSON retornada da OANDA confirmando a abertura de um comércio de compra por 10.000 unidades de EURUSD e o preço alcançado em. Isso continuará funcionando indefinidamente até você matar o programa com um comando Ctrl-Z ou similar. O que vem em seguida Em artigos posteriores, vamos realizar algumas melhorias tão necessárias, incluindo: Estratégias reais - Estratégias forex adequadas que geram sinais lucrativos. Infraestrutura de produção - Implementação de servidor remoto e 247 sistema de comércio monitorado, com capacidade de parada. Gerenciamento de portfólio e risco - Carteira e sobreposições de risco para todas as ordens sugeridas da estratégia. Estratégias múltiplas - Construindo um portfólio de estratégias que se integram na sobreposição de gerenciamento de riscos. Tal como acontece com o backtester com base em eventos de ações, também precisamos criar um módulo forex backtesting. Isso nos permitirá realizar pesquisas rápidas e facilitar a implantação de estratégias. Settings. py (lembre-se de mudar ACCOUNTID e ACCESSTOKEN): Melhor comerciante do sistema Tomas Nesnidal tem sido um comerciante em tempo integral há mais de 11 anos, especializada em estratégias de negociação algorítmica automatizada. Ele tem experiência com vários estilos de negociação, incluindo negociação de opções, negociação de spread, arbitragem estatística e internas de mercado, mas neste episódio foram discutidos uma de suas outras especialidades, negociação em disputa. Em nosso bate-papo, discutimos os principais componentes de uma estratégia de breakout e como combiná-los para criar estratégias de negociação rentáveis. Nós também discutimos a degradação das estratégias ao longo do tempo, como adicionar vida nova a estratégias antigas e por que o pensamento criativo é um aspecto tão importante da negociação bem-sucedida. Neste episódio, discutimos Os benefícios das estratégias de comércio e o que faz uma boa estratégia de breakout Como criar estratégias de breakout rentáveis ​​usando 4 componentes-chave A degradação de estratégias ao longo do tempo e como adicionar vida nova em estratégias antigas Usando filtros para melhorar resultados de negociação Adaptação Estratégias para condições de mercado Os melhores prazos e mercados para estratégias de fuga Você pode seguir Tomas em seus sistemas de sites em outro lugar. Também confira a seção abaixo, onde você pode obter uma cópia gratuita do The Breakout Strategy Toolkit, que inclui um código de ebook plus de estratégia de breakout para 2 estratégias de discussão, que Tomas desenvolveu exclusivamente para o Better System Trader Tomas também escreveu uma excelente postagem de convidado no Estratégias de discussão para o sistema de transferência de jornais Livros recomendados: aproveite o poder das Estratégias de Breakout com este kit de ferramentas de estratégia de discussão GRATUITO A negociação de divisão pode ser um conceito incrivelmente poderoso que os comerciantes usam para obter uma vantagem nos mercados e para complementar a discussão de negociação em discussão neste episódio, Tomas tem gentilmente Forneceu um kit de ferramentas de estratégia de discussão GRATUITO exclusivamente para o Better System Trader. Este kit de ferramentas dá tudo o que você precisa para começar na negociação breakout, incluindo um ebook didático, cheatsheet PLUS code para 2 estratégias que podem ser usadas em Tradestation ou Multicharts. Dê uma olhada nas hipotéticas curvas de equidade dessas 2 estratégias e, em seguida, clique no botão de download azul para obter sua cópia GRATUITA agora: Principais dicas deste episódio Criatividade 8211 A criatividade foi algo que Tomas continuou voltando ao longo de nosso bate-papo, destacando o quão importante era Para apresentar idéias únicas para testar. Na verdade, ele disse que o ingrediente chave para o comércio é a criatividade8221 e que a criatividade 8220 ajuda você a permanecer no jogo8221, que é uma mensagem muito semelhante ao que ouvimos do Dr. Brett Steenbarger no Episódio 25. O conselho de Toms era pensar constantemente sobre quais novos aspectos Podemos trazer um conceito de negociação para torná-lo mais único, tentar adicionar seu próprio toque, inventar idéias loucas e testá-las. Como sobre outra rodada com Tomas 8211 desta vez no lado técnico, e. 1. Qual a tecnologia (software) ele usa Por que 2. Qual tecnologia (hardware) ele usa Por que 3. Onde ele obtém dados de 4. Como ele atualiza 5. Como ele se assegura de estar limpo 6. Como é que Ele lida com problemas de dados 8211 dados faltantes, dados ruins, etc. 7. Como ele implementa diferentes estratégias 8211, por exemplo, Ele usa vários programas 8211 um por estratégia, ou ele tem programas que podem executar múltiplas estratégias ou ele tem uma mistura dos dois? Quais as questões que ele teve que enfrentar e resolver que pode não ser óbvio para aqueles que não têm Tentou negociação algorítmica automatizada 9. Ele aparentemente trabalha em servidores remotos 8211 como ele lida com o atraso quando ele não tem velocidades de conexão blistering Quanto trabalha ele faz localmente (ou seja, em seu laptop versus servidores) 10. Talvez algo em seu fluxo de trabalho 8211 Como ele leva os sistemas da ideia original ao desenvolvimento para o teste para o produto 11. Ele poderia sugerir um conjunto adequado de etapas sobre como entrar nos sistemas de automação 8211 talvez de olhos iniciantes, depois de um olho intermediário 8217 e, finalmente, o que ele vê como As oportunidades que surgem levando um balanço em. 12. Como ele encontra os codificadores. 13. Quais os problemas que teve com o trabalho com os codificadores 14. Como melhor resolver isso. 15. Que surpresas desagradáveis ​​ele experimentou com os sistemas automatizados se comportando de maneiras inesperadas 8211, e. Comprar em muitas posições em tanking mkts é uma possibilidade. 16. Como ele se interage com os corretores em termos de colocar em ordens 17. Quantos corretores ele tem 18. Quantos corretores deveriam ter 19. Se o corretor gt, como ele lida com a integração com esses corretores 20. Por que três servidores 21. Os servidores se comunicam 8211 se um estiver desativado, um dos outros pega o processamento 22. O que é programação genética Eu, para um, estaria interessado, que é uma série de questões certamente importantes. Eu pensarei sobre a melhor maneira de tocar esses tópicos no futuro também. Ou aqui no BST ou no meu próprio blog ou ambos. Certamente sei que estou um pouco ocupado com o lançamento do meu hedge fund, mas vou copiar suas perguntas para o bloco de notas e as manterá em mente. Oi pessoal, ótima entrevista, testei as variações da estratégia BOSS do Tom8217s no DAX (que é onde faço a maior parte da minha pesquisa inicial). Eu acho duas coisas: 8211 Os sistemas que funcionam bem em um quadro de tempo de 30 minutos trocam freqüentemente o suficiente para passar meus critérios de robustez 8211 Parece funcionar bem em 15 minutos, se alguns filtros adicionais forem aplicados. Pergunta: 8211 Como você explicaria o subjacente Premissa por trás do BOSS Para mim, parece: 1) no mercado uptrending 2) Find pullback 3) Definir ordem de parada que é desencadeada de currículos de tendência É algo ao longo dessas linhas que é uma observação de interpretação muito correta. Basicamente, minhas descobertas mostram que o breakout após qualquer tipo de pullback (eu os chamo 8220corrections8221) são um dos melhores sinais de breakout. Boa sorte com sua negociação, os estoques, opções, futuros e divisas da Tomas Trading envolvem um risco significativo de perda e não é adequado para todos. O desempenho passado não é necessariamente indicativo de resultados futuros.

No comments:

Post a Comment