MetaTrader vs TradeStation: Uma comparação de linguagem por Michael R. Bryant Qualquer pessoa que negocia ativamente forex provavelmente já ouviu falar de 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 a pedidos dos usuários do MetaTrader, eu tenho trabalhado na adição de MetaTrader 4 (MT4) saída para Adaptrade Builder. Ao concluir a documentação para o novo recurso de saída de código MT4 no Builder, pensei 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 negociação forex e havent ainda escolhido uma plataforma de negociação, ou você está pensando em mudar de uma plataforma para a outra, há algumas coisas que você deve saber sobre as duas linguagens de script. Se você está apenas aprendendo sobre MetaTrader, você pode perguntar por que sua plataforma tão popular. Na minha opinião, é um resultado de vários fatores. Primeiro, a plataforma é livre. 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 de 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 MQL4 para escrever indicadores, quotscriptsquot (código para executar funções específicas mediante solicitação) e quotexpert advisors (EAs) quot (estratégias de negociação). A linguagem MQL4, como discutido abaixo, é muito versátil e faz MT4, como TradeStation, uma plataforma extensível. Há 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. Eu discutirei mais sobre como isso afeta a linguagem MQL4 abaixo, mas o ponto aqui é que o forex é um grande, crescente mercado global, e MetaTrader especificamente orientado esse mercado. Por fim, ao contrário do TradeStation, que limita principalmente os usuários ao uso de 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 TradeStation, eu posso lembrar quando TradeStation foi apenas para a negociação dos mercados futuros. A linguagem de programação EasyLanguage foi projetada por futuros comerciantes para futuros comerciantes. Ao longo dos anos, a linguagem foi ampliada e adaptada para funcionar bem em outros mercados, principalmente ações, opções e forex. No entanto, algumas das suas características ainda refletem suas origens nos mercados de futuros. MQL4 (abreviação de MetaQuotes Language 4) foi projetado especificamente para os mercados de forex. Muitas vezes, o material instrucional para negociação forex centra-se em idéias e conceitos comerciais genéricos, tais como indicadores técnicos e tipos de lógica de negociação, e ignora os detalhes de como os mercados de forex funcionam e como isso faz forex diferente de outros mercados, como ações e futuros . O fato é que a negociação forex funciona de forma um pouco diferente de outros mercados, como qualquer pessoa de transição de um mercado diferente sabe. MQL4 tende a refletir essas diferenças. Principais diferenças Aqui estão algumas das principais diferenças entre EasyLanguage e MQL4. Salvo indicação em contrário, a discussão refere-se a escrever estratégias de negociação e back-testing-los em dados históricos. A premissa da execução de código 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 consiste em barras diárias, por exemplo, o código será executado no fechamento de cada barra diária. Se você desejar que o código seja executado com mais freqüência, o gráfico deve ser alterado para ter um tamanho de barra menor. No entanto, você pode forçar o código a executar determinados elementos com mais freqüência usando o recurso quotLook-inside-bar back-testingquot. Isso usa os dados de preço com uma resolução maior do que a apresentada no gráfico, a fim de produzir resultados mais precisos. O código MQL4 usa uma função chamada start () que é executada em cada tick. Normalmente, o código de estratégia principal ocorre dentro da função start (). Se você não quer que o código para executar em cada tick, você tem que programar esta 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 fim da barra, assim que as estratégias em MT4 executam tipicamente em cada tiquetaque ou nas barras abertas. Como o código EasyLanguage é executado no fechamento da barra, as instruções de ordem comercial são sempre executadas na próxima barra, por exemplo. QuotBuy próximo bar no marketquot. A declaração equivalente mais próxima em 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 em MQL4, enquanto que em EasyLanguage, a lógica é avaliada na barra atual. Ao contrário do EasyLanguage, o MQL4 não restringe as estratégias aos dados para o gráfico no qual a estratégia foi aplicada. É possível fazer referência a qualquer série de dados disponível em uma estratégia MT4 consultando o símbolo eo tamanho da barra. Bar tamanhos são limitados a 1, 5, 15, 30, 60 e 240 minutos, bem como diária, semanal e mensal. TradeStation tem uma maior variedade de tamanhos de barras disponíveis, incluindo tamanhos de barra de qualquer número inteiro de minutos e barras de carrapato de qualquer número de carrapatos. Execução de Ordem EasyLanguage faz um trabalho louvável de ocultar as complexidades de colocar e executar ordens de negociação. Por exemplo, se você tiver uma posição curta, e você colocar uma ordem de entrada longa, se você não especificar o tamanho, a entrada longa será automaticamente fechar o comércio de curto, ao mesmo tempo que coloca o comércio de longo. Da mesma forma, se você tem várias ordens pendentes para sair, digamos, um longo comércio 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 os outros serão cancelados automaticamente. Além disso, as ordens de negociação no EasyLanguage persistem por apenas uma barra e são automaticamente canceladas se não estiverem preenchidas no final da próxima barra. MQL4 deixa o manuseamento 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 reverta uma posição aberta, você precisa especificar o número de lotes para dar o resultado líquido desejado (por exemplo, venda de 2 lotes curtos com 1 lote aberto muito para acabar 1 lote curto) Ou rastrear a posição aberta e fechá-la assim que a nova entrada for detectada. Ações vs. Lotes Em EasyLanguage, o tamanho de uma posição de negociação é especificado em contratos (por exemplo, futuros) ou em ações. Para o forex, um tamanho de posição padrão no TradeStation seria 10.000 ou 100.000 ações, correspondendo a um lote pequeno ou grande. De acordo com sua orientação forex, no MetaTrader o tamanho do comércio é especificado em lotes, que podem ser fracionários. Um lote de tamanho grande seria um tamanho de lote de 1. Um lote mini seria um tamanho de lote de 0,1. Custos de Negociação e Preços de Preenchimento Porque TradeStation e EasyLanguage foram originalmente orientados para negociação de futuros, eles seguem a convenção de usar derrapagem para explicar o fato de que os comércios não são normalmente preenchidos ao preço de mercado. Deslizamento é o custo do dólar adicionado ao comércio para explicar isso. Normalmente, você também inseriria os custos de comissão por contrato / ação ou por comércio 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ólares de um comércio rentável ou adicionam o mesmo valor a um comércio perdedor. Os mesmos custos são deduzidos de todos os comércios, longos e curtos. Ao mesmo tempo, o comércio é assumido como tendo sido preenchido ao preço especificado, seja o preço atual de uma ordem de mercado ou o preço de parada ou limite especificado. MQL4 usa uma abordagem um pouco mais sofisticada para os custos de negociação e os preços de enchimento. Em MetaTrader, é importante entender que cada preço é na verdade dois preços, a oferta e pedir. A oferta é o preço mais baixo, enquanto o pedir é o preço mais elevado. A diferença entre o lance e o pedido é chamada de spread de oferta / oferta. As ordens de compra são sempre preenchidas no pedido e as ordens de venda são sempre preenchidas na oferta. Um gráfico de preços exibe apenas o preço da oferta. 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 no mercado serão preenchidas pelo preço visto no gráfico. O spread bid / ask é parte do custo do comércio. Isso é consistente com a prática comum na negociação forex de pagar pelo comércio através da propagação, em vez de pagar o corretor de uma comissão fixa. O MQL4 também usa o spread bid / ask para determinar se uma ordem pendente é preenchida. Por exemplo, uma ordem de parada de compra só é preenchida se o preço de venda, que está acima do preço de gráfico (lance), toca o preço de parada. Se, por exemplo, a barra de preços no gráfico apenas toca o preço de parada, pode parecer que a ordem deve ser preenchida, mas MT4 não mostrará o comércio histórico como preenchido a menos que o preço de venda atingiu o preço de compra parar. Da mesma forma, uma ordem de limite de compra não será registrada como preenchida a menos que o preço de venda chegue até o preço limite de compra. As paradas de venda e os limites são preenchidos na oferta, pelo que, ao contrário das ordens de compra, os seus preços de enchimento correspondem directamente aos preços dos gráficos. O spread bid / ask não é o único spread de preços que afeta as ordens de negociação em MT4 / MQL4. Se uma ordem pendente (parada ou limite) estiver muito próxima do mercado no momento em que ela for colocada, a ordem será rejeitada. Isso é baseado na idéia de que não haverá tempo suficiente para colocar a ordem antes que o mercado se move através do preço da ordem. Essa distância mínima pode ser recuperada usando a função MarketInfo (..) em MQL4. Da mesma forma, uma ordem pendente não pode ser modificada em MQL4 se o preço atual para a ordem está dentro do chamado quotfreezequot nível. Em outras palavras, se a ordem está tão perto do mercado que pode ser preenchido a qualquer momento, você não está autorizado a modificá-lo. Devido à abordagem mais sofisticada que o MT4 / MQL4 usa para representar o preenchimento de pedidos, os preços de preenchimento em MT4 para simulações históricas (ou seja, back-testing) provavelmente serão mais precisos do que no TradeStation. Sintaxe da linguagem Tanto o EasyLanguage como o MQL4 são linguagens de tipo C. Ou seja, ambos têm semelhanças com a linguagem de programação C, que é uma linguagem de programação processual de propósito geral desenvolvida no final da década de 1970. MQL4 é muito mais próximo em sintaxe para C do que EasyLanguage. No entanto, enquanto MQL4 parece quase idêntico a C, há algumas diferenças, e MQL4 não implementa todos os recursos de linguagem Cs. Os arquivos de ajuda no MT4 observam as diferenças. Diferenças de Indicador Para quem está pensando em converter uma estratégia EasyLanguage em MQL4 ou vice-versa, lembre-se de que nem todos os indicadores disponíveis em ambas as plataformas são calculados da mesma forma em cada plataforma. Em particular, os seguintes indicadores dão valores substancialmente diferentes em cada plataforma para os mesmos dados de preços: Momentum, FastS 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 observado que TradeStation inclui mais indicadores internos do que MT4. Através do fórum on-line para MT4, no entanto, é possível encontrar uma grande variedade de indicadores que foram fornecidos por outros membros de graça. Conclusões Tanto o EasyLanguage como o MQL4 são linguagens de script de propósito geral projetadas para a negociação dos mercados. Com qualquer linguagem é possível desenvolver estratégias de negociação altamente complexas e sofisticadas. Em geral, minha experiência, que parece ser apoiada por outros, é que MQL4 é uma linguagem mais desafiadora para dominar que EasyLanguage, embora a maioria dos usuários TradeStation provavelmente concordaria que o nome EasyLanguage é um pouco de um misnomer. Grande parte da complexidade do MQL4 vem dos requisitos que ele coloca no programador para gerenciar ordens de negociação, algo que o EasyLanguage manipula nos bastidores na maioria das vezes. No entanto, o fardo extra vem com maior controle e maior precisão na estimativa de preços de enchimento em testes históricos. Em geral, não é surpreendente que MT4 é uma plataforma de negociação popular para forex e que MQL4 tem sido alto na minha lista de pedidos de clientes do meu Adaptrade Builder software para a 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 diferentes linguagens de script. MT4 é de longe a plataforma mais popular. Como resultado, este artigo focalizará exclusivamente MT4 e sua linguagem de script associada, MQL4. Este artigo apareceu na edição de dezembro de 2012 do boletim de notícias Adaptrade Software. TradeStation para negociação forex Existe uma alternativa para Tradestation. É chamado multicharts multicharts / Estou usando este software todos os dias para gráficos e seu bettter do que TS. Seu easylanguage é 99.99 compatível com TS easylanguage. Os corretores forex suportados são MBT, FXCM, Interactive Brokers e Dukascopy (através da API FIX). Tem algumas vantagens sobre TS, por exemplo. Ele usa multicores e hyperthreading para otimização (que originalmente foi concebido para ser uma plataforma exclusivamente para comerciantes de algo). Tem também algumas desvantagens sobre TS: nenhum manual. Obrigado por postar isso. Eu uso trader ninja no momento, mas eu nunca foram 100 felizes com eles, não posso reclamar muito como eu uso a versão gratuita. Eu estou olhando alternativas. Vou dar uma olhada parece 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 o corretor forex você usa para colocar as ordens Im mais interessado como se aplica ao forex spot. TradeStation é tanto gráficos software e corretor (embora Forex é um número de conta separada de ações ou futuros), e eu posso executar OCO / OSO encomendas condicionais diretamente com a conta. Eu não corro multicharts agora para gráficos. Eu os ajudei a testar com a OEC api (OpenECry). Isso foi há 3 ou 4 anos. Essa foi a última vez que eu usei para negociação. Eu olhei para a plataforma novamente cerca de um ano atrás, como eu estava pensando MBT ou OEC para forex, e poderia simultaneamente assistir futuros. Mas OEC requer uma conta forex separada. E eles limpam através de Ganho. Talvez isso tenha mudado, mas a partir de cerca de 6 meses atrás, ainda era Gain. Depende da API do corretor. Normalmente, tudo o que é permitido na plataforma proprietária deve ser permitido via API. E a API geralmente permite mais opções. Corretores como MBT e OEC, que já têm um fundo de futuros, geralmente têm OCO / OSO Market em fechar, e outros mais sofisticado cotação, então / limite de mercado / ordens. Se o corretor não suportar esses nativamente, então MC poderia simular essas ordens. Como alternativa, você pode programar a simulação dessas ordens no script de automação Expert Advisor. Semelhante a como MT4 não tem comércio na funcionalidade de gráfico, mas há uma empresa que programou scripts que permitiram a colocação de ordens de um clique, TP / SL automático, OCO, etc. Embora seja bom ter a capacidade de colocar ordens OCO Nativamente com o corretor API, há razões para manter essas ordens no lado do cliente apenas. 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. Medir tendências automaticamente com zero lag O TradeStation documento citado vários posts acima diz:. E isso vai permitir que o lote estranho negociação a partir de 10K para cima (ou seja, um equivalente Mini), sem comissão (ou seja, eles fazem a partir do spread eu acho que como a maioria dos outros varejo FX contas spot). Isso soa como TS configurar-se como fazer o seu próprio mercado em vez de confiar em Gain Capital para fazê-lo - qualquer um sabe se isso é o que está acontecendo, e qual é a sua opinião Max é explicado muito claramente nessa mensagem do cliente. Leia novamente esse link. Trading System Portfolios Portfólios do sistema de negociação são desenvolvidos pela combinação de diferentes sistemas de negociação que usam métodos diferentes, a fim de buscar risco reduzido através da diversidade. Os sistemas de negociação multi-mercado e multi-estratégia que negociam tendências e tendências de tendências contrárias oferecem oportunidades de lucro em todos os tipos de ambiente de mercado. A experiência nos mercados ea compreensão da resposta de cada sistema a certas condições de mercado permitirão uma determinação de quais sistemas funcionarão melhor nos ambientes de mercado atuais. Abaixo está uma lista de nossas carteiras atuais com as atualizações as mais atrasadas novembro em 9, 2016 para o comércio da eleição da posse e que vai com 2017. O objetivo da carteira do sistema negociando de um milhão de dólares é conseguir ganhos anuais médios de 25 ao manter os abaixamentos menos De 10. Consideramos esta 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 contratos múltiplos 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
Post a Comment