Thursday 19 October 2017

Ninjatrader back testing forex trading


MetaTrader Expert Advisor NinjaTrader Backtest A execução de backtests no NinjaTrader é relativamente simples, uma vez que você aprende as cordas. O NinjaTrader usa uma janela especial, chamada Strategy Analyzer, para executar todos os backtests e otimizações. O primeiro passo para encontrar esta janela é clicar em File New Strategy Analyzer. Quando o Strategy Analyzer é aberto, a janela é dividida em 3 painéis verticais. A janela esquerda permite ao usuário selecionar o instrumento para testar. A janela do meio contém as estatísticas e as informações de backtest. A janela final à direita não é visível que desliza quando você coloca o mouse sobre a palavra 8220Backtest8221 no canto superior direito. Encontrar o símbolo que você quer testar It8217s é importante enfatizar que você precisa de uma conexão de dados antes de mergulhar em qualquer um desses. O NinjaTrader não é uma plataforma autônoma. A informação que você deseja testar não está disponível por padrão. Em vez disso, o NinjaTrader usa a Conexão da Conta para ir ao corretor ou provedor de dados para obter os dados históricos. Tudo abaixo é um ponto irrelevante se você ainda não baixou dados históricos e não tiver uma Conexão de Conta aberta. O painel esquerdo lista todas as listas que foram criadas usando o Gerenciador de Instrumentos. O NinjaTrader fornece listas dos instrumentos mais comuns disponíveis: o DOW, S038P 500 e os principais pares de divisas. Testar um instrumento como um estoque de mineração de ouro junior ou algo menos comum exige a criação de uma nova lista no Gerenciador de Instrumentos. Uma característica legal é que você pode testar vários instrumentos ao mesmo tempo. Se você deseja visualizar o desempenho histórico do seu strategy8217s em todos os estoques S038P 500, selecione o nome da lista. Não é necessário selecioná-los individualmente. Todas as ações da lista serão incluídas na análise. Se isso tudo parece terrivelmente confuso (Conexão de conta, Gerenciador de instrumentos, etc.), you8217re correto. É muito confuso, e é por isso que a curva de aprendizado para NinjaTrader é tão íngreme. Demora muito tempo descobrir como todas essas peças se encaixam. Mesmo a minha equipe de programadores profissionais experimentou poucas semanas feias quando comecei a treiná-las. Se os programadores tiverem problemas para descobrir como usar o software, você não deve se sentir mal com suas próprias dificuldades. Opções de estratégia O painel direito se abre quando o mouse aparece sobre a palavra 8220Backtest8221 na extrema direita. Dentro dele, o menu contém várias seções que permitem ao usuário definir a estratégia. As opções perto do topo sob 8220Parameters8221 são as entradas ou variáveis ​​que a estratégia usa. Os exemplos comuns incluem o número de partes a negociar, a distância de parada e outros. A seção série de dados controla o período do gráfico. Diga, por exemplo, que você viveria para testar AAPL em gráficos de 5 minutos. As etapas necessárias são: Selecione APPL no painel esquerdo Escolha Último para Preço Baseado em O tipo é Minuto O valor é 5, o que aqui representa gráficos de 5 minutos Time Frame controla o período durante o qual o backtest é executado. A execução de uma estratégia da AAPL para 2017 faria com que um comércio entre em 112017 para a Data de Início e 12312017 para a Data de Término. As seções restantes em grande parte não se aplicam. Quando eles causam problemas, a maioria provoca a seção Order Handling. Se você quiser trocar vários sinais na mesma direção, a opção para Entradas por direção deve mudar de 1 para um máximo predefinido. Outras seções Qualquer pessoa com experiência comercial em outras plataformas achará o painel central intuitivo, especialmente os usuários da TradeStation. As guias na parte superior do painel do meio incluem o Resumo e Gráficos. A maior parte da minha análise comercial comercial concentra-se nestas duas guias. Os outros são úteis para pessoas mais orientadas a detalhes. O Strategy Analyzer contém uma série de botões no canto superior esquerdo da tela. Há quatro que eu acho úteis. O ícone do disquete significa salvar um arquivo. Quando o backtest for concluído, e especialmente se demorar vários minutos para ser executado, a opção para salvar resultados pode economizar uma quantidade significativa de tempo. Se você tiver vários backtests e gostaria de compartilhá-los, a única maneira de fazê-lo é enviar alguém de todos os seus backtests. O NT armazena todos os resultados salvos em um banco de dados local. A localização exata é DocumentsNinjaTrader 7dbNinjaTrader. sdf. Ao enviar seus amigos ou colegas, este arquivo inclui todos os backtestes guardados até à data. Certifique-se de que o destinatário faça backup do seu próprio arquivo NinjaTrader. sdf antes de usar o seu. Caso contrário, a informação será perdida. O clique direito no painel do meio permite ao usuário exportar a grade de resumo para um arquivo do Excel. Embora não pareça tão conveniente quanto o formato do NinjaTrader, o problema acima destaca a necessidade de enviar e salvar resultados de testes individuais. NinjaTrader doesn8217t dar a b, o e w bastante importância visual na minha opinião. Os botões são pequenos, mas eles controlam a característica mais importante do backtest 8211, o tipo de teste a ser executado. Você quer executar um backtest. Otimização ou otimização de marcha-a-pé. Estes pequenos botões controlam o tipo de teste executado. Mais o software Backtesting, na medida em que conheço o testador Forex, é mais um software de gráficos. É um tipo de simulador de forex, ao invés de software de teste de análise técnica. De qualquer forma, onde você obtém dados. Esta empresa fornece você ou usa dados de terceiros. Depende do que você quer dizer com um software de teste TA, mas você pode programar suas regras de ingresso e executar um teste nos dados. Na verdade, eu não uso isso para isso, mas acho que esse é o principal ponto. Tem todos os indicadores e coisas populares. Você também pode fazê-lo reproduzir os dados em velocidade normal ou rápida como se estivesse acontecendo em tempo real. Eu o uso principalmente para ver dados antigos em pequenos quadros de tempo, pois o MT4 só mostrará até agora nos 5 minutos ou seja o que for. A empresa fornece os dados, cerca de 10 anos, mas você também pode usar dados de outras fontes. Tirei quotForex Strategy Builderquot É um (quote): quotVisual forex testador de back-back de estratégia. Ele usa combinações de indicadores técnicos e regras lógicas para simular um processo de negociação com taxas históricas do forex. Um gerador de estratégia automático incluído permite que você crie uma estratégia lucrativa. Há também um otimizador, um scanner intradía e um explorador de barra. É o software livre. Baixado e tentou este. Não gosta. É sobre tudo, mas nada em particular. No entanto, é muito mais prático do que MT4 e Omega. Tanto quanto eu entendi, temos mais 2 programas para votar. Junte-se a Mar 2009 Status: Membro 80 Posts se você ama o backtesting, leia isso: pelo menos, a grande diferença entre Backtest e Forward-Test é perceptível para os desenvolvedores do sistema quando eles ativam um sistema após um desenvolvimento bem sucedido no Live-Trading. Muitas vezes, a curva de desempenho excelente em Backtest acaba por ser uma curva completamente desagradável na operação ao vivo. Assim, pode acontecer que um sistema rentável se torne um fabricante de perda. Tivemos essa experiência também. Bem, quais são os motivos para isso. 1. O MetaTrader não reconhece dados de marca Todas as etapas e decisões desenvolvidas baseiam-se nos dados disponíveis e históricos se você estiver desenvolvendo um sistema. Mas os dados disponíveis não são dados de marca. Muitos desenvolvedores acreditam que estão se desenvolvendo com base em dados de referência reais históricos reais. Isso não é o caso porque MetaTrader calcula Pseudo-Ticks e como eles poderiam ter sido com base em 1 minuto de vela com o HighLowOpenClose apropriado. Mesmo sistemas Scalping que parecem praticamente fantásticos no Backtest. Falhar regularmente neste fato. Embora, claro, estamos desenvolvendo nossos próprios sistemas com base em dados disponíveis. Então, depois de reunir os dados de teste direto apropriados, nós fazemos melhorias nesse sistema ou decidimos rejeitá-lo. 2. Todos os Backtests são baseados nos dados que foram carregados pelo Metaquotes Server. Não importa qual corretor você obteve. Os dados no desenvolvimento são baseados nos dados fornecidos pela Metaquotes. Os dados corretos não estão disponíveis no Forex-Markt, mas cada Broker Dealing-Desk faz seus próprios preços ou, em vez disso, transmite cada preço dos bancos associados. Na realidade, isso leva ao fenômeno quot3 Broker - 3 taxas de câmbio. Um sistema que entrega em Forward-Test no Broker 1 x trades e no Broker 2 y trades vai entregar no Backtest um número totalmente diferente de negócios. 3. Eles trabalham com uma propagação estabelecida em Backtest A propagação de cada corretor parece, muitas vezes, completamente diferente e é mesmo balançando. O texto acima mencionado não é de mim, é de um codificador profissional. Registrado em setembro de 2018 Status: Membro 16 Posts É por isso que você tem que usar os dados diretamente do corretor com o qual você vai negociar. Junte-se a Abr 2018 Status: Membro 113 Posts Forextester foi o que eu usei. Recomendo. Funciona muito parecido com o Metatrader, então você ganhará o jeito muito rápido. Junte-se a janeiro de 2018 Status: Membro 9 Posts forextester 2 é o software de backtesting mais barato e bom, porque é o único pagamento único e podemos importar dados históricos para par moedas populares desde vários anos. Podemos colocar trocas, incluindo parar de perder e tirar proveito, é como o comércio real para testar nossa estratégia. Eu não sou muito confiável testando mais do que o gráfico de 4 horas porque o mercado é influenciado por notícias de alto impacto que não podemos prever enquanto backtest, acho que o backtest mais seguro é usando o gráfico diário. Com o MT4, há algum tempo, há algum script para colocar o comércio no testador de estratégia, mas não é muito conveniente (não como o comércio diário real), eu esqueci isso. O MT4 está focado para tornar o comércio real mais fácil, não feito especificamente para o mercado Forex backtesting. Juntou-se a julho de 2017 Status: Membro 1 Post Eu uso apenas o Ninjatrader 7 para todo o meu Forex amp Futures trading e todos os backtesting. Acabei de desligar todas as negociações de Forex no MT4 nos últimos 30 dias, então terminei com essa plataforma. Agora que a Ninjatrader é uma corretora de Futuros (eles compraram o Mirus Futures na semana passada) e vai adicionar Forex à corretora em breve, o movimento que fiz parece ser o momento perfeito para despejar o MT4 de uma vez por todas. Confio no backtesting dos dados do NT7 e nunca confiei realmente nos dados de backtesting no MT4. A modelagem de dados não 99 não foi suficientemente boa para mim no MT4, então mudei para uma plataforma mais robusta para negociação e backtesting. Junte-se a Jul 2017 Status: Membro 2 Posts Eu tenho um indicador e tentei executar um backtest na estratégia de backtest do mt 4 e toda vez que eu executo, ele diz que não verificou ter tentado em várias ocasiões verificar a caixa para dll e ainda o mesmo problema qualquer As sugestões seriam úteis. Os membros devem ter no mínimo 0 comprovantes para publicar neste tópico. 0 comerciantes que visualizam agora Forex Factoryreg é uma marca registrada. Backtesting O que é Backtesting Backtesting é o processo de testar uma estratégia de negociação em dados históricos relevantes para garantir sua viabilidade antes que o comerciante arrisque qualquer capital real. Um comerciante pode simular a negociação de uma estratégia durante um período de tempo apropriado e analisar os resultados para os níveis de rentabilidade e risco. BREAKING DOWN Backtesting Se os resultados atendem aos critérios necessários que são aceitáveis ​​para o comerciante, a estratégia pode então ser implementada com algum grau de confiança de que resultará em lucros. Se os resultados forem menos favoráveis, a estratégia pode ser modificada, ajustada e otimizada para alcançar os resultados desejados, ou pode ser completamente descartada. Uma quantidade significativa do volume negociado no mercado financeiro de hoje é feita por comerciantes que usam algum tipo de automação de computador. Isto é especialmente verdadeiro para estratégias comerciais baseadas em análises técnicas. Backtesting é parte integrante do desenvolvimento de um sistema de negociação automatizado. Backtesting significativo Quando feito corretamente, backtesting pode ser uma ferramenta inestimável para tomar decisões sobre a utilização de uma estratégia de negociação. O período de tempo da amostra em que um backtest é executado é crítico. A duração do período de tempo da amostra deve ser suficientemente longa para incluir períodos de diferentes condições do mercado, incluindo as tendências de elevação, as tendências de baixa e as negociações indexadas ao intervalo. A realização de um teste em apenas um tipo de condição de mercado pode produzir resultados únicos que podem não funcionar bem em outras condições do mercado, o que pode levar a conclusões falsas. O tamanho da amostra no número de trocas nos resultados do teste também é crucial. Se o número de amostras de trocas é muito pequeno, o teste pode não ser estatisticamente significativo. Uma amostra com muitas negociações durante um período muito longo pode produzir resultados otimizados em que um número irresistible de negociações vencedoras coalesce em torno de uma condição de mercado específica ou tendência favorável para a estratégia. Isso também pode causar um comerciante para tirar conclusões enganosas. Mantendo-o real Um backtest deve refletir a realidade na melhor medida possível. Os custos de negociação que, de outra forma, podem ser considerados negligenciáveis ​​pelos comerciantes quando analisados ​​individualmente podem ter um impacto significativo quando o custo total é calculado durante todo o período de teste. Estes custos incluem comissões, spreads e deslizamentos, e podem determinar a diferença entre se uma estratégia de negociação é rentável ou não. A maioria dos pacotes de software de backtesting incluem métodos para explicar esses custos. Talvez a métrica mais importante associada ao backtesting seja o nível de robustez das estratégias. Isso é conseguido comparando os resultados de um teste de retorno otimizado em um período de tempo de amostra específico (referido como na amostra) com os resultados de um backtest com a mesma estratégia e configurações em um período de tempo de amostra diferente (referido como out - De-amostra). Se os resultados forem igualmente rentáveis, a estratégia pode ser considerada válida e robusta e está pronta para ser implementada em mercados em tempo real. Se a estratégia falhar nas comparações fora da amostra, então a estratégia precisa de um desenvolvimento mais aprofundado, ou deve ser abandonada por completo. Teste de retorno no NT backtesting no NT A partir de hoje (NT v7), as estratégias não podem ser testadas na barra intra. Backtesting dados históricos só podem ser realizados no fechamento da barra. Backtesting dados históricos padrão para um quotfixedquot CalculateOnBarClose true. OnMarketData ou OnMarketDepth não podem ser usados ​​em dados históricos. Você só pode usar Market Replay para quotbacktest quot contra intra-bar, OnMarketData ou OnMarketDepth. Além disso, há questões de granularidade quotintra-bar quando backtesting estratégias multi-timeframe. A amostra de referência NinjaTrader fornecida acima funcionaria aqui. É um exemplo na adição de uma segunda série à estratégia que tem resolução de carrapatos. Quais os problemas que você encontrou? Olá Antisyzygy, tenho tentado obter o seguinte problema abordado no fórum do NT, mas sem sorte. Eu examinei seu código de referência e todos os documentos. Eu aprecio se você pudesse lançar alguma luz. Comportamento inesperado das chamadas OnOrderUpdate () com dados Intrabar Embora eu esteja usando dados Intrabar (1Min), o OnOrderUpdate () sempre foi chamado no período de tempo principal (60Min) Aqui estão as especificações: Instrumento: ES - Time Time 60 Min Secondary Time Frame 1 Min Bar em questão foi em 11162017 às 11:30 da manhã. A ordem de compra foi preenchida às 1350.75 no horário 11h30. O objetivo do lucro foi preenchido em 1354.75 no horário 11h30. Olhando para o gráfico 1Min, vejo que o 1354.75 O nível não foi tocado até às 12:16. Assim, parece que o OnOrderUpdate () é chamado apenas no período de 60 minutos. Espero que OnOrderUpdate () seja chamado em torno do tempo 12:16 PM com base nos dados 1Min. Eu imprima Time0 no início de OnOrderUpdate (). Aqui estão os preenchimentos do Buy and the Profit Target: OnOrderUpdate Time: 11162017 11:30:00 AM IOrder OrderNT-00081Sim101 NameBuy StateFilled Instrumentais - ActionBuy Limite de preço0 Preço de parada 0 Quantidade1 EstratégiaRKMTest TypeMarket TifGtc Oco Filled1 Preço de preenchimento 1350.75 Token27ebb46b1e1f48589cfab756b19f1d66 Gtd1212099 12:00 : 00 AM OnOrderUpdate Time: 11162017 11:30:00 AM IOrder OrderNT-00083Sim101 NomeProfit target StateFilled InstrumentES - ActionSell Limite price1354.75 Stop price0 Quantidade1 StrategyRKMTest TypeLimit TifGtc OcoNT-00 050-4323 Filled1 Fill price1354.75 Token8ce78dd643fc489093af083bda429056 Gtd1212099 12:00: 00 AM O código para a estratégia está em anexo. RKMTest. cs (3.1 KB, 26 visualizações) Oi Antisyzygy, tenho tentado obter o seguinte problema abordado no fórum NT, mas sem sorte. Eu examinei seu código de referência e todos os documentos. Eu aprecio se você pudesse lançar alguma luz. Comportamento inesperado das chamadas OnOrderUpdate () com dados Intrabar Embora eu esteja usando dados Intrabar (1Min), o OnOrderUpdate () sempre foi chamado no período de tempo principal (60Min) Aqui estão as especificações: Instrumento: ES - Time Time 60 Min Secondary Time Frame 1 Min Bar em questão foi em 11162017 às 11:30 da manhã. A ordem de compra foi preenchida às 1350.75 no horário 11h30. O objetivo do lucro foi preenchido em 1354.75 no horário 11h30. Olhando para o gráfico 1Min, vejo que o 1354.75 O nível não foi tocado até às 12:16. Assim, parece que o OnOrderUpdate () é chamado apenas no período de 60 minutos. Espero que OnOrderUpdate () seja chamado em torno do tempo 12:16 PM com base nos dados 1Min. Eu imprima Time0 no início de OnOrderUpdate (). Aqui estão os preenchimentos do Buy and the Profit Target: OnOrderUpdate Time: 11162017 11:30:00 AM IOrder OrderNT-00081Sim101 NameBuy StateFilled Instrumentais - ActionBuy Limite de preço0 Preço de parada 0 Quantidade1 EstratégiaRKMTest TypeMarket TifGtc Oco Filled1 Preço de preenchimento 1350.75 Token27ebb46b1e1f48589cfab756b19f1d66 Gtd1212099 12:00 : 00 AM OnOrderUpdate Time: 11162017 11:30:00 AM IOrder OrderNT-00083Sim101 NomeProfit target StateFilled InstrumentES - ActionSell Limite price1354.75 Stop price0 Quantidade1 StrategyRKMTest TypeLimit TifGtc OcoNT-00 050-4323 Filled1 Fill price1354.75 Token8ce78dd643fc489093af083bda429056 Gtd1212099 12:00: 00 AM O código para a estratégia está em anexo. Você acabou encontrando uma solução para isso. Tenho exatamente o mesmo problema

No comments:

Post a Comment