Saturday, 22 July 2017

Vpsland Forex Carga


Indo abaixo do prazo de um minuto: Implementando simulações com a resolução Tick-by-tick Uma grande parte do afastamento do MT4 foi estabelecer uma implementação adequada do back-tester que nos permitisse simular sistemas de negociação fora desta plataforma de negociação (para não dizer Muito mais eficiente e precisamente). Começamos essa busca em 2013 com o desenvolvimento completo de um front-end de testador Python para interface com o framework F4 (nossa estrutura C / C de programação em Asirikuy) o que nos permitiu realizar testes para sistemas que poderiam ser back-tests com precisão usando apenas Informação de OHLC das velas precedentes. Como esses sistemas eram nosso principal alvo de negociação / teste, fazia sentido implementar o método de simulação computacionalmente mais eficiente dentro das restrições desejadas. No entanto, com o passar do tempo, vários membros e leitores de blogs começaram a inquirir sobre as simulações tick-by-tick e se eu queria implementá-las dentro do nosso testador. Hoje, quero compartilhar com vocês minha experiência com a implementação de simulações tick-by-tick e como esse recurso já foi totalmente implementado no testador de estratégia disponível em Asirikuy. Qual é a diferença entre testes simples de OHLC e teste de tick-by-tick A metodologia de simulação mais simples disponível usa a informação de OHLC de velas e depois executa sistemas somente em candle open o sistema não tem acesso a vela atual High / low / close information and only Vê o preço aberto. Se um sistema é executado somente na vela aberta você don8217t precisa se preocupar sobre como o preço se comporta dentro da vela desde tudo o que você quer fazer é garantir que o sistema foi executado a um preço conhecido. A primeira imprecisão introduzida por simulações de OHLC é que normalmente só temos acesso aos dados abertos (geralmente o lance), de modo que estimamos o preço de venda adicionando um spread predefinido e constante. As ordens stop-loss e take-profit também podem ser problemáticas se ambas as ordens forem acionadas dentro da mesma vela (porque, possivelmente, não poderíamos saber qual delas foi acionada primeiro) então o uso de SL / TP só é preciso dentro dessas simulações se a separação entre Ambos são largos o suficiente. Este tipo de simulação é perfeitamente bem para qualquer sistema que tem valores mais amplos SL / TP e que fecha os comércios com lucros cerca de 5-10x a propagação. Se o sistema preenche estas condições, então você pode ter certeza de que seu OHLC simples (extremamente rápido) simulações serão precisas a um alto grau. No entanto, uma vez que a nossa diferença SL / TP se torna muito apertada, os nossos sinais de saída tornam-se dependentes de informações de grão muito fino ou queremos executar sistemas dentro de uma vela (execute um sinal antes de uma vela se fechar), então precisamos de testes muito mais precisos. O próximo nível de testes 8211 a maior resolução possível em Forex trading 8211 vem do uso de tick-by-tick dados, a fim de simular uma estratégia. Ao usar dados tick-by-tick usamos um arquivo tick-data (em vez de um arquivo contendo dados OHLC) e a partir deste arquivo nós compilamos todos os dados OHLC necessários (que o sistema pode usar para tomar decisões) e realizamos o teste como Se o sistema estava sendo negociado 8220live8221 e recebeu esta informação tick-by-tick. Em um teste tick-by-tick seu sistema recebe as informações históricas Bid / Ask e tempo atual deste arquivo, o que significa que você tem tanto spreads histórico realista e realista entrada informações. As simulações de ticks não são perfeitas e ainda não contam riscos de execução (coisas como deslizamento), mas isso também pode ser incluído nas simulações (adicionando um determinado deslizamento a todos os comércios, por exemplo). As vantagens das simulações tick-by-tick são óbvias, porque é a técnica de simulação que melhor se aproxima da negociação ao vivo, mas as desvantagens também são bastante grandes. Talvez a maior desvantagem das simulações tick-by-tick seja que a quantidade de dados se torna muito grande. Um ano de dados de carrapatos é geralmente cerca de 1GB de comprimento, o que significa que um teste de 7 anos precisa de cerca de 7GB de dados. Em MT4 pessoas executam essas simulações usando um hack que força a plataforma MT4 para carregar esses dados como se fosse um arquivo de teste histórico criado por MT4 usando seu algoritmo de interpolação de carrapatos, mas a maior desvantagem é MT4 deve carregar este arquivo inteiro para RAM para Testes. Isso é lento, limita o comprimento dos dados que pode ser usado e, em geral, não é a maneira ideal em que você deseja implementar tick-by-tick teste. A fim de superar esses problemas eu decidi aplicar teste de carrapatos dentro do Asirikuy back-tester de uma maneira diferente. Em vez de carregar um arquivo multi GB na memória RAM (o que é lento e na prática não pode ser feito para qualquer coisa, mas alguns anos de dados), eu decidi usar uma abordagem muito rápida usando funções de leitura de arquivo ANSI C que podem obter dados do tick Arquivo de dados em uma linha-por-linha moda. Em vez de carregar todo o arquivo, o testador simplesmente define um ponteiro para o arquivo e, em seguida, começa a lê-lo linha por linha, dando-lhe os dados desejados sem ter que se preocupar com quão grande o arquivo realmente é. Para tornar as coisas ainda mais rápidas, todos os dados do OHLC são pré-processados ​​e passados ​​para o testador, o que significa que esses dados não precisam ser recalculados a partir dos dados tick-by-tick (que são computacionalmente caros), mas criados e disponíveis Antes do início do teste. O testador então olha para o carimbo de data / hora atual para descobrir quais dados de OHLC podem ser passados ​​e altera os índices de acordo como o carimbo de data / hora para a última marca se move acima do último carimbo de OHLC. O que você tem no final é uma implementação de teste tick-by-tick que é muito mais eficiente do que o que as pessoas geralmente conseguem dentro MT4. O testador leva cerca de 5-10 minutos para passar por um ano de teste tick-by-tick enquanto o mesmo sistema usando o hack MT4 leva pelo menos várias horas. Também fiz esta implementação para ser pronta para o portfólio, de modo que o novo recurso também suporta testes simultâneos tick-by-tick de vários instrumentos / sistemas ao mesmo tempo. Com isso, agora temos uma implementação que é muitas vezes superior ao MT4 em todos os sentidos, com rápido tique-ta-tick teste, reais taxas de swap históricas. Spreads históricos realistas, etc. Agora não há nenhum recurso disponível no teste MT4 que não possamos reproduzir e bater dentro da implementação do testador de Asirikuy. Isso abre a porta para a avaliação de sistemas usando dados muito mais finos, o que nos permite explorar ineficiências que anteriormente estavam fora do nosso alcance. Uma vez que a Oanda tem dados de carrapatos disponíveis desde 2004, podemos agora criar sistemas usando dados de carrapatos da Oanda que vão para a resolução mais baixa possível. Dukascopy também oferece dados de carrapatos (mais também podemos trocar em Dukascopy por meio de sua API JForex) por isso agora temos duas fontes de dados disponíveis para os quais sistemas podem ser criados / testados e negociados no mesmo feed. Também vale a pena mencionar que esta é apenas uma característica adicional para o nosso testador, simulações OHLC simples continuar a trabalhar como antes. Esta nova versão do testador, incluindo o teste tick-by-tick, será lançado nas próximas semanas. Se você quiser saber mais sobre como você pode deixar de usar a plataforma MT4 não profissional e passar para uma implementação confiável, paga, suportada e de código aberto, por favor considere se juntar à Asirikuy, um site cheio de vídeos educacionais, sistemas de negociação, desenvolvimento e um som, Honesto e transparente para o comércio automatizado em geral. Espero que tenha gostado deste artigo. O) Grande material e parabéns a todos os envolvidos. I8217m realmente ansioso para este lançamento. Pepperstone agora oferecem cTrader e eles estarão promovendo muito em breve. I8217m planejando mudar para cTrader / cAlgo assim que eu puder. I8217m esperando muitos corretores seguirão Pepperstone e Oanda8217s levar. Estou muito orgulhoso de ver que você fez isso. Em relação ao 8216hack8217 para backtesting mt4, eu uso Birt8217s TDS. É o melhor do que temos para o que precisamos fazer. Descobri que o backtest pode ser acelerado usando um programa Ram Cache (como PrimoCache). Dependendo das configurações do meu EA, eu era capaz de backtest 4-7 anos de dukascopy dados em 40-90 min. Mas como você disse, não é o ideal, mas até agora não tínhamos muita escolha senão ir a uma plataforma diferente. Com um cache ram, você precisa ter cache suficiente para caber o arquivo inteiro fxt para efeito máximo. Você pode dividi-lo em duas ou mais peças (como 2007-2010, 2010-2014), mas isso aumenta a complexidade de ter que acompanhar todos os arquivos de dados. BTW, pode F4 backtester usar vários processadores Pode F4 backtester ter várias instâncias. O backer F4 pode ler os dados diretamente do formato dukascopy ou o arquivo de dados precisa ser armazenado no formato csv O usuário pode definir como os campos csv são importados para o F4 Posso confirmar que o backtesting de dados true tick é superior em muitos aspectos quando você Necessidade de recriar as condições em tempo real. A variável real se espalha e salta nos preços são as duas coisas mais importantes para simular aqui. BTW, se você estiver lendo os dados tick diretamente do arquivo csv, você deve considerar a implementação de algumas das funções que birt fez em seu script de conversão csv2fxt. Como ser capaz de detectar carrapatos falsos, eliminando ticks / dados duplicados, etc Obrigado pelo seu comentário: o) Estou feliz que você gosta deste desenvolvimento. Deixe-me agora responder às suas perguntas: 1. Nosso back-testador baseado em python (que chamamos de NST) é capaz de usar vários núcleos e até mesmo vários computadores (através do MPICH). Você também abre quantas instâncias quiser. O testador back-testes estratégias codificadas dentro de nossa estrutura F4. 2. O back-tester lê dados de um arquivo csv de dados de carrapatos criado usando tickstory (programa disponível gratuitamente no tickstory). Esta é a maneira mais fácil que eu encontrei para importar os dados de uma maneira fácil. Tickstory é gratuito e faz todo o processamento de dados de Dukascopy para nós. 3. Você não pode fazer isso sem modificar o código tester8217s, mas uma vez que você tem acesso ao código-fonte completo que você pode modificá-lo para receber arquivos em qualquer formato que você deseja. Espero que isso responda às suas perguntas. Obrigado novamente por seus comentários: o) Obrigado pelas respostas. Não há maneira de assinar comentários ou obter alerta quando uma resposta é feita, então eu didn8217t saber que você respondeu tão rapidamente. 8211 O backtester tem um 8216visual mode8217 para que as pessoas possam reproduzir suas estratégias em um formato gráfico Se assim for, podemos controlar a velocidade deste 8211 Pode CUDA ou GPU ser usado para acelerar o backtesting de qualquer maneira 8211 btw, como você estava calculando o seu As taxas de swap no exemplo de captura de tela que você deu Dukascopy não tem campos separados para taxa de swap incluídos nos arquivos tick que eu conheço. Você está calculando o swap sinteticamente de alguma forma Se sim, qual é a fórmula que você pode usar para um saldo da conta em USD. Obrigado pela sua resposta: o) Deixe-me agora responder às suas perguntas: 8211 Não há modo visual no nosso back-tester. No entanto, a estrutura F4 contém ChartDirector para que você possa gerar qualquer tipo de 8220screenshot8221 que você deseja negociar usando esta biblioteca. 8211 Não, o back-tester não tem recursos de GPU. Você não pode usar o OpenCL com bibliotecas pré-compiladas, isso só funciona com código C que você compila especificamente em um kernel OpenCL, que só pode ser feito para código muito específico. O framework F4 não pode ser compilado em um kernel OpenCL, pois ele precisa usar muita funcionalidade que não está disponível nos compiladores OpenCL. 8211 Os swaps são calculados utilizando os diferenciais históricos da taxa de juro do banco central e cobrados uma vez por dia (triplo às quartas-feiras), tal como acontece na maioria dos corretores de Forex. Veja aqui algumas amostras de como o swap é calculado. No entanto, como eu disse antes que você teria acesso ao código-fonte para que você possa mudar isso em qualquer maneira que você deseja (implementar uma taxa de carga diferente, eliminar completamente swaps, etc). Espero que isso responda às suas perguntas: o) Obrigado novamente por escrever,

No comments:

Post a Comment