Estratégias de negociação forex tradestation


MetaTrader vs. TradeStation: Uma Comparação de Linguagem por Michael R. Bryant Qualquer um que negocie ativamente o Forex provavelmente já ouviu falar do MetaTrader. Eles afirmam ter mais de meio milhão de usuários para as versões móveis de suas plataformas de negociação MT4 e MT5. Em resposta às solicitações dos usuários do MetaTrader, tenho trabalhado na adição da saída do MetaTrader 4 (MT4) ao Adaptrade Builder. Ao finalizar a documentação do novo recurso de saída de código MT4 no Builder, achei que seria um bom momento para discutir algumas das maneiras pelas quais a linguagem de programação MT4, chamada MQL4, difere da linguagem de programação TradeStations, chamada EasyLanguage. Se você é um comerciante sistemático interessado em negociar forex e ainda não escolheu uma plataforma de negociação, ou você está pensando em mudar de uma plataforma para outra, há algumas coisas que você deve saber sobre as duas linguagens de script. Se você está apenas aprendendo sobre o MetaTrader, pode se perguntar por que é uma plataforma tão popular. Na minha opinião, é resultado de vários fatores. Primeiro, a plataforma é gratuita. Você pode baixar o software e obter gratuitamente dados forex como parte da plataforma, sem nenhum custo. A plataforma inclui todos os principais símbolos forex e, depois de se inscrever para uma conta de demonstração gratuita, os dados são atualizados em tempo real. Além disso, a linguagem de script MetaTrader 4, MQL4, é parte integrante da plataforma. Você pode usar o MQL4 para escrever indicadores, quotscriptsquot (código para executar funções específicas mediante solicitação) e quotcpert advisors (EAs) quot (estratégias de negociação). A linguagem MQL4, como discutido abaixo, é muito versátil e faz do MT4, como a TradeStation, uma plataforma extensível. Existe uma comunidade ativa de usuários MT4 que contribuem com indicadores e EAs para o fórum MT4. A plataforma MT4, como a linguagem MQL4, é projetada especificamente para forex. Discutirei mais sobre como isso afeta a linguagem MQL4 abaixo, mas o ponto aqui é que o forex é um mercado global grande e crescente, e o MetaTrader tem como alvo específico esse mercado. Por fim, ao contrário da TradeStation, que principalmente limita os usuários a usar seus próprios serviços de corretagem, o MetaTrader é compatível com uma ampla variedade de corretores de forex. Como um usuário de longa data da TradeStation, lembro-me de quando a TradeStation era apenas para negociar nos mercados futuros. A linguagem de programação EasyLanguage foi projetada por traders de futuros para traders de futuros. Ao longo dos anos, a linguagem foi estendida e adaptada para funcionar bem em outros mercados, principalmente em ações, opções e forex. No entanto, algumas de suas características ainda refletem suas origens nos mercados futuros. O MQL4 (abreviatura de MetaQuotes Language 4) foi concebido especificamente para os mercados cambiais. Muitas vezes, o material instrucional para negociação forex enfoca idéias e conceitos de negociação genéricos, como indicadores técnicos e tipos de lógica de negociação, e ignora os detalhes de como os mercados cambiais funcionam e como isso faz com que o forex seja diferente de outros mercados, como ações e futuros. . O fato é que a negociação forex funciona de maneira um pouco diferente de outros mercados, como qualquer pessoa que faz a transição de um mercado diferente sabe disso. O MQL4 tende a refletir essas diferenças. Principais diferenças Aqui estão algumas das principais diferenças entre o EasyLanguage e o MQL4. Salvo indicação em contrário, a discussão se refere a escrever estratégias de negociação e testá-las em dados históricos. A premissa da execução do código do EasyLanguage é que todo o código é executado no fechamento de cada barra do gráfico ao qual a estratégia é aplicada. Se o gráfico consistir em barras diárias, por exemplo, o código será executado no fechamento de cada barra diária. Se você quiser que o código seja executado com mais freqüência, o gráfico deve ser alterado para ter um tamanho de barra menor. Você pode, no entanto, forçar o código a executar determinados elementos com mais frequência usando o recurso de verificação de retorno do back-testing da barra interna. Isso usa dados de preço em uma resolução maior do que a mostrada no gráfico para produzir resultados mais precisos. O código MQL4 usa uma função chamada start () que é executada em cada tick. Normalmente, o principal código de estratégia ocorre dentro da função start (). Se você não quer que o código seja executado em cada tick, você tem que programar essa lógica em start (). Por exemplo, para que o código seja executado na abertura de cada barra, você pode usar o volume da barra para detectar a abertura usando quotVolume0 lt 1quot. Não há nenhuma maneira prática de detectar o fechamento da barra, então as estratégias no MT4 normalmente são executadas em cada tique ou nas barras abertas. Como o código EasyLanguage é executado no fechamento da barra, as instruções da ordem de negociação são sempre para execução na próxima barra, por exemplo, "Compre o próximo bar no mercado". A instrução equivalente mais próxima no MQL4 seria colocar a ordem para a barra atual nas barras atuais abertas. Neste caso, a lógica de negociação é sempre avaliada na barra anterior no MQL4, enquanto no EasyLanguage, a lógica é avaliada na barra atual. Ao contrário do EasyLanguage, o MQL4 não restringe as estratégias aos dados do gráfico no qual a estratégia foi aplicada. Você pode fazer referência a qualquer série de dados disponível em uma estratégia MT4, consultando o símbolo e o tamanho da barra. Os tamanhos das barras estão limitados a 1, 5, 15, 30, 60 e 240 minutos, bem como diariamente, semanalmente e mensalmente. A TradeStation tem uma variedade maior de tamanhos de barra disponíveis, incluindo tamanhos de barras de qualquer número inteiro de minutos e barras de escala de qualquer número de ticks. Execução de Ordens EasyLanguage faz um trabalho louvável ao esconder as complexidades de colocar e executar ordens de negociação. Por exemplo, se você tiver uma posição curta e fizer uma ordem de entrada longa, se você não especificar o tamanho, a entrada longa fechará automaticamente a negociação a descoberto e, ao mesmo tempo, a negociação longa. Da mesma forma, se você tiver vários pedidos pendentes para sair, digamos, uma negociação longa no mercado, dependendo de condições diferentes, se várias condições forem verdadeiras ao mesmo tempo, apenas uma ordem de saída será colocada e as outras serão canceladas automaticamente. Além disso, as ordens de negociação no EasyLanguage persistem por apenas uma barra e são automaticamente canceladas se não forem preenchidas no final da próxima barra. O MQL4 deixa o manuseio de pedidos em grande parte até o programador. Se você tem várias ordens concorrentes, você precisa gerenciá-las você mesmo, cancelando as que não são executadas e certificando-se de que várias ordens não sejam executadas involuntariamente. Por exemplo, no MQL4, se você quiser que uma entrada inverta uma posição aberta, você deve especificar o número de lotes para obter o resultado líquido desejado (por exemplo, vender dois lotes com um lote aberto para terminar com um lote a menos) ou rastreie a posição aberta e feche-a assim que a nova entrada for detectada. Ações vs. Lotes No EasyLanguage, o tamanho de uma posição de negociação é especificado em contratos (por exemplo, futuros) ou ações. Para negociação forex, um tamanho de posição padrão na TradeStation seria de 10.000 ou 100.000 ações, correspondendo a um lote pequeno ou de tamanho normal. De acordo com sua orientação cambial, no MetaTrader o tamanho do negócio é especificado em lotes, que podem ser fracionários. Um lote de tamanho completo seria muito tamanho de 1. Um lote mini seria muito tamanho de 0.1. Custos de negociação e preços de preenchimento Como a TradeStation e a EasyLanguage foram originalmente orientadas para a negociação de futuros, elas seguem a convenção de usar o slippage para contabilizar o fato de que as negociações não são geralmente preenchidas com o preço de mercado. Slippage é o custo do dólar adicionado ao comércio para contabilizar isso. Normalmente, você também deve inserir os custos de comissão por contrato / ação ou por transação para contabilizar as taxas que a corretora cobra para executar o negócio. Todos esses custos são tratados da mesma maneira: eles deduzem um valor em dólar de uma transação lucrativa ou adicionam o mesmo valor a uma negociação perdida. Os mesmos custos são deduzidos de todas as negociações, tanto longas quanto curtas. Ao mesmo tempo, presume-se que o negócio tenha sido preenchido ao preço especificado, seja o preço atual para uma ordem de mercado ou o preço de parada ou limite especificado. O MQL4 usa uma abordagem um pouco mais sofisticada para negociar custos e preencher preços. No MetaTrader, é importante entender que cada preço é na verdade dois preços, o lance e o pedido. O lance é o preço mais baixo, enquanto o pedido é o preço mais alto. A diferença entre o lance e o pedido é chamada de spread bid / ask. As ordens de compra são sempre preenchidas no pedido e as ordens de venda são sempre preenchidas no lance. Um gráfico de preços exibe apenas o preço do lance. Isso significa que as ordens de compra de mercado serão preenchidas acima do preço de mercado aparente (com base no gráfico), enquanto as ordens de venda de mercado serão preenchidas ao preço exibido no gráfico. O spread bid / ask faz parte do custo do negócio. Isto é consistente com a prática comum na negociação forex de pagar pelo comércio através do spread, em vez de pagar ao corretor uma comissão fixa. O MQL4 também usa o spread bid / ask para determinar se um pedido pendente está preenchido. Por exemplo, uma ordem de parada de compra só será preenchida se o preço de venda, que estiver acima do preço do gráfico (lance), tocar o preço de parada. Se, por exemplo, a barra de preços no gráfico tocar apenas no preço de parada, pode parecer que o pedido deve ser preenchido, mas o MT4 não mostrará o comércio histórico como preenchido a menos que o preço de venda tenha atingido o preço de fim de compra. Da mesma forma, uma ordem de limite de compra não será registrada como preenchida, a menos que o preço de venda alcance o preço limite de compra. Vender stops e limites são preenchidos no lance, portanto, diferentemente dos pedidos de compra, os preços de preenchimento correspondem diretamente aos preços do gráfico. O spread bid / ask não é o único spread de preço que afeta as ordens de negociação no MT4 / MQL4. Se uma ordem pendente (parada ou limite) estiver muito próxima do mercado no momento da sua colocação, a ordem será rejeitada. Isso é baseado na ideia de que não haverá tempo suficiente para fazer o pedido antes que o mercado se mova pelo preço do pedido. Essa distância mínima pode ser recuperada usando a função MarketInfo (..) no MQL4. Da mesma forma, uma ordem pendente não pode ser modificada em MQL4 se o preço atual da ordem estiver dentro do chamado nível "quedas". Em outras palavras, se o pedido está tão próximo do mercado que pode ser preenchido a qualquer momento, você não tem permissão para modificá-lo. Por causa da abordagem mais sofisticada que o MT4 / MQL4 usa para representar o preenchimento de pedidos, os preços de preenchimento no MT4 para simulações históricas (ou seja, back-testing) provavelmente serão mais precisos do que na TradeStation. Sintaxe da Linguagem Tanto o EasyLanguage quanto o MQL4 são linguagens semelhantes a C. Ou seja, ambos têm semelhanças com a linguagem de programação C, que é uma linguagem de programação procedural de propósito geral desenvolvida no final da década de 1970. O MQL4 é muito mais próximo na sintaxe do C que o EasyLanguage. No entanto, enquanto o MQL4 parece quase idêntico ao C, existem algumas diferenças, e o MQL4 não implementa todos os recursos de linguagem do Cs. Os arquivos de ajuda no MT4 anotam as diferenças. Diferenças de Indicador Para quem pretende converter uma estratégia do EasyLanguage para o MQL4 ou vice-versa, esteja ciente de que nem todos os indicadores disponíveis em ambas as plataformas são calculados da mesma maneira em cada plataforma. Em particular, os seguintes indicadores fornecem valores substancialmente diferentes em cada plataforma para os mesmos dados de preço: Momentum, FastD estocástico (modo principal do indicador estocástico em MT4), SlowD estocástico (linha de sinal do indicador estocástico em MT4), DI - / DI (movimento direcional), ADX e acumulação / distribuição. Também deve ser notado que a TradeStation inclui mais indicadores embutidos do que o MT4. Através do fórum online do MT4, no entanto, é possível encontrar uma grande variedade de indicadores que foram fornecidos gratuitamente por outros membros. Conclusões Tanto o EasyLanguage quanto o MQL4 são linguagens de script de propósito geral projetadas para a negociação nos mercados. Com qualquer uma das linguagens, é possível desenvolver estratégias de negociação altamente complexas e sofisticadas. Em geral, minha experiência, que parece ser apoiada por outros, é que o MQL4 é uma linguagem mais difícil de dominar do que o EasyLanguage, embora a maioria dos usuários do TradeStation provavelmente concordaria que o nome EasyLanguage é um pouco inapropriado. Grande parte da complexidade do MQL4 vem dos requisitos que ele coloca no programador para gerenciar ordens de negociação, algo que a EasyLanguage lida com os bastidores na maioria das vezes. No entanto, a carga extra vem com maior controle e maior precisão na estimativa de preços de preenchimento em testes históricos. No geral, não é de se surpreender que o MT4 seja uma plataforma de negociação popular para forex e que o MQL4 esteja no topo da minha lista de solicitações de clientes do meu software Adaptrade Builder para construção de estratégia. Existem duas versões atuais do MetaTrader: MetaTrader 4 e MetaTrader 5. Ambas as plataformas são ativamente suportadas, mas usam linguagens de script diferentes. O MT4 é de longe a plataforma mais popular. Como resultado, este artigo enfocará exclusivamente o MT4 e sua linguagem de script associada, MQL4. Este artigo foi publicado na edição de dezembro de 2012 do boletim informativo da Adaptrade Software. TradeStation para negociação de moeda estrangeira Existe uma alternativa ao Tradestation. É chamado multicharts multicharts / Eu estou usando este software todos os dias para gráficos e seu melhor que o TS. Sua easylanguage é 99,99 compatível com TSs easylanguage. Os corretores forex suportados são MBT, FXCM, Interactive Brokers e Dukascopy (através do FIX API). Tem algumas vantagens sobre TS, por exemplo. ele usa multicores e hyperthreading para otimização (foi originalmente planejado para ser uma plataforma unicamente para comerciantes de algo). Tem também algumas desvantagens em relação ao TS: sem manual. Obrigado por postar isso. Eu uso ninja comerciante no momento, mas eu nunca fui 100 feliz com eles, não posso reclamar tanto quanto eu uso a versão gratuita. Eu estou olhando para alternativas. Vou dar uma olhada parece que a vida é a melhor opção em termos de custo. outro lá fora, isso vale a pena olhar é amibroker Se você executar MultiCharts, então que corretor de forex você usa para colocar as ordens Im mais interessado como se aplica para spot forex. A TradeStation é um software de gráficos e corretor (embora o Forex seja um número de conta separado de ações ou futuros), e eu posso executar ordens condicionais OCO / OSO diretamente com a conta. Eu não corro multicharts agora para gráficos. Eu os ajudei a testar com o OEC api (OpenECry). Isso foi cerca de 3 ou 4 anos atrás. Essa foi a última vez que usei para negociação. Eu olhei para a plataforma novamente cerca de um ano atrás, enquanto eu estava considerando MBT ou OEC forex, e poderia simultaneamente assistir futuros. Mas o OEC exige uma conta de forex separada. E eles limparam via Ganho. Talvez isso tenha mudado, mas há cerca de 6 meses atrás, ainda era Gain. Depende da API do broker. Normalmente, o que é permitido na plataforma proprietária deve ser permitido via API. E a API geralmente permite mais opções. Corretoras como a MBT e a OEC, que já têm um histórico de futuros, normalmente terão o OCO / OSO Market próximo, e outras cotações mais sofisticadas, então, limite / ordens de mercado. Se o corretor não suportar nativamente, o MC poderá simular essas ordens. Como alternativa, você pode programar a simulação desses pedidos no script de automação do Expert Advisor. Semelhante a como o MT4 não tem negociação na funcionalidade do gráfico, mas há uma empresa que programou scripts que permitiam o posicionamento de pedidos com um clique, TP / SL automático, OCO, etc. Embora seja bom ter a capacidade de fazer pedidos OCO nativamente com a API do broker, há motivos para manter esses pedidos apenas no lado do cliente. Eu não troquei Forex usando MC como meu pacote de gráficos. Estou focado em automatizar via MT4, e então eu posso portar as estratégias para o MC em uma data posterior. Meça tendências automaticamente com atraso zero O documento da TradeStation citado vários posts acima diz:. e isso vai permitir a negociação de lotes ímpares a partir de 10K (ou seja, um equivalente Mini), sem comissão (ou seja, eles fazem com que a partir do spread eu acho que a maioria das outras contas de varejo à vista). Isso soa como o TS se preparando para fazer seu próprio mercado em vez de depender do Gain Capital para fazê-lo - qualquer um sabe se isso está acontecendo, e qual é a sua opinião Max É explicado muito claramente nessa mensagem do cliente. Leia esse link novamente. Portfólios de sistema de negociação Os portfólios de sistema de negociação são desenvolvidos combinando diferentes sistemas de negociação que usam métodos diferentes para buscar redução de risco por meio da diversidade. Sistemas de negociação multi-mercado, multi-estratégia, que negociem tendências e tendências de contra-tendências, proporcionam oportunidades de lucro em todo tipo de ambiente de mercado. A experiência nos mercados e a compreensão da resposta de cada sistema a determinadas condições do mercado permitirão determinar quais sistemas funcionarão melhor nos ambientes de mercado atuais. Abaixo está uma lista de nossos portfólios atuais com as últimas atualizações em 9 de novembro de 2016 para o comércio pós-eleitoral e passando por 2017. O objetivo do Portfólio do Sistema de Negociação de Um Milhão de Dólares é obter ganhos anuais médios de 25, mantendo os rebaixamentos menos de 10. Consideramos isso uma abordagem conservadora para negociação de futuros, uma vez que a maioria das estratégias são estratégias de day trade. A Carteira de Um Milhão de Dólares é uma carteira de contrato múltiplo de 17 sistemas com um perfil de risco atual de 5. Esta carteira foi atualizada em 9 de novembro de 2016 para o quarto trimestre de 2016.

Comments