Monday 16 April 2018

Diário de negociação forex


Torne-se um comerciante mais lucrativo. De graça.


O TradeBench é um jornal de negociação on-line que inclui planejamento comercial e gerenciamento de dinheiro. Uma maneira inteligente de planejar, divulgar e aprender com seus negócios e uma abordagem estruturada para se tornar mais rentável.


Junte-se a milhares de outros comerciantes, assim como você e veja o que a TradeBench irá fazer na sua negociação!


Junte-se a esses comerciantes e milhares de outros!


& ldquo; Muito obrigado por suas maravilhosas ferramentas de negociação. Estou impressionado que você os forneça de graça e nunca tenha visto uma revista comercial tão abrangente. & Rdquo;


& ldquo; Só queria enviar uma nota de agradecimento. Eu sou um novo comerciante, mas muito organizado e detalhado. Sua plataforma é como o céu enviado. Muito obrigado. & Rdquo;


O que você obtém.


Experimente as mãos - é grátis!


Trading Journal, Trade Planning, Risk & Money Management - Grátis!


O TradeBench é um jornal comercial gratuito, planejamento comercial, dimensionamento de posição e software de gerenciamento de riscos para comerciantes de ações, futuros, CFD e forex em mercados financeiros.


Nosso objetivo número um é fazer de você um comerciante mais lucrativo. Isso é conseguido, oferecendo uma abordagem estruturada para seu planejamento comercial e dimensionamento de posição / gerenciamento de riscos, bem como uma forma fácil de usar para registrar suas negociações fazendo com que a revisão e a aprendizagem de negociações anteriores sejam parte integrante da sua rotina de negociação.


Saiba mais sobre os recursos ou faça um cadastro rápido para tentar você mesmo. É grátis e você tem acesso a todos os recursos.


4 razões pelas quais você precisa de um Forex Trading Journal.


Você pode se perguntar por que é necessário manter um diário de negociação separado, já que quase todos os corretores fornecem um registro em tempo real de seus negócios. Na verdade, pode-se argumentar que o registro do corretor também acompanha o poder de compra disponível, o uso da margem e os lucros e perdas para cada comércio. Ainda assim, há benefícios para manter um diário de negociação separado, e aqui está o motivo. (A linha entre o comércio de divisas rentável e o fim do vermelho pode ser tão simples como escolher a conta certa. Confira os princípios básicos do Forex: Configurando uma conta.)


1. Registro histórico.


3. Verificação de metodologia.


4. Modificação do padrão mental (método para mudar os hábitos)


Ter um diário que reúne suas estatísticas configura um plano de negociação, definindo os parâmetros de ação necessários, fornece um espelho retrovisor para que você possa medir o quão bem você executou cada comércio e, o mais importante, fornece o feedback para desenvolver e evoluir sua negociação habilidades, é uma ferramenta extremamente valiosa para se tornar bem sucedida. Você encontrará um bom diário comercial para ser um melhor amigo e mentor à medida que você progride. (Horas de mercado para Tóquio, Londres e Nova York determinam os picos de volatilidade. Descubra como, no sistema Forex Three-Session.)


The Two-Part Journal.


Uma lista colunar cronológica de trades que você pode total e agregado, para que você possa ter um registro de todos os seus esforços. Isso é melhor feito através da escrita manual nas colunas todos os dados pertinentes. Claro, você pode manter registros usando uma planilha do Excel que pode fazer a matemática automaticamente para você e que irá remover erros de cálculo simples. Isso depende de suas próprias habilidades em modelagem de planilhas.


Uma impressão do gráfico atual que você usou para determinar o comércio, indicando seu nível de entrada, seu nível de parada e seu nível de lucro potencial, deve ser claramente marcado no gráfico. Além disso, você deve registrar suas razões para fazer o comércio. Mantenha uma seção no gráfico onde você pode indicar o seguinte:


Razões Fundamentais (Exemplo) "Eu acredito que o dólar continuará a enfraquecer, devido à política de longo prazo do Fed de manter as taxas de juros mais baixas do que os parceiros comerciais e manter um alto déficit comercial". Razões técnicas (exemplo) "O dólar voltou a um nível de resistência que oferece uma oportunidade para vender o dólar". Razões seniores ou psicologia do mercado (exemplo) "Os comerciantes estão reduzindo seu apetite por risco com base na produção prolongada de commodities e no potencial de correção, bem como o desempenho fraco da economia dos EUA, medido pelo enfraquecimento do PIB e números de criação de emprego pobres ".


Observe seus comentários sobre a impressão real ou captura de tela do seu gráfico. Finalmente, você deve criar uma revista para cada tipo de metodologia de negociação ou sistema que você emprega. Não misture sistemas, pois os resultados de suas negociações derivarão de muitas variáveis ​​e não serão conclusivos. Portanto, se você possui mais de um sistema ou metodologia comercial, você deve manter um diário para cada um.


Todo comércio que você gravar deve basear-se em apenas um sistema particular, o que lhe dará a capacidade após 20 trades ou mais para calcular a expectativa ou a confiabilidade do seu sistema.


TradingDiary Pro.


O jornal de negociação totalmente automatizado.


Mais de 25 opções.


As estratégias são suportadas.


Mantenha um diário comercial.


Desenvolva a estratégia certa.


Controle-se.


Mantenha um diário comercial.


Economize tempo e ganhe mais dinheiro!


Manter um diário comercial evita que você negocie aleatoriamente e impulsivamente, e perca uma enorme quantidade de dinheiro; por sua vez, faz de você um comerciante muito mais bem-sucedido.


Esqueça os modelos do Excel, folhas e registros comerciais que você passou semanas construindo e então precisa preencher diariamente!


O TradingDiary Pro é um gravador de desempenho comercial amigável com suporte de importação com um clique, uma ampla gama de configurações, estatísticas úteis e relatórios práticos. Os gráficos visuais claros irão ajudá-lo a entender a verdadeira natureza humana da negociação, evitar repetidamente cometer o mesmo erro e controlar seu comportamento.


Dê a si mesmo a chance de melhorar o seu desempenho e se tornar tão bom como sempre sonhou que você seria.


Desenvolva a estratégia certa.


Controle seu desempenho comercial!


Desenvolva uma estratégia vencedora!


Você é um comerciante ativo que toma uma série de decisões e executa uma série de negócios por dia? Então, o TradingDiary Pro irá ajudá-lo a registrar e recuperar facilmente estatísticas de desempenho passadas e presentes.


Gravar suas transações é tão importante como examinar o histórico de ações antes de entrar em uma negociação. Por que é essencial? A idéia é manter um registro de por que você entrou ou saiu de um comércio específico, quais as circunstâncias e se sua decisão estava correta ou não; Usando essa informação, você pode aprender com o passado.


Um diário comercial ajuda você.


* identificar instrumentos mal sucedidos.


* reconhecer decisões ruins.


* analise os pontos de perda / ganho.


* manter táticas de sucesso.


* melhorar sua estratégia.


Conhecimento é poder. Um diário comercial permite que você analise seus erros e sucessos. TradingDiary Pro será seu treinador em sua busca para desenvolver uma estratégia vencedora e se tornar um comerciante melhor.


Controle-se.


Familiarize-se com seus hábitos!


Revise suas práticas comerciais, monitore seus padrões de tomada de decisão e controle suas emoções.


Você já analisou um comércio passado e se perguntou o que aconteceu? Nenhum dos softwares de análise técnica, sites de notícias de estoque ou seminários de comerciantes pode poupar tempo e esforço de auto avaliação.


Você é um comerciante estratégico ou um amante de diversão? Familiarizar-se com seus hábitos é essencial para o sucesso. A manutenção de registros é fundamental para a execução de um negócio eficiente e um diário pode melhorar seu desempenho muito mais do que você nunca imaginou.


Se você já tomou uma decisão de negociação em um momento de excitação e você tinha certeza de que estava fazendo o melhor negócio apenas para descobrir que foi um grande erro, então você vai gostar do TradingDiary Pro porque isso ajuda você a reconhecer esses momentos.


Um periódico de negociação é usado para ajudá-lo a entender por que você se comportou de forma específica, e assim melhorar sua abordagem no futuro. Manter um diário ajuda você a entender suas motivações e se tornar um comerciante melhor.


Processo de compra.


Baixe a versão de avaliação de 30 dias!


Compre o TradingDiary Pro.


Ative a versão de teste e torne-se um comerciante melhor!


Capturas de tela.


Julgamento de 30 dias.


Antes de comprar o software, você pode tentar se ele atende a todos os seus requisitos. A versão de avaliação é válida por 30 dias e mantém todas as características como a original, exceto a exportação do relatório de ganhos de capital.


Basta baixar a versão mais recente da página de Software e após a instalação, siga o assistente inicial ou clique no menu de ajuda / iniciar o teste. Observe que o software periodicamente se comunica com os servidores de licenças para validar o seu teste. Após o período de teste, você pode usar o software em modo somente leitura, o que significa que você não pode modificar seu banco de dados do TradingDiary Pro mais.


Se você está satisfeito, gostaríamos de ter entre os nossos clientes!


Clientes felizes.


Amazing Trading Journal Tool!


Estou muito satisfeito com o produto. Muito estável, muito eficiente e poderoso.


Clientes ao redor do mundo.


Artigos Mais Recentes.


Como usar o TradingDiary Pro como um jornal comercial.


Usando o TradingDiary Pro como um diário de negociação No TradingDiary Pro existem várias maneiras de adicionar notas a trades ou até mesmo escrever seus sentimentos em um documento ou adicionar screenshots a uma posição. Posições Gantt View A funcionalidade principal do diário pode ser encontrada na visualização Posição Gantt. A visão consiste em três separadas [& hellip;]


MAE e MFE explicaram.


Existem vários indicadores importantes em sua negociação, como lucro e perda, tempo e assim por diante. Um deles é a ação de preço durante o comércio. Leia este artigo para aprender sobre MAE e MFE e como o TradingDiary Pro os calcula. O que MAE e MFE representam? MAE significa stands de MFE de Excursão Adversa Máxima [& hellip;]


TradingDiary Pro 3.2 lançado.


O que há de novo na versão 3.2? Novos recursos Uma visão vertical do painel de instrumentos foi adicionada chamada Vista de Gráficos Ícone de exibição extravagante 🙂 Importação de importadores Importador de Degiro Importador de Westpac Importador de Light Speed ​​Atualização do importador intermediário interativo devido a mudança de formato de transação de dinheiro Correções de erros Correção do item Gantt Chart problemas de restauração de layout corrigido [& hellip;]


TradingDiary Pro 3.1 lançado.


O que há de novo na versão 3.1? Novos recursos Última etapa de suporte completo de DPI. Isso significa que o software é executado em telas de 4K sem problemas de dimensionamento. O modelo de encaixe mudou. Há um gerenciamento novo e mais fácil de usar do Windows. Mais de 40 novas capas foram adicionadas Layout save e restore. É possível [& hellip;]


QuantStart.


Junte-se ao portal de membros privados da Quantcademy que atende à comunidade de comerciantes de varejo de varejo em rápido crescimento. Você encontrará um grupo bem informado de mentalistas quant pronto para responder suas perguntas comerciais mais importantes.


Confira meu ebook sobre o comércio de quant, onde eu ensino você como criar estratégias de negociação sistemáticas lucrativas com ferramentas Python, desde o início.


Dê uma olhada no meu novo ebook sobre estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatísticas bayesianas, com Python e R.


Por Michael Halls-Moore em 21 de janeiro de 2018.


Eu mencionei anteriormente no artigo QuantStart: 2018 In Review que eu estaria gastando algum escrito em 2018 sobre negociação forex automatizada.


Dado que eu mesmo geralmente realizo pesquisas em mercados de ações e futuros, pensei que seria divertido (e educativo!) Escrever sobre minhas experiências de entrar no mercado de divisas no estilo de um diário. Cada "entrada diária" tentará construir sobre todos aqueles antes, mas também deve ser relativamente autônoma.


Nesta primeira entrada do diário, descreverei 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 baseado em 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 a seguir para o Ubuntu 14.04, mas elas devem ser facilmente traduzidas para Windows ou Mac OS X, usando uma distribuição Python, como 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 o comércio cambial, e o código apresentado abaixo pode ser direto para um ambiente de negociação ao vivo, gostaria de apresentar as seguintes isenções:


Isenção de responsabilidade: a negociação de câmbio na margem possui um alto nível de risco e pode não ser adequada 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 uma 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 "tal 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üentes (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 delito (incluindo negligência ou outra) decorrente de qualquer uso do software, mesmo que seja avisado da possibilidade de tal dano.


Configurando uma conta com OANDA.


A primeira pergunta que vem à mente é "Por que 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 fornecendo apenas 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 tenham uma API similarmente moderna, então eu ficaria 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ê precisa fazer uma anotação da sua identificação da conta. Ele está listado abaixo do cabeçalho preto "Meus fundos" ao lado de "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 da API" abaixo da guia "Outras Ações" no canto inferior esquerdo:


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 iniciar o aplicativo FXTrade Practice, o que nos permitirá ver as ordens executadas e nosso (paper!) Profit & amp; perda.


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 verde "Lançar FXTrade Practice". Ele abrirá 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 ajustado para um gráfico de velas de 15 minutos de EUR / USD com o Painel de Citações à esquerda:


Tela de prática OANDA fxTrade.


Neste ponto, estamos prontos para começar a projetar e codificar nosso sistema automatizado de trading forex contra a API OANDA.


Visão geral da arquitetura comercial.


Se você acompanha a série de backtester com base 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 informações sobre 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. Portanto, um feed de dados do mercado pode criar o 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á espera por nenhum 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 é polida 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:


Manipulador de preços de transmissão - Isso manterá uma conexão de longa duração aberta aos servidores OANDAs e enviará dados de marca (por exemplo, lance / pedido) em toda a conexão para quaisquer instrumentos nos quais estamos interessados. Estratégia Gerador de Sinal - Isso levará uma seqüência de tiques eventos e use-os 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. Exigimos apenas dois para esta implementação, nomeadamente o TickEvent e o OrderEvent. Ponto de entrada principal - O ponto de entrada principal também inclui o loop "trade" que pesquisa continuamente a fila de mensagens e envia mensagens para o componente correto. Isso geralmente é conhecido como "loop de eventos" 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ódigos, pois você nunca pode prever quem será, eventualmente, permitido o 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 os 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 subdiretor contém três pontos de extremidade de 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 API prática, 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 API real é 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, 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 contabilizado de outra maneira 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 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 ACCESS_TOKEN e ACCOUNT_ID. Eu preenchi os dois abaixo com IDs fofos, então você precisará usar 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) lance / pedido e o tempo de troca. O segundo é usado para transmitir ordens ao manipulador de execução e, portanto, contém o instrumento, o número de unidades a negociar, o tipo de ordem ("mercado" ou "limite") e o "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 receba todos os carrapatos do mercado e, em cada 5º tick, compra ou vende de maneira aleatória 10 mil unidades de EUR / USD.


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 com isso 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. Precisamos do OrderEvent, pois é assim que o objeto de estratégia enviará ordens para a fila de eventos, que posteriormente será executada pelo manipulador de execução.


A classe TestRandomStrategy simplesmente leva o instrumento (neste caso EUR / USD), 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 calculate_signals, 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 adequada para os nossos testes de API de corretagem da 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 o httplib, um dos Pythons criados em bibliotecas.


A maior parte do trabalho ocorre em execute_order. 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 corretamente codificados (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 (EUR / USD), unidades, tipo de ordem e lado (compra / venda). 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ços de mercado da OANDA. Existem dois métodos: connect_to_stream e stream_to_queue.


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ários que devem ser ouvidos para atualizações (neste caso, é apenas EUR / USD). Observe a seguinte linha:


Isso diz que a conexão deve ser transmitida e, portanto, mantida aberta de uma maneira longa.


O segundo método, stream_to_queue, realmente 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 para um dicionário Python. Finalmente, convertemos o dicionário Python com o instrumento, lance / perguntar e timestamp em um TickEvent que é enviado para a fila de eventos:


Agora temos todos os principais componentes no local. 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 de código "separados", 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 "liberaria" de volta para o caminho do código principal e, portanto, nunca realizaríamos nenhuma negociação. Da mesma forma, se corremos o loop de comércio (veja abaixo), nunca retornaríamos o caminho do fluxo para o soquete de transmissão de preços. Portanto, precisamos de múltiplos 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 o nome da função ou do método para o argumento de palavra-chave alvo e passamos uma iterável (como uma lista ou uma tupla) para o argumento de palavras-chave args, que passa esses argumentos para o método / função real.


Finalmente, começamos os dois tópicos com as seguintes linhas:


Assim, somos capazes de executar dois, efetivamente infinitos looping, segmentos de código independentemente, que ambos 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, encadeamento 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 em 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 para "heartbeat" segundos (neste caso, 0,5 segundos) e continua.


Finalmente, definimos o ponto de entrada principal do código na função __main__. É bem comentado abaixo, mas vou resumir aqui. Em essência, instanciamos a fila de eventos e definimos os instrumentos / unidades. 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:


Note-se que, para parar o código nesta fase, é necessária uma dura matança do processo Python, através de "Ctrl-Z" ou equivalente! Eu não adicionei um tópico adicional para lidar com a procura do sys. exit () que seria necessário para parar o código com segurança. Uma maneira potencial de parar o código em uma máquina Ubuntu / Linux é digitar:


E depois passar a saída deste (um número de processo) para o seguinte:


Onde PROCESS_ID deve ser substituído pela saída de pgrep. Observe que esta não é particularmente boa prática!


Em artigos posteriores, estaremos criando um mecanismo de parada / início mais sofisticado que faz uso da supervisão do processo do Ubuntu para que o sistema comercial seja executado 24/7.


A saída após 30 segundos ou mais, dependendo da hora do dia em relação ao horário de negociação principal para EUR / USD, para o código acima, é dada abaixo:


As primeiras cinco linhas mostram os dados de marca JSON retornados de OANDA com os preços de lances / pedidos. Posteriormente, você pode ver a ordem de execução! saída, bem como a resposta JSON retornou da OANDA confirmando a abertura de um comércio de compra por 10.000 unidades de EUR / USD e o preço alcançado em.


Isso continuará funcionando indefinidamente até você matar o programa com um comando "Ctrl-Z" ou similar.


Qual é o próximo?


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 sistema de comércio monitorado 24/7, com capacidade de parada / início. Gerenciamento de portfólio e risco - Carteira e sobreposições de risco para todas as encomendas sugeridas da estratégia. Múltiplas estratégias - Construindo um portfólio de estratégias que se integram na sobreposição de gerenciamento de riscos.


Tal como acontece com o backtester baseado 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 alterar ACCOUNT_ID e ACCESS_TOKEN!):


Apenas iniciando o comércio quantitativo?


3 razões para se inscrever para a lista de e-mails QuantStart:


1. Quant Trading Lessons.


Você terá acesso instantâneo a um curso de e-mail gratuito de 10 partes, repleto de sugestões e dicas para ajudá-lo a começar a negociação quantitativa!


2. Todo o conteúdo mais recente.


Todas as semanas, vou enviar-lhe um envoltório de todas as atividades no QuantStart para que você nunca mais perca uma postagem novamente.


Real, dicas de negociação viáveis, sem tonturas.


Como manter um jornal de comércio da maneira fácil (e porque)


Talvez tenha ouvido falar de um jornal comercial. É onde os comerciantes seguem seus negócios e pensamentos ao longo do dia. É uma ótima ferramenta de negociação porque uma revista de negociação completa inclui detalhes além do que você pode ver em sua declaração de corretagem. Isso inclui se você estava doente, como as condições do mercado, se você estivesse distraído ou cometeu erros (o que fez ou perdeu o dinheiro que você não teria feito).


É também onde você pode gravar idéias de estratégia que podem surgir à medida que você troca ao longo do dia.


Não há dúvida sobre isso, todos os comerciantes devem manter um diário comercial. Mas os comerciantes do dia não têm tempo de derramar suas tripas no papel o dia todo. Na verdade, manter um jornal de negociação enquanto negocia - quando a ação está acontecendo - pode realmente ser contraproducente, levando a negociações perdidas e concentrando-se mais no jornal corretamente do que negociar corretamente!


Aqui é a solução fácil. Isso envolve absolutamente nenhuma escrita manual e dá-lhe um registro histórico das condições de mercado exatas que você enfrentava em um determinado dia.


Como manter um jornal comercial. O caminho fácil.


Uma imagem diz mil palavras, certo? Perfeito, vamos usar uma imagem. Em vez de escrever como eram as condições do mercado, quais erros foram cometidos, o que fizemos bem e as novas idéias de estratégia que tivemos, faça uma captura de tela do dia de negociação com algumas anotações digitadas.


A maioria dos comerciantes marca seus gráficos ao longo do dia de qualquer maneira, desenhando linhas e níveis de indicadores de marcação que ajudam a determinar a tendência e a encontrar possíveis pontos de reversão / alvo. O gráfico mostra as condições de mercado exatas sendo negociadas. Nossa análise intradía (via linhas e indicadores) mostra como estávamos percebendo o mercado naquele dia. Algumas palavras em uma revista comercial nunca poderiam descrever também.


Uma imagem é uma maneira fácil de manter um diário de negociação, mas para torná-lo útil quando você olha para trás (para revisão, para que você possa melhorar sua negociação) você precisa incluir certas coisas.


Um Trading Journal of Pictures - Como marcar seus gráficos.


Aqui estão as diretrizes básicas para marcar seus gráficos para torná-los úteis para referência futura.


Tente incluir um pouco de ação de preço (uma hora ou duas) antes de começar a negociar. Isso fornece um contexto para o que estava acontecendo quando você começou a negociar. Você não precisa incluir ação de preço no dia anterior, apenas algumas horas antes de começar, se aplicável (sem ação antes de começar, não se preocupe com isso). Veja quais os quadros de tempo a serem observados durante o dia de negociação de ações para obter mais informações sobre este tópico. Marque sua hora de início com uma linha vertical ou nota de texto no gráfico. Isso permite que você saiba se você começou a negociar cedo ou tarde e / ou por que você pode ter perdido alguns sinais comerciais no início do dia. Anote os tempos de grandes eventos econômicos para os quais você estará se afastando. Quando esse tempo se aproxima, anote novamente que você não estava negociando por causa de notícias. Faça anotações de texto ao longo do dia sobre as tendências que você notar e comentários sobre as condições do mercado. Se você comete um erro, anote isso. Se você perder uma troca, anote isso. Mantendo tantas linhas de tendência e desenhos em seu gráfico quanto possível (assumindo que não o distraem). Eles ajudam a mostrar seu futuro como você estava vendo o mercado em tempo real em qualquer momento. Veja 5 coisas que simplesmente negociam e reduzem a desordem. Marque os níveis de comércio - entradas e saídas - juntamente com os lucros em centavos, pips ou pontos, se negociar o estoque, o mercado forex ou o mercado de futuros, respectivamente. Marque quando você interrompe a negociação do dia com uma linha vertical ou nota de texto. Digite quantos negócios você fez, quantos vencedores e o lucro total para ganhar negócios, quantos perdedores e perda total de negociações perdidas, e o resultado líquido (lucro total menos perdas totais). Idealmente, evite usar dólares. Em vez disso, use pips para forex, centavos para ações ou carrapatos / pontos para futuros. Por exemplo, se negociar o contrato ES Futures, em vez de dizer 4 vencedores $ 400 - 4 perdedores $ 200 & # 61; Net & $ 43; $ 200, diga 4 vencedores 8 pontos - 4 perdedores 4 pontos e # 61; Net & # 43; 4 pontos. Os números do dólar flutuam com base no tamanho da posição, enquanto pontos / pips / cents podem ser comparados ao longo do tempo, independentemente do tamanho da posição.


Pronto para começar a construir riqueza? Inscreva-se hoje para aprender a economizar para uma reforma antecipada, enfrentar sua dívida e aumentar seu patrimônio líquido.


No final do dia de negociação, tome uma captura de tela do seu gráfico (clique no gráfico e pressione Alt & # 43; PrtSc). Em seguida, colar em um editor de fotos (pode ser livre como Paint, Irfanview ou Gimp. Salvar. Ele deve incluir todas as informações acima, sem ser demasiado squished - você ainda quer poder ver tudo que aconteceu. Se você pode ver tudo em um gráfico, tirar dois ou três tiros e salvá-los separadamente.


Salve todos os dias como um arquivo no formato: month-day-year-screenshot #. Se você tiver apenas uma captura de tela para o dia, será apenas a data. Mas se você tiver três screenshots para o dia, cada um é salvo com a data, bem como 1, 2, 3, etc, no final.


Crie uma pasta comercial na sua área de trabalho e crie pastas para cada mês dentro dela. Coloque cada captura de tela na pasta do mês apropriada.


Mantendo um jornal comercial o caminho fácil - Palavra final.


Ao tirar as capturas de tela de seus negócios, todos os dias você captura muito mais informações do que você poderia simplesmente escrevendo em uma revista. Além disso, se você quiser escrever coisas, você pode fazer isso diretamente em seus gráficos, ou manter um jornal comercial escrito também. Seja diligente nessa rotina, para que você tenha todos os trocas que você fizer.


No final de cada semana e mês, volte e veja o que fez, observe problemas comuns e veja seus pontos fortes. Essas observações podem ajudá-lo a explorar seus pontos fortes e destacar quais áreas você precisa trabalhar.

No comments:

Post a Comment