Múltiplas análises de regressão. Gerador de estratégia e testador em um.
Introdução.
Um conhecido meu ao participar de um curso de negociação de Forex, uma vez recebeu uma missão para desenvolver um sistema de negociação. Depois de ter problemas com isso por cerca de uma semana, ele disse que essa tarefa era provavelmente mais difícil do que escrever uma tese. Foi então que sugeri usar a análise de regressão múltipla. Como resultado, um sistema de negociação desenvolvido do zero durante a noite foi aprovado com sucesso pelo examinador.
O sucesso do uso da regressão múltipla está na capacidade de rapidamente encontrar relações entre indicadores e preço. As relações detectadas permitem prever o valor do preço com base nos valores do indicador com um certo grau de probabilidade. O software estatístico moderno permite filtrar simultaneamente milhares de parâmetros na tentativa de encontrar essas relações. Isso pode ser comparado ao ouro industrial de peneiramento de cascalho.
Uma estratégia pronta para usar, bem como um gerador de estratégia, será desenvolvida ao carregar os dados do indicador na análise de regressão múltipla e aplicar a manipulação de dados, respectivamente.
Este artigo irá demonstrar o processo de criação de uma estratégia de negociação usando a análise de regressão múltipla.
1. Desenvolvendo um Robotrader - Piece of Cake!
A espinha dorsal do sistema comercial desenvolvido durante a noite como mencionado anteriormente foi uma única equação:
onde se Reg & gt; 0, então compramos, e se Reg & lt; 0, nós vendemos.
A equação foi um resultado da análise de regressão múltipla que utilizou a amostra de dados a partir de indicadores padrão. Um EA foi desenvolvido com base na equação. O pedaço de código encarregado das decisões de negociação consistia virtualmente de apenas 15 linhas. O EA com um código fonte completo é anexado (R_check).
A amostra de dados para a análise de regressão foi coletada no EURUSD H1 durante dois meses, de 1º de julho de 2011 a 31 de agosto de 2011.
A Figura 1 mostra os resultados do desempenho do EA durante o período de dados para o qual foi desenvolvido. É peculiar que o super-lucro, que é frequentemente o caso no Testador, não tenha sido observado nos dados de treinamento. Deve ser um sinal de falta de reotimização.
Fig. 1. Desempenho do EA durante o período de treinamento.
A figura 2 demonstra os resultados de desempenho do EA nos dados de teste (de 1 de setembro a 1 de novembro de 2011). Parece que os dados de dois meses foram suficientes para a EA continuar lucrativa por mais dois meses. Dito isso, o lucro obtido pela EA durante o período de testes foi o mesmo que no período de treinamento.
Fig. 2. Desempenho do EA durante o período de teste.
Assim, com base na análise de regressão múltipla, um EA bastante simples foi desenvolvido, proporcionando lucros além dos dados de treinamento. A análise de regressão pode, portanto, ser aplicada com sucesso ao construir sistemas de negociação.
No entanto, os recursos da análise de regressão não devem ser superestimados. Suas vantagens e desvantagens serão apresentadas adiante.
2. Análise de Regressão Múltipla.
O objetivo geral da regressão múltipla é a análise da relação entre várias variáveis independentes e uma variável dependente. No nosso caso, é a análise da relação entre os valores dos indicadores e o movimento dos preços.
Em sua forma mais simples, essa equação pode aparecer da seguinte maneira:
Alteração de preço = a * RSI + b * MACD + с.
Uma equação de regressão só pode ser gerada se houver uma correlação entre variáveis independentes e uma variável dependente. Como os valores dos indicadores estão, via de regra, inter-relacionados, a contribuição feita pelos indicadores para a previsão pode variar consideravelmente se um indicador for adicionado ou removido da análise. Por favor, note que uma equação de regressão é uma mera demonstração da dependência numérica e não uma descrição das relações causais. Os coeficientes (a, b) indicam a contribuição de todas as variáveis independentes para sua relação com uma variável dependente.
Uma equação de regressão representa uma dependência ideal entre as variáveis. Isto é, no entanto, impossível no Forex e a previsão será sempre diferente da realidade. Diferença entre o valor previsto e o observado é chamado residual. A análise dos resíduos permite identificar, inter alia, uma dependência não linear entre o indicador e o preço. No nosso caso, assumimos que existe apenas dependência não linear entre indicadores e preço. Felizmente, a análise de regressão não é afetada por pequenos desvios da linearidade.
Só pode ser usado para analisar parâmetros quantitativos. Parâmetros qualitativos que não possuem valores de transição não são adequados para a análise.
O fato de a análise de regressão poder processar qualquer número de parâmetros pode levar à tentação de incluir na análise o maior número possível de parâmetros. Mas se o número de parâmetros independentes for maior que o número de observações de sua interação com um parâmetro dependente, há uma grande chance de obter equações produzindo boas previsões, que são baseadas em flutuações aleatórias.
O número de observações deve ser 10-20 vezes maior que o número de parâmetros independentes.
No nosso caso, o número de indicadores contidos na amostra de dados deve ser 10 a 20 vezes maior do que o número de negociações em nossa amostra. A equação gerada será então considerada confiável. A amostra com base na qual o Robotrader, conforme descrito na seção 1 foi desenvolvido, continha 33 parâmetros e 836 observações. Como resultado, o número de parâmetros foi 25 vezes maior que o número de observações. Esse requisito é uma regra geral nas estatísticas. Também é aplicável ao otimizador do MetaTrader 5 Strategy Tester.
Além disso, cada valor dado do indicador no otimizador é, na verdade, um parâmetro separado. Em outras palavras, ao testar 10 valores de indicadores, estamos lidando com 10 parâmetros independentes que devem ser levados em consideração para evitar a reotimização. Um relatório do otimizador provavelmente deve incluir outro parâmetro: número médio de trades / número de valores de todos os parâmetros otimizados. Se o valor do indicador for menor que dez, é provável que a reotimização seja necessária.
Outra coisa a ser considerada é outliers. Eventos raros, porém poderosos (em nosso caso, picos de preço) podem adicionar falsas dependências à equação. Por exemplo, seguindo as notícias inesperadas, o mercado respondeu com movimentos substanciais que duraram algumas horas. Os valores dos indicadores técnicos seriam, neste caso, de pouca importância na previsão, mas seriam considerados altamente significativos na análise de regressão, uma vez que houve uma mudança de preço marcada. Portanto, é aconselhável filtrar os dados de amostra ou verificar possíveis valores discrepantes.
3. Criando sua própria estratégia.
Abordamos a parte chave, onde veremos como gerar uma equação de regressão com base em seus próprios dados. A implementação da análise de regressão é semelhante à da análise discriminante apresentada anteriormente. Análise de regressão inclui:
Preparação de dados para a análise; Seleção das melhores variáveis dos dados preparados; Obtendo uma equação de regressão.
A análise de regressão múltipla faz parte de vários produtos de software avançados destinados à análise de dados estatísticos. Os mais populares são Statistica (pela StatSoft Inc.) e SPSS (pela IBM Corporation). Vamos considerar ainda a aplicação da análise de regressão usando o Statistica 8.0.
3.1. Preparação de Dados para a Análise.
Devemos gerar uma equação de regressão onde o comportamento do preço na próxima barra pode ser previsto com base nos valores do indicador na barra atual.
O mesmo EA usado para a preparação de dados de análise discriminante será usado para coletar dados. Vamos expandir sua funcionalidade adicionando uma função para salvar os valores dos indicadores com outros períodos. Um conjunto estendido de parâmetros será usado para otimização da estratégia com base na análise dos mesmos indicadores, mas com períodos diferentes.
Para carregar dados no Statistica, você deve ter um arquivo CSV com a seguinte estrutura. As variáveis devem ser organizadas em colunas, onde cada coluna corresponde a um determinado indicador. As linhas devem conter medições consecutivas (casos), ou seja, valores de indicadores para determinadas barras. Em outras palavras, os cabeçalhos de tabela horizontal contêm indicadores, os cabeçalhos de tabela verticais contêm barras consecutivas.
Os indicadores a serem analisados são:
Cada linha de dados do nosso arquivo conterá:
Alterações no preço na barra entre Abrir e Fechar; Valores dos indicadores observados na barra anterior.
Assim, geraremos uma equação descrevendo o comportamento do preço futuro com base nos valores dos indicadores conhecidos.
Além do valor do indicador absoluto, precisamos salvar a diferença entre os valores absoluto e anterior, a fim de ver a direção da mudança nos indicadores. Os nomes de tais variáveis no exemplo fornecido terão o prefixo 'd'. Para indicadores de linha de sinal, é necessário salvar a diferença entre a linha principal e a linha de sinal, bem como sua dinâmica. Os nomes dos dados coletados pelos indicadores com outros períodos terminam com '_p'.
Para demonstrar a otimização, apenas um período foi adicionado, sendo o dobro da duração do período padrão do indicador. Além disso, salve a hora da nova barra e o valor relevante da hora. Salve a diferença entre Abrir e Fechar para a barra onde os indicadores são calculados. Isso será necessário para filtrar outliers. Como resultado, 33 parâmetros serão analisados para gerar uma equação de regressão múltipla. A coleta de dados acima é implementada na coleta do EA R anexada ao artigo.
O arquivo MasterData. CSV será criado após iniciar o EA em terminal_data_directory / MQL5 / Files. Ao iniciar o EA no Testador, ele estará localizado em terminal_data_directory / tester / Agent-127.0.0.1-3000 / MQL5 / Files. O arquivo conforme obtido pode ser usado no Statistica.
Um exemplo de tal arquivo pode ser encontrado em MasterDataR. CSV. Os dados foram coletados para o EURUSD H1 de 3 de janeiro de 2011 a 11 de novembro de 2011 usando o Testador de Estratégia. Apenas os dados de agosto e setembro foram utilizados na análise. Os dados restantes foram salvos em um arquivo para você praticar.
Para abrir o arquivo. CSV no Statistica, faça o seguinte.
No Statistica, vá para o menu Arquivo & gt; Abra, selecione o tipo de arquivo 'Arquivos de dados' e abra seu arquivo. CSV. Deixe Delimitado na janela Tipo de Importação de Arquivo de Texto e clique em OK. Ative os itens sublinhados na janela aberta. Lembre-se de colocar o ponto decimal no campo de caracteres do separador Decimal, independentemente de ele já existir ou não.
Fig. 3. Importando o arquivo para o Statistica.
Clique em OK para obter a tabela contendo nossos dados, que está pronta para a análise de regressão múltipla. Um exemplo do arquivo obtido a ser usado no Statistica pode ser encontrado em MasterDataR. STA.
3.2. Seleção automática de indicadores.
Execute a análise de regressão (Estatística - & gt; Regressão múltipla).
Fig. 4. Executando a análise de regressão.
Na janela aberta, vá para a guia Avançado e ative os itens marcados. Clique no botão Variáveis.
Selecione a variável Dependente no primeiro campo e Variáveis independentes com base nas quais a equação será gerada - no segundo campo. Em nosso caso, selecione o parâmetro Price no primeiro campo e Price 2 to dWPR - no segundo campo.
Fig. 5. Preparação para seleção de parâmetros.
Clique no botão Select Cases (Fig. 5).
Uma janela será aberta para seleção de casos (linhas de dados) que serão usados na análise. Ativar itens como mostrado na Fig. 6.
Fig. 6. Seleção de casos.
Especifique os dados referentes a julho e agosto que serão usados na análise. Estes são os casos de 3590 a 4664. O número de casos é definido através da variável V0. Para evitar o efeito de outliers e picos de preço, adicione a filtragem de dados por preço.
Inclua na análise apenas os valores do indicador para os quais a diferença entre Abrir e Fechar na última barra não é superior a 250 pontos. Especificando aqui as regras para selecionar casos para a análise, definimos uma amostra de dados para a geração de equações de regressão. Clique em OK aqui e na janela para preparação para a seleção de parâmetros (Fig. 5).
Uma janela com opções dos métodos de seleção automática de dados será aberta. Selecione o método Forward Stepwise (Fig. 7).
Fig. 7. Seleção do método.
Clique OK. E uma janela será aberta informando que a análise de regressão foi concluída com sucesso.
Fig. 8. Janela dos resultados da análise de regressão.
A seleção automática de parâmetros diz respeito apenas àqueles que contribuem materialmente para a correlação múltipla entre os parâmetros (variáveis independentes) e a variável dependente. No nosso caso, um conjunto de indicadores será selecionado, determinando melhor o preço. Com efeito, a seleção automática atua como um gerador de estratégia. A equação gerada consistirá apenas nos indicadores que são confiáveis e descrevem melhor o comportamento do preço.
A parte superior da janela de resultados (Fig. 8) contém características estatísticas da equação gerada, enquanto os parâmetros incluídos na equação são listados na parte inferior. Por favor, preste atenção às características sublinhadas. R múltiplo é o valor da correlação múltipla entre o preço e os indicadores incluídos na equação. "p" é o nível de significância estatística de tal correlação.
Um nível inferior a 0,05 é considerado estatisticamente significativo. "Não. De casos" é o número de casos usados na análise. Os indicadores cuja contribuição é estatisticamente significativa são exibidos em vermelho. Idealmente, todos os indicadores devem ser marcados em vermelho.
As regras usadas no Statistica para incluir parâmetros na análise nem sempre são ideais. Por exemplo, um grande número de parâmetros insignificantes pode ser incluído em uma equação de regressão. Devemos, portanto, usar nossa criatividade e auxiliar o programa na seleção de parâmetros.
Se a lista contiver parâmetros insignificantes, clique em Resumo: resultados da regressão.
Uma janela será aberta exibindo os dados em todos os indicadores (Fig. 9).
Fig. 9. Relatório sobre os parâmetros incluídos na equação de regressão.
Encontre um parâmetro insignificante com o nível p mais alto e lembre-se do nome dele. Volte para a etapa em que os parâmetros foram incluídos na análise (Fig. 7) e remova esse parâmetro da lista de parâmetros selecionados para a análise.
Para retornar, clique em Cancelar na janela dos resultados da análise e repita a análise. Tente excluir todos os parâmetros insignificantes dessa maneira. Ao fazer isso, observe o valor de correlação múltipla obtido (Multiple R), pois ele não deve ser consideravelmente menor que o valor inicial. Parâmetros insignificantes podem ser removidos da análise um por um ou todos de uma só vez, sendo a primeira opção mais aconselhável.
Como resultado, a tabela agora contém apenas os parâmetros significativos (Fig. 10). O valor de correlação diminuiu em 20%, o que é provavelmente devido a coincidências aleatórias. Uma série numérica infinitamente longa é conhecida por ter um número infinito de coincidências aleatórias.
Como as amostras de dados que processamos são bastante grandes, coincidências aleatórias e relações aleatórias são frequentemente o caso. Portanto, é importante usar parâmetros estatisticamente significativos em suas estratégias.
Fig. 10. A equação inclui apenas os parâmetros significativos.
Se, após a seleção dos parâmetros, não for possível formar um grupo de vários indicadores que se correlacionem significativamente com o preço, provavelmente o preço conterá poucas informações sobre os eventos passados. Negociações baseadas em qualquer análise técnica devem, em casos assim, ser muito prudentes ou mesmo suspensas.
No nosso caso, apenas cinco dos 33 parâmetros provaram ser eficazes no desenvolvimento de uma estratégia com base na equação de regressão. Essa qualidade da análise de regressão é de grande benefício ao selecionar indicadores para suas próprias estratégias.
3.3. Equação de regressão e sua análise.
Então, fizemos a análise de regressão e obtivemos a lista dos indicadores "certos". Vamos agora transformar tudo isso em uma equação de regressão. Os coeficientes da equação para cada indicador são mostrados na coluna B dos resultados da análise de regressão (Fig. 10). O parâmetro Intercept na mesma tabela é um membro independente da equação e é incluído nele como um coeficiente independente.
Vamos gerar uma equação baseada na tabela (Fig. 10), tomando os coeficientes da coluna B.
Preço = 22,7 + 205,2 * dDemarker - 41686,2 * dAC - 139,3 * DeMarker + 22468,8 * Touros - 14619,5 * Ursos.
Essa equação foi apresentada anteriormente na seção 1 como um código MQL5 juntamente com os resultados de desempenho obtidos do Testador para o EA desenvolvido com base nessa equação. Como pode ser visto, a análise de regressão foi adequada quando usada como testador de estratégia. A análise trouxe uma certa estratégia e selecionou indicadores relevantes da lista proposta.
Caso você deseje analisar melhor a estabilidade da equação, você deve verificar:
Outliers na equação; Normalidade de distribuição dos resíduos; Efeito não linear produzido por parâmetros individuais dentro da equação.
Essas verificações podem ser realizadas usando a análise residual. Para prosseguir para a análise, clique em OK na janela de resultados (Fig. 8). Depois de executar as verificações acima em relação à equação gerada, você verá que a equação não parece ser sensível a um pequeno número de outliers, pequeno desvio da distribuição normal de dados e uma certa não-linearidade dos parâmetros.
Se houver uma não-linearidade significativa de relacionamento, um parâmetro pode ser linearizado. Para este propósito, a Statistica oferece uma análise de regressão não linear fixa. Para iniciar a análise, vá para o menu: Estatísticas - & gt; Modelos Lineares / Não Lineares Avançados - & gt; Regressão não linear fixa. Em geral, as verificações realizadas provaram que a análise de regressão múltipla não é sensível a uma quantidade moderada de ruído nos dados analisados.
4. Análise de regressão como um otimizador de estratégia.
Como a análise de regressão é capaz de processar milhares de parâmetros, ela pode ser usada para otimizar estratégias. Assim, se 50 períodos para um indicador precisarem ser processados, eles podem ser salvos como 50 parâmetros individuais e enviados para a análise de regressão, todos de uma vez. Uma tabela no Statistica pode ajustar 65536 parâmetros. Ao processar 50 períodos para cada indicador, cerca de 1300 indicadores podem ser analisados! Está muito além das capacidades do MetaTrader 5 Standard Tester.
Vamos otimizar os dados usados em nosso exemplo da mesma maneira. Conforme mencionado na seção 4.1 acima, para demonstrar a otimização, os valores do indicador com um período que é o dobro do comprimento do padrão foram adicionados aos dados. Os nomes desses parâmetros nos arquivos de dados terminam com '_p'. Nossa amostra agora contém 60 parâmetros, incluindo os indicadores de período padrão. Seguindo as etapas descritas na seção 3.2, obteremos uma tabela como segue (Fig. 11).
Fig. 11. Resultados da análise dos indicadores com diferentes períodos.
A equação de regressão compreendeu 11 parâmetros: seis dos indicadores do período padrão e cinco dos indicadores do período prolongado. A correlação dos parâmetros com o preço aumentou em um quarto. Parâmetros do indicador MACD para ambos os períodos pareciam estar incluídos na equação.
Como os valores do mesmo indicador para períodos diferentes são tratados como parâmetros diferentes na análise de regressão, a equação pode incluir e combinar valores dos indicadores para diferentes períodos. Por exemplo. a análise pode descobrir que o valor do RSI (7) está associado ao aumento de preço e o valor do RSI (14) está associado à redução do preço. A análise pelo Standard Tester nunca é tão detalhada.
A equação de regressão gerada com base na análise ampliada (Fig. 11) é a seguinte:
Preço = 297 + 173 * dDemarker - 65103 * dAC - 177 * DeMarker + 28553 * Bulls_p - 24808 * AO - 1057032 * dMACDms_p + 2,41 * WPR_p - 2,44 * Stoch_m_p + 125536 * MACDms + 18,65 * dRSI_p - 0,768 * dCCI.
Vamos ver os resultados que esta equação produzirá no EA. A Fig. 12 mostra os resultados do teste do EA usando os dados de 1 de julho a 1 de setembro de 2011 que foram aplicados na análise de regressão. O gráfico ficou mais suave e o EA rendeu mais lucro.
Fig. 12. Desempenho do EA durante o período de treinamento.
Vamos testar o EA durante o período de teste de 1º de setembro a 1º de novembro de 2011. O gráfico de lucro ficou pior do que era no caso do EA com indicadores de período padrão apenas. A equação como gerada pode precisar ser verificada quanto à normalidade e não-linearidade dos indicadores internos.
Como a não linearidade foi observada em indicadores de período padrão, ela pode se tornar crítica durante o período prolongado. Neste caso, o desempenho da equação pode ser melhorado linearizando os parâmetros. De qualquer forma, o EA não foi um colapso total durante o período de teste, simplesmente não lucrou. Isso qualifica a estratégia desenvolvida como bastante estável.
Fig. 13. Desempenho do EA durante o período de teste.
Deve-se notar que o MQL5 suporta a saída de apenas 64 parâmetros em uma linha de um arquivo. Uma análise em larga escala dos indicadores ao longo de vários períodos exigirá a fusão das tabelas de dados que podem ser feitas no Statistica ou no MS Excel.
Conclusão.
Um pequeno estudo apresentado no artigo mostrou que a análise de regressão oferece uma oportunidade de selecionar dentre uma variedade de indicadores os mais significativos em termos de previsão de preços. Também demonstrou que a análise de regressão pode ser usada para procurar por períodos indicadores que são ótimos dentro de uma determinada amostra.
Deve-se notar que as equações de regressão são facilmente transformadas em linguagem MQL5 e sua aplicação não requer alta proficiência em programação. Assim, a análise de regressão múltipla pode ser empregada no desenvolvimento de estratégias de negociação. Dito isso, uma equação de regressão pode servir como um backbone para uma estratégia de negociação.
Traduzido do russo por MetaQuotes Software Corp.
Crie e analise estratégias de negociação.
use as ferramentas que todo comerciante profissional sonha.
Expert Advisor Studio.
Gerador e analisador online para consultores especializados. Suporta contas de hedge e compensação do MetaTrader 4 e MetaTrader 5.
O Expert Advisor Studio permite que você crie estratégias que funcionem melhor com seu corretor. Você ganha controle total sobre os dados históricos, as regras de negociação e os parâmetros da sua conta. Definindo critérios de aceitação, validação de estratégia e Stop Loss & amp; Take Profit levels é uma brisa. O Expert Advisor Studio inclui ferramentas para análises avançadas e testes de robustez de estratégias, como: Out of Sample, Monte Carlo e Multi Market. Você provavelmente valorizará a capacidade de filtrar e classificar todas as estratégias geradas em uma coleção.
Forex Strategy Builder Professional.
Plataforma profissional para gerar e analisar estratégias avançadas. Suporta contas de compensação MetaTrader 4 e MetaTrader 5.
O Forex Strategy Builder Professional (FSB Pro) é o principal programa para análise técnica. Traz um novo nível de compreensão no comércio automático.
Aqui você pode construir suas estratégias de negociação usando ferramentas de design sofisticadas que permitem modificar posições já abertas, usar indicadores de diferentes pares de moedas, seguir as tendências de prazos mais altos. O Forex Strategy Builder permite que você crie Expert Advisors que atuam em vários níveis, usando grupos lógicos para as regras de negociação.
O programa permite que você estude o comportamento de suas estratégias nos detalhes mais profundos. Isso acontece usando diferentes métodos de cálculo do teste histórico e dados de período de tempo mais baixos.
Por que nosso software Forex é importante.
Estou feliz com a minha abordagem (risco extremamente baixo), e muitas das estratégias são excelentes - o FSB é um software fantástico, não posso lhe agradecer o suficiente por criá-lo! Atualmente estou negociando com mais de 40 estratégias por alguns meses, e estou tendo um sucesso muito emocionante até agora.
Eu acabei de começar um teste gratuito ontem, 24 horas atrás e eu já carreguei um EA no MT4 e uma negociação vencedora também foi gerada. Software incrível e apoio realmente fantástico com o Sr. Popov tão disposto a ajudar.
Eu também fiz um teste grátis com outro software e mesmo depois de uma semana não consegui entender nada.
Toda a experiência é fantástica!
Eu normalmente programo e testo um especialista por cerca de dois meses no MT4. Eu faço isso por 2 dias com o Strategy Builder. Isso me poupa muito tempo.
Mesmo o software de alto preço terá problemas para combinar com este. O FSB Pro já pode oferecer a maioria dos recursos de qualquer software similar, independentemente do preço!
David MacKay (BlaiserBoy)
Lembro-me do começo e do início do desenvolvimento do FSB e do FST. Foi um tremendo desenvolvimento de fato. O mais recente FSB Pro está muito além das minhas expectativas. Vários anos atrás, eu não conseguia nem imaginar que poderia rodar um software tão bom no meu computador.
Eu só quero parabenizá-lo pelo seu brilhante recurso chamado "Strategy Generator". Isto é o que separa o seu software de todos os seus concorrentes.
. backtest com MT4 é sloooooooooooooooow. Eu gosto muito mais da velocidade do relâmpago do FSB.
Eu sou húngaro, trabalho na Coréia e seu software me poupa muito trabalho em testes e negociações. Muito trabalho de precisões, programação impecável, agradeço, acompanhe.
Primeiro de tudo, obrigado sr. Popov para o seu desenvolvimento e paixão fazendo este software, eu gostaria de dizer-lhe que a vida da minha família mudou drasticamente financeiramente por causa de seus presentes originais de programação algo tão especial para nós.
O que eu realmente gosto no Forex Strategy Builder é a capacidade de ver resultados imediatamente sem a necessidade de clicar no botão "Iniciar" no MetaTrader repetidas vezes. Mas é tão rápido que sempre me pergunto se o resultado é real ou não.
Plataformas de Negociação Suportadas.
Meta Trader 4.
MetaTrader 4 (Wikipedia: MetaTrader 4) é uma plataforma de negociação para desktop criada pela MetaQuotes corp. É a plataforma mais usada entre os comerciantes forex de varejo fornecidos por mais de 400 corretores. O MT4 foi bem aceito porque permite que os traders usem seus próprios programas para demonstração e negociação real e para análise de mercado.
Nossos produtos.
O Forex Strategy Builder pode se conectar ao MT4 através de uma ponte, o que lhe dá a capacidade de negociar estratégias com todos os indicadores do FSB Pro. O programa também exporta consultores especializados nativos. Uma grande vantagem é que você pode negociar um portfólio de especialistas em um único par de moedas.
O Expert Advisor Studio fornece meios para importar dados do MT4 e exporta especialistas nativos do MQL4.
Meta Trader 5.
O MetaTrader 5 foi projetado para substituir o MT4. O programa veio com uma linguagem de programação avançada, que foi posteriormente implementada parcialmente no MT4. Agora o MT 5 fornece funcionalidade igual ao MT4. No entanto, há uma diferença no código de execução da ordem, o que torna o código de especialistas da MQL4 incompatível. Felizmente, nosso software forex abrange ambas as versões.
Nossos produtos.
O Forex Strategy Builder pode importar dados históricos do MT5 e gerar especialistas na linguagem MQL5. O programa suporta apenas contas de compensação. Ele utiliza o recurso MT5 para modificar o volume das posições, o que é muito útil quando seus especialistas adicionam, reduzem ou invertem posições.
O Expert Advisors Studio suporta as contas de rede e cobertura do MetaTrader 5.
o que fazer a seguir?
Comece a trabalhar com a plataforma que melhor lhe convier. Prometemos que, com o tempo, você terá um trader melhor e mais confiante.
Todas as plataformas são feitas para protegê-lo como um comerciante, para proteger sua conta e aumentar seus lucros.
Quanto mais cedo você começar, melhor. Escolha um de nossos pacotes porque eles são a maneira mais eficaz de obter um software comprovadamente eficaz.
Invista no seu sucesso!
Compre um pacote forex com todas as ferramentas forex úteis que você precisa.
Forex Software Ltd.
Software de negociação forex automatizado para iniciantes e comerciantes profissionais. Crie, teste e exporte Expert Advisors para MetaTrader.
Software de estratégia.
Documentos & amp; Guias.
Links Sociais.
Divulgação de risco.
Futuros e negociação forex contém risco substancial e não é para todos os investidores. Um investidor poderia potencialmente perder todo ou mais do que o investimento inicial. O capital de risco é o dinheiro que pode ser perdido sem comprometer a segurança financeira ou o estilo de vida. Apenas o capital de risco deve ser utilizado para negociação e apenas aqueles com capital de risco suficiente devem considerar a negociação.
Divulgação de Desempenho Hipotético.
Resultados de desempenho hipotéticos têm muitas limitações inerentes, algumas das quais são descritas aqui. Nenhuma representação está sendo feita de que qualquer conta terá ou poderá obter lucros ou perdas semelhantes aos mostrados; na verdade, há freqüentemente diferenças acentuadas entre os resultados de desempenho hipotéticos e os resultados reais obtidos posteriormente por qualquer programa de negociação específico. Uma das limitações dos resultados do desempenho hipotético é que eles são geralmente preparados com o benefício da retrospectiva. Além disso, a negociação hipotética não envolve risco financeiro, e nenhum registro hipotético de negociação pode explicar completamente o impacto do risco financeiro da negociação real. por exemplo, a capacidade de suportar perdas ou aderir a um determinado programa de negociação, apesar das perdas de negociação, são pontos importantes que também podem afetar negativamente os resultados reais de negociação. Existem inúmeros outros fatores relacionados aos mercados em geral ou à implementação de qualquer programa de negociação específico que não possa ser totalmente contabilizado na preparação de resultados hipotéticos de desempenho e todos os que podem afetar negativamente os resultados da negociação.
Copyright © 2006 - 2018 Software Forex Ltd. Todos os direitos reservados.
Como funciona.
Criação manual de uma estratégia de negociação - do jeito antigo.
O desenvolvimento manual de uma nova estratégia de negociação é um processo lento. Ela começa com o trader usando sua experiência e conhecimento para identificar os elementos da estratégia de negociação, como indicadores técnicos, padrões de preços, tipos de ordem de entrada e saída e design geral de estratégia.
Quando o protótipo é concluído, a estratégia é testada nos dados históricos para comprovar sua lucratividade. O backtest muitas vezes revela que os resultados da estratégia não são aceitáveis. Assim, o trader tem que alterá-lo, adicionar ou alterar alguns indicadores, tentar idéias diferentes, valores diferentes e, em seguida, testá-lo novamente. É um longo processo de tentativa e erro com numerosos iterações, revisões e testes até que a estratégia atinja resultados aceitáveis.
Agora imagine que você tem uma ferramenta que faz todo esse trabalho manual para você e o faz 1000 vezes mais rápido. Detalhes
O caminho StrategyQuant.
O StrategyQuant requer apenas uma fração do segundo para gerar automaticamente uma nova estratégia de negociação. Ele usa várias combinações de indicadores técnicos e padrões de preço como as regras de entrada, combina-o com vários tipos de pedidos (mercado, limite,.) E com várias regras de saída (meta de lucro fixo, trailing stop, etc.).
Gerador de estratégia de negociação
Insira sua estratégia de negociação e gere o Expert Advisor para a negociação de moeda Forex. Crie scripts para ajudá-lo a negociar. O Professional Edition gera arquivos *.ex4 / *.ex5 e código-fonte *.mq4 / *.mq5.
Como a maioria das estratégias de negociação Forex contém elementos comuns: posições de abertura, posições de fechamento, paradas finais, sinais, etc. O gerador cria Expert Advisor, Script ou Indicador Personalizado com esses componentes comuns para os mercados Forex. Pressione o menu Gerar e seu EA, Script ou Indicador Personalizado está pronto.
Teste suas ideias antes de contratar alguém para programar o Expert Advisor, o Script ou o Custom Indicator para você.
Gerador Forex.
Suporte total para o MetaTrader 4. Suporte experimental limitado ao MetaTrader 5. Nenhuma programação necessária para a maioria das configurações. Crie Expert Advisors (EA), indicadores personalizados e negociação de scripts. Ordem de abertura de sinais de abertura através de indicadores incorporados ou personalizados. Importe seus próprios indicadores de terceiros personalizados. Defina a execução de ordens: take profit, stop loss, trailing stop, etc. Limite a abertura de novos pedidos para dias específicos da semana. Defina horas quando o Expert Advisor deve abrir novos pedidos. Limite do Expert Advisor para trabalhar somente quando os spreads forem menores que o valor definido. Configure a segunda ordem com diferentes take-profit, stop loss, etc. Usado principalmente para cenários de negociação de equilíbrio. Opção para fechar ordens se o sinal oposto foi recebido. Gestão de risco de Martingale e Semi-Martingale. Inclua seu próprio código personalizado no diagrama.
Atualizações gratuitas.
Se você obtiver a versão atual 6.x, todas as atualizações para qualquer versão futura 6.x serão gratuitas.
Gerador de estratégia de negociação
Se você ainda está procurando uma vantagem nos mercados, os sistemas de negociação automatizados são a melhor maneira de obtê-lo. Saber mais.
Direitos autorais (c) 2010 Adaptrade Software. Todos os direitos reservados.
OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INERENTES. A PARTIR DE UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, UMA VEZ QUE AS COMERCIALIZAÇÕES NAO SÃO REALMENTE EXECUTADAS, OS RESULTADOS PODEM SUBSTITUIR OU SUPERIOR AO IMPACTO, SE ALGUM, DE DETERMINADOS FATORES DE MERCADO, COMO A FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL TAMBÉM ESTÃO SUJEITOS AO FATO DE QUE ELES FORAM CONCEBIDOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ SENDO FEITA QUE QUALQUER CONTA PODERÁ OU POSSIBILITAR LUCROS OU PERDAS SIMILARES AOS APRESENTADOS.
EasyLanguage e TradeStation são marcas registradas da TradeStation Technologies, Inc.
Uma das maiores tendências no comércio varejista na última década foi o aumento da popularidade da negociação automatizada. Neste tipo de negociação, também conhecido como execução automatizada de ordens, os sinais de compra e venda gerados por um sistema de negociação são executados automaticamente por uma plataforma conectada à conta de corretagem do negociante. Isso permite a troca de mãos livres, o que permite uma execução mais rápida, menos erros e a capacidade de negociar prazos mais curtos com estratégias de frequência mais alta.
O algoritmo básico para a construção de sistemas de negociação usando geração automática de código é mostrado abaixo na Figura 1. Ele começa com um método para combinar diferentes elementos da estratégia de negociação. Esses elementos podem incluir vários indicadores técnicos, como médias móveis, estocásticos e assim por diante; diferentes tipos de ordens de entrada e saída; e condições lógicas para entrar e sair do mercado.
Figura 1. Algoritmo básico para construção de estratégia automatizada.
Depois que os diferentes elementos são combinados em uma estratégia coerente, ela pode ser avaliada no mercado ou nos mercados de interesse. Isso exige dados de mercado - preços, volume, juros em aberto, etc. - para cada mercado. De um modo geral, você também teria um conjunto de metas de compilação para ajudar a classificar ou classificar cada estratégia. Exemplos de metas de construção incluem várias medidas de desempenho, como lucro líquido, redução, porcentagem de vencedores, fator de lucro e assim por diante. Estes poderiam ser definidos como requisitos mínimos, como um fator de lucro de pelo menos 2.0, ou como objetivos a serem maximizados, como a maximização do lucro líquido.
Base Teórica da Geração Automática de Código.
Como descrito acima, construir um sistema de negociação usando geração automática de código é essencialmente um problema de otimização. A combinação de elementos de estratégia que maximiza as metas de construção é considerada a estratégia final. Alguns traders objetariam que os sistemas de negociação deveriam ser construídos com base em uma hipótese de comportamento ou ação de mercado. Se você tem uma boa hipótese sobre como os mercados funcionam, uma estratégia pode ser construída em torno dessa hipótese e testada. Se funcionar, suporta a hipótese e justifica a negociação da estratégia.
Gerador de código de sistema padrão para a TradeStation.
Esta seção descreve uma abordagem ad hoc para geração automática de código na qual um sistema de negociação para a TradeStation gera automaticamente outros sistemas de negociação baseados em padrões para a TradeStation. O sistema AutoSystemGen procura por um conjunto de regras de negociação, junto com os valores de parâmetros associados, que atendam a um conjunto especificado de requisitos de desempenho.
Embora quase qualquer tipo de indicador ou lógica de negociação possa ser incluído no gerador do sistema de negociação descrito aqui, para manter as coisas relativamente simples, as regras dos sistemas gerados serão restritas a padrões de preços. Cada regra de entrada de um sistema de negociação gerado terá o seguinte formato:
A chave para esse processo é encontrar sistemas de negociação candidatos. Um sistema pode consistir de uma a dez regras da forma mostrada acima. Negociações são entradas no mercado se todas as regras forem verdadeiras, e negociações são feitas depois de um certo número de barras. Se isso fosse codificado como um sistema tradicional da TradeStation, com um máximo de 10 regras, haveria 52 entradas. Isso criaria uma estratégia incômoda.
O código para o sistema AutoSystemGen e suas funções relacionadas está disponível em Breakout Futures (breakoutfutures /) na página Free Downloads.
Como exemplo, considere o mercado futuro de títulos de 30 anos do Tesouro (símbolo @ US. P na TradeStation 8). O AutoSystemGen foi otimizado nos últimos 20 anos de preços de T-bond com a entrada OptStep aumentada de 1 para 10000. Isso significa que o sistema avaliou 10.000 sistemas de negociação diferentes. A otimização foi executada duas vezes, uma para negociações longas e outra para operações a descoberto. Os seguintes requisitos de desempenho foram utilizados: lucro líquido de pelo menos US $ 30.000, perda do pior caso não superior a US $ 7500, pelo menos 200 negociações, percentual lucrativo de pelo menos 50% e fator de lucro de pelo menos 1,2. Em um computador dual core com o Vista, foram necessários aproximadamente 10 minutos para executar cada otimização (10.000 sistemas por otimização).
Sistema 2332, @ US. P, 9/17/2007 12:23:00, Long Trades.
Lucro Líquido = 53562,50, Máximo DD = -7381,25, Número de Negociações = 250, Percentual de Vitórias = 56,80, Prof fator = 1,631.
Var: EntNext (false);
EntNext = Open [2] & gt; = Baixo [16] e.
Fechar [14] & lt; = Baixo [6] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 2 então.
Vender próxima barra no mercado;
System 5771, @ US. P, 9/17/2007 12:27:00, Long Trades.
Lucro Líquido = 42145,00, Máx. DD = -5733,75, Número de Negociações = 207, Percentual de Vitórias = 57,00, Prof fator = 1,631.
Var: EntNext (false);
EntNext = Alto [7] & gt; = Baixo [19] e.
Fechar [20] & gt; = Fechar [5] e.
Alto [18] & gt; = Baixo [2] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 2 então.
Vender próxima barra no mercado;
Sistema 7622, @ US. P, 9/17/2007 12:29:00, Long Trades.
Lucro Líquido = 59348,75, DD Máximo = -7222,50, Número de Negociações = 208, Percentual de Vitórias = 60,58, Prof fator = 1,924.
Var: EntNext (false);
EntNext = Baixo [2] & lt; = Alto [9] e.
Abra [11] & gt; = Abrir [18] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 3 então.
Vender próxima barra no mercado;
Sistema 7718, @ US. P, 9/17/2007 12:29:00, Long Trades.
Lucro Líquido = 35526,25, DD Máximo = -6936,25, Número de Negociações = 292, Percent Wins = 56,85, Prof fator = 1,418.
Var: EntNext (false);
EntNext = Fechar [3] & gt; = Alta [19] e.
Alta [6] & lt; = Abrir [10] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 1 então.
Vender próxima barra no mercado;
Sistema 6160, @ US. P, 9/17/2007 12:42:00, Curtas Negociações.
Lucro Líquido = 31277,50, DD Máximo = -6846,25, Número de Negociações = 369, Percent Wins = 51,76, Prof fator = 1,297.
Var: EntNext (false);
EntNext = Alto [9] & gt; = Baixo [6] e.
Fechar [15] & gt; = Alta [8] e.
Alta [7] & lt; = Baixa [20] e.
Se EntNext então.
Vender curto próximo bar no mercado;
Se BarsSinceEntry = 1 então.
Compre para cobrir a próxima barra no mercado;
A listagem de cada sistema inclui o número do sistema (correspondente à entrada OptStep), símbolo de mercado, data atual e se o sistema é apenas longo ou curto. A próxima linha contém algumas estatísticas de desempenho resumidas para ajudar na avaliação de cada sistema. Finalmente, o código do sistema é mostrado. Para avaliar os sistemas no TradeStation, o código entre as duas linhas de comentário () pode ser copiado e colado em uma estratégia no TradeStation, em seguida, executado na janela do gráfico.
O último sistema no arquivo de saída é para um sistema curto somente (# 6160). Quando guardada na TradeStation como estratégia e aplicada ao mesmo gráfico de T-bond, foi produzida a seguinte curva de capital:
Figura 3. Sistema Short-only para T-bonds, nos últimos 20 anos, com US $ 15 por transação deduzidos para custos de negociação, gerados pelo sistema AutoSystemGen.
Programação Genética para Geração Automática de Código.
A abordagem ad hoc descrita na seção anterior é simples, mas tem duas limitações: (1) as estratégias geradas aleatoriamente não convergem para as metas de compilação e (2) o modelo do sistema de padrões é difícil de generalizar para estratégias mais complexas. . Isso sugere que é necessária uma abordagem mais sofisticada.
Um método para geração automática de código que trata dessas duas preocupações é chamado de programação genética (GP), 1 que pertence a uma classe de técnicas chamadas algoritmos evolutivos. Algoritmos evolutivos e GP em particular foram desenvolvidos por pesquisadores em inteligência artificial baseados nos conceitos biológicos de reprodução e evolução. Um algoritmo GP “evolui” uma população de estratégias de negociação a partir de uma população inicial de membros gerados aleatoriamente. Membros da população competem uns contra os outros com base em sua "aptidão". Os membros mais aptos são selecionados como "pais" para produzir um novo membro da população, que substitui um membro mais fraco (menos apto).
Reduz a necessidade de conhecimento de indicadores técnicos e desenho de estratégia. O algoritmo GP seleciona as regras de negociação individuais, indicadores e outros elementos da estratégia para você.
O processo de construção de regras permite uma complexidade considerável, incluindo regras de negociação não lineares.
O processo GP elimina os elementos mais trabalhosos e entediantes do processo tradicional de desenvolvimento de estratégias; ou seja, criar uma nova ideia de negociação, programá-la, verificar o código, testar a estratégia, modificar o código e repetir. Tudo isso é feito automaticamente no GP.
O processo GP é imparcial. Enquanto a maioria dos comerciantes desenvolveu vieses a favor ou contra indicadores específicos e / ou lógica de negociação, o GP é guiado apenas pelo que funciona.
Ao incorporar a semântica da regra de negociação adequada, o processo GP pode ser projetado para produzir regras de negociação lógicas e código livre de erros.
O processo GP geralmente produz resultados que são não apenas exclusivos, mas não óbvios. Em muitos casos, essas gemas escondidas seriam quase impossíveis de encontrar de outra maneira.
Ao automatizar o processo de criação, o tempo necessário para desenvolver uma estratégia viável pode ser reduzido de semanas ou meses para uma questão de minutos em alguns casos, dependendo do tamanho do arquivo de dados do preço de entrada e de outras configurações de construção.
A programação genética tem sido usada com sucesso em uma variedade de campos, incluindo processamento de sinais e imagens, controle de processos, bioinformática, modelagem de dados, geração de código de programação, jogos de computador e modelagem econômica; ver, por exemplo, Poli et al. 2 Uma visão geral do uso do GP em finanças é fornecida por Chen. 3 Colin 4 foi um dos primeiros a explicar como usar GP para otimizar combinações de regras para uma estratégia de negociação.
J. Koza. Programação Genética. The MIT Press, Cambridge, MA. 1992.
R. Poli, W. B. Langdon e N. F. McPhee. Um guia de campo para programação genética. Publicado via lulu e disponível gratuitamente em gp-field-guide. uk, 2008. (Com contribuições de J. R. Koza).
Shu-Heng Chen (Editor). Algoritmos Genéticos e Programação Genética em Finanças Computacionais. Kluwer Academic Publishers, Norwell, MA. 2002.
A. Colin. Algoritmos genéticos para modelagem financeira, Trading on the Edge. 1994, páginas 165-168. John Wiley & amp; Sons, Inc. Nova Iorque.
Risto Karjalainen. Regras técnicas de negociação em evolução para futuros de S & P 500, Advanced Trading Rules, 2002, Pages 345-366. Elsevier Science, Oxford, Reino Unido.
Jean-Yves Potvin, Patrick Soriano e Maxime Vallee. Gerando regras de negociação nos mercados de ações com programação genética. Computadores e Pesquisa de Operações, Volume 31, Edição 7, junho de 2004, páginas 1033-1047.
Massimiliano Kaucic. Investimento utilizando métodos evolutivos de aprendizagem e regras técnicas. Revista Européia de Pesquisa Operacional, volume 207, número 3, 16 de dezembro de 2010, páginas 1717-1727.
Um Algoritmo de Construção Usando Programação Genética.
Expandindo o algoritmo de construção apresentado anteriormente (ver Fig. 1), um algoritmo mais detalhado é ilustrado abaixo na Fig. 4 com base na programação genética. As caixas cinza-sombreadas representam os dados de entrada, que incluem os dados de preço para o (s) mercado (s) de interesse, os indicadores e tipos de ordem no chamado conjunto de construção e as opções e critérios de desempenho (metas de construção) selecionadas pelo do utilizador.
Figura 4. Algoritmo de construção para geração automática de código com programação genética.
O processo GP pode ser usado para evoluir simultaneamente dois elementos essenciais da estratégia: condições de entrada e ordens de entrada e saída. As condições de entrada são tipicamente representadas como estruturas de árvore, como mostrado abaixo na Fig. 5.
A chave para a evolução das ordens de entrada e saída usando programação genética é representar os diferentes tipos de pedidos de forma generalizada. Por exemplo, parar e limitar os preços de entrada pode ser representado da seguinte forma:
Embora a programação genética seja capaz de gerar estratégias de negociação com considerável variedade, é necessário começar com uma estrutura generalizada para as estratégias a seguir. A estrutura da estratégia mostrada abaixo no pseudocódigo fornece uma estrutura para a construção de estratégias com base nas condições de entrada e nos tipos de pedidos, como os discutidos acima:
Entradas: N1, N2, N3,…
Se a posição for plana e LongEntryCondition for verdadeira, então.
Longa entrada ...
Inicialize ordens de saída longas conforme necessário ...
Se a posição for plana e ShortEntryCondition for true, então.
Ordem de entrada curta…
Inicialize ordens de saída curtas conforme necessário ...
Se a posição for longa, então.
Longa ordem de saída 1…
Longa ordem de saída 2…
Se a posição é curta então.
Ordem de saída curta 1…
Ordem de saída curta 2…
[Saída opcional de fim de dia]
As estratégias começam com a lista de entradas. Uma entrada é fornecida para qualquer parâmetro do indicador, comprimento de lookback do padrão de preço e quaisquer parâmetros exigidos pelos pedidos de entrada e saída, como o comprimento de lookback do ATR.
Para ilustrar o uso de programação genética para geração automática de código na construção de estratégias, o programa Adaptrade Builder foi executado em barras diárias de um mercado futuro de índices de ações para uma população pequena e um número limitado de gerações. As métricas de desempenho escolhidas para orientar o processo foram o lucro líquido, o número de negócios, o coeficiente de correlação, a significância estatística e a relação retorno / rebaixamento. Metas específicas foram estabelecidas para o número de negociações e a relação retorno / rebaixamento. As outras métricas selecionadas foram maximizadas. A função de adequação foi uma média ponderada de termos para cada métrica.
Figura 6. Porcentagem de membros da população com lucro líquido fora da amostra superior a US $ 1.000.
Da mesma forma, o lucro líquido médio da população da OOS aumentou após cinco e dez gerações, como mostra a Fig. 7. Observe que esses resultados são para o lucro líquido da OOS. Por definição, os dados fora da amostra não são usados na compilação, portanto, os resultados do OOS são imparciais; eles não se beneficiam da retrospectiva. Isto implica que o processo GP não só tende a melhorar os resultados dentro da amostra ao longo de gerações sucessivas, o que é um efeito direto do algoritmo GP, mas os resultados OOS também tendem a melhorar à medida que as estratégias são evoluídas. Isso indica uma construção de alta qualidade.
Se você ainda está procurando uma vantagem nos mercados, os sistemas de negociação automatizados são a melhor maneira de obtê-lo. Saber mais.
Direitos autorais (c) 2010 Adaptrade Software. Todos os direitos reservados.
OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INERENTES. A PARTIR DE UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, UMA VEZ QUE AS COMERCIALIZAÇÕES NAO SÃO REALMENTE EXECUTADAS, OS RESULTADOS PODEM SUBSTITUIR OU SUPERIOR AO IMPACTO, SE ALGUM, DE DETERMINADOS FATORES DE MERCADO, COMO A FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL TAMBÉM ESTÃO SUJEITOS AO FATO DE QUE ELES FORAM CONCEBIDOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ SENDO FEITA QUE QUALQUER CONTA PODERÁ OU POSSIBILITAR LUCROS OU PERDAS SIMILARES AOS APRESENTADOS.
EasyLanguage e TradeStation são marcas registradas da TradeStation Technologies, Inc.
Uma das maiores tendências no comércio varejista na última década foi o aumento da popularidade da negociação automatizada. Neste tipo de negociação, também conhecido como execução automatizada de ordens, os sinais de compra e venda gerados por um sistema de negociação são executados automaticamente por uma plataforma conectada à conta de corretagem do negociante. Isso permite a troca de mãos livres, o que permite uma execução mais rápida, menos erros e a capacidade de negociar prazos mais curtos com estratégias de frequência mais alta.
O algoritmo básico para a construção de sistemas de negociação usando geração automática de código é mostrado abaixo na Figura 1. Ele começa com um método para combinar diferentes elementos da estratégia de negociação. Esses elementos podem incluir vários indicadores técnicos, como médias móveis, estocásticos e assim por diante; diferentes tipos de ordens de entrada e saída; e condições lógicas para entrar e sair do mercado.
Figura 1. Algoritmo básico para construção de estratégia automatizada.
Depois que os diferentes elementos são combinados em uma estratégia coerente, ela pode ser avaliada no mercado ou nos mercados de interesse. Isso exige dados de mercado - preços, volume, juros em aberto, etc. - para cada mercado. De um modo geral, você também teria um conjunto de metas de compilação para ajudar a classificar ou classificar cada estratégia. Exemplos de metas de construção incluem várias medidas de desempenho, como lucro líquido, redução, porcentagem de vencedores, fator de lucro e assim por diante. Estes poderiam ser definidos como requisitos mínimos, como um fator de lucro de pelo menos 2.0, ou como objetivos a serem maximizados, como a maximização do lucro líquido.
Base Teórica da Geração Automática de Código.
Como descrito acima, construir um sistema de negociação usando geração automática de código é essencialmente um problema de otimização. A combinação de elementos de estratégia que maximiza as metas de construção é considerada a estratégia final. Alguns traders objetariam que os sistemas de negociação deveriam ser construídos com base em uma hipótese de comportamento ou ação de mercado. Se você tem uma boa hipótese sobre como os mercados funcionam, uma estratégia pode ser construída em torno dessa hipótese e testada. Se funcionar, suporta a hipótese e justifica a negociação da estratégia.
Gerador de código de sistema padrão para a TradeStation.
Esta seção descreve uma abordagem ad hoc para geração automática de código na qual um sistema de negociação para a TradeStation gera automaticamente outros sistemas de negociação baseados em padrões para a TradeStation. O sistema AutoSystemGen procura por um conjunto de regras de negociação, junto com os valores de parâmetros associados, que atendam a um conjunto especificado de requisitos de desempenho.
Embora quase qualquer tipo de indicador ou lógica de negociação possa ser incluído no gerador do sistema de negociação descrito aqui, para manter as coisas relativamente simples, as regras dos sistemas gerados serão restritas a padrões de preços. Cada regra de entrada de um sistema de negociação gerado terá o seguinte formato:
A chave para esse processo é encontrar sistemas de negociação candidatos. Um sistema pode consistir de uma a dez regras da forma mostrada acima. Negociações são entradas no mercado se todas as regras forem verdadeiras, e negociações são feitas depois de um certo número de barras. Se isso fosse codificado como um sistema tradicional da TradeStation, com um máximo de 10 regras, haveria 52 entradas. Isso criaria uma estratégia incômoda.
O código para o sistema AutoSystemGen e suas funções relacionadas está disponível em Breakout Futures (breakoutfutures /) na página Free Downloads.
Como exemplo, considere o mercado futuro de títulos de 30 anos do Tesouro (símbolo @ US. P na TradeStation 8). O AutoSystemGen foi otimizado nos últimos 20 anos de preços de T-bond com a entrada OptStep aumentada de 1 para 10000. Isso significa que o sistema avaliou 10.000 sistemas de negociação diferentes. A otimização foi executada duas vezes, uma para negociações longas e outra para operações a descoberto. Os seguintes requisitos de desempenho foram utilizados: lucro líquido de pelo menos US $ 30.000, perda do pior caso não superior a US $ 7500, pelo menos 200 negociações, percentual lucrativo de pelo menos 50% e fator de lucro de pelo menos 1,2. Em um computador dual core com o Vista, foram necessários aproximadamente 10 minutos para executar cada otimização (10.000 sistemas por otimização).
Sistema 2332, @ US. P, 9/17/2007 12:23:00, Long Trades.
Lucro Líquido = 53562,50, Máximo DD = -7381,25, Número de Negociações = 250, Percentual de Vitórias = 56,80, Prof fator = 1,631.
Var: EntNext (false);
EntNext = Open [2] & gt; = Baixo [16] e.
Fechar [14] & lt; = Baixo [6] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 2 então.
Vender próxima barra no mercado;
System 5771, @ US. P, 9/17/2007 12:27:00, Long Trades.
Lucro Líquido = 42145,00, Máx. DD = -5733,75, Número de Negociações = 207, Percentual de Vitórias = 57,00, Prof fator = 1,631.
Var: EntNext (false);
EntNext = Alto [7] & gt; = Baixo [19] e.
Fechar [20] & gt; = Fechar [5] e.
Alto [18] & gt; = Baixo [2] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 2 então.
Vender próxima barra no mercado;
Sistema 7622, @ US. P, 9/17/2007 12:29:00, Long Trades.
Lucro Líquido = 59348,75, DD Máximo = -7222,50, Número de Negociações = 208, Percentual de Vitórias = 60,58, Prof fator = 1,924.
Var: EntNext (false);
EntNext = Baixo [2] & lt; = Alto [9] e.
Abra [11] & gt; = Abrir [18] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 3 então.
Vender próxima barra no mercado;
Sistema 7718, @ US. P, 9/17/2007 12:29:00, Long Trades.
Lucro Líquido = 35526,25, DD Máximo = -6936,25, Número de Negociações = 292, Percent Wins = 56,85, Prof fator = 1,418.
Var: EntNext (false);
EntNext = Fechar [3] & gt; = Alta [19] e.
Alta [6] & lt; = Abrir [10] e.
Se EntNext então.
Compre o próximo bar no mercado;
Se BarsSinceEntry = 1 então.
Vender próxima barra no mercado;
Sistema 6160, @ US. P, 9/17/2007 12:42:00, Curtas Negociações.
Lucro Líquido = 31277,50, DD Máximo = -6846,25, Número de Negociações = 369, Percent Wins = 51,76, Prof fator = 1,297.
Var: EntNext (false);
EntNext = Alto [9] & gt; = Baixo [6] e.
Fechar [15] & gt; = Alta [8] e.
Alta [7] & lt; = Baixa [20] e.
Se EntNext então.
Vender curto próximo bar no mercado;
Se BarsSinceEntry = 1 então.
Compre para cobrir a próxima barra no mercado;
A listagem de cada sistema inclui o número do sistema (correspondente à entrada OptStep), símbolo de mercado, data atual e se o sistema é apenas longo ou curto. A próxima linha contém algumas estatísticas de desempenho resumidas para ajudar na avaliação de cada sistema. Finalmente, o código do sistema é mostrado. Para avaliar os sistemas no TradeStation, o código entre as duas linhas de comentário () pode ser copiado e colado em uma estratégia no TradeStation, em seguida, executado na janela do gráfico.
O último sistema no arquivo de saída é para um sistema curto somente (# 6160). Quando guardada na TradeStation como estratégia e aplicada ao mesmo gráfico de T-bond, foi produzida a seguinte curva de capital:
Figura 3. Sistema Short-only para T-bonds, nos últimos 20 anos, com US $ 15 por transação deduzidos para custos de negociação, gerados pelo sistema AutoSystemGen.
Programação Genética para Geração Automática de Código.
A abordagem ad hoc descrita na seção anterior é simples, mas tem duas limitações: (1) as estratégias geradas aleatoriamente não convergem para as metas de compilação e (2) o modelo do sistema de padrões é difícil de generalizar para estratégias mais complexas. . Isso sugere que é necessária uma abordagem mais sofisticada.
Um método para geração automática de código que trata dessas duas preocupações é chamado de programação genética (GP), 1 que pertence a uma classe de técnicas chamadas algoritmos evolutivos. Algoritmos evolutivos e GP em particular foram desenvolvidos por pesquisadores em inteligência artificial baseados nos conceitos biológicos de reprodução e evolução. Um algoritmo GP “evolui” uma população de estratégias de negociação a partir de uma população inicial de membros gerados aleatoriamente. Membros da população competem uns contra os outros com base em sua "aptidão". Os membros mais aptos são selecionados como "pais" para produzir um novo membro da população, que substitui um membro mais fraco (menos apto).
Reduz a necessidade de conhecimento de indicadores técnicos e desenho de estratégia. O algoritmo GP seleciona as regras de negociação individuais, indicadores e outros elementos da estratégia para você.
O processo de construção de regras permite uma complexidade considerável, incluindo regras de negociação não lineares.
O processo GP elimina os elementos mais trabalhosos e entediantes do processo tradicional de desenvolvimento de estratégias; ou seja, criar uma nova ideia de negociação, programá-la, verificar o código, testar a estratégia, modificar o código e repetir. Tudo isso é feito automaticamente no GP.
O processo GP é imparcial. Enquanto a maioria dos comerciantes desenvolveu vieses a favor ou contra indicadores específicos e / ou lógica de negociação, o GP é guiado apenas pelo que funciona.
Ao incorporar a semântica da regra de negociação adequada, o processo GP pode ser projetado para produzir regras de negociação lógicas e código livre de erros.
O processo GP geralmente produz resultados que são não apenas exclusivos, mas não óbvios. Em muitos casos, essas gemas escondidas seriam quase impossíveis de encontrar de outra maneira.
Ao automatizar o processo de criação, o tempo necessário para desenvolver uma estratégia viável pode ser reduzido de semanas ou meses para uma questão de minutos em alguns casos, dependendo do tamanho do arquivo de dados do preço de entrada e de outras configurações de construção.
A programação genética tem sido usada com sucesso em uma variedade de campos, incluindo processamento de sinais e imagens, controle de processos, bioinformática, modelagem de dados, geração de código de programação, jogos de computador e modelagem econômica; ver, por exemplo, Poli et al. 2 Uma visão geral do uso do GP em finanças é fornecida por Chen. 3 Colin 4 foi um dos primeiros a explicar como usar GP para otimizar combinações de regras para uma estratégia de negociação.
J. Koza. Programação Genética. The MIT Press, Cambridge, MA. 1992.
R. Poli, W. B. Langdon e N. F. McPhee. Um guia de campo para programação genética. Publicado via lulu e disponível gratuitamente em gp-field-guide. uk, 2008. (Com contribuições de J. R. Koza).
Shu-Heng Chen (Editor). Algoritmos Genéticos e Programação Genética em Finanças Computacionais. Kluwer Academic Publishers, Norwell, MA. 2002.
A. Colin. Algoritmos genéticos para modelagem financeira, Trading on the Edge. 1994, páginas 165-168. John Wiley & amp; Sons, Inc. Nova Iorque.
Risto Karjalainen. Regras técnicas de negociação em evolução para futuros de S & P 500, Advanced Trading Rules, 2002, Pages 345-366. Elsevier Science, Oxford, Reino Unido.
Jean-Yves Potvin, Patrick Soriano e Maxime Vallee. Gerando regras de negociação nos mercados de ações com programação genética. Computadores e Pesquisa de Operações, Volume 31, Edição 7, junho de 2004, páginas 1033-1047.
Massimiliano Kaucic. Investimento utilizando métodos evolutivos de aprendizagem e regras técnicas. Revista Européia de Pesquisa Operacional, volume 207, número 3, 16 de dezembro de 2010, páginas 1717-1727.
Um Algoritmo de Construção Usando Programação Genética.
Expandindo o algoritmo de construção apresentado anteriormente (ver Fig. 1), um algoritmo mais detalhado é ilustrado abaixo na Fig. 4 com base na programação genética. As caixas cinza-sombreadas representam os dados de entrada, que incluem os dados de preço para o (s) mercado (s) de interesse, os indicadores e tipos de ordem no chamado conjunto de construção e as opções e critérios de desempenho (metas de construção) selecionadas pelo do utilizador.
Figura 4. Algoritmo de construção para geração automática de código com programação genética.
O processo GP pode ser usado para evoluir simultaneamente dois elementos essenciais da estratégia: condições de entrada e ordens de entrada e saída. As condições de entrada são tipicamente representadas como estruturas de árvore, como mostrado abaixo na Fig. 5.
A chave para a evolução das ordens de entrada e saída usando programação genética é representar os diferentes tipos de pedidos de forma generalizada. Por exemplo, parar e limitar os preços de entrada pode ser representado da seguinte forma:
Embora a programação genética seja capaz de gerar estratégias de negociação com considerável variedade, é necessário começar com uma estrutura generalizada para as estratégias a seguir. A estrutura da estratégia mostrada abaixo no pseudocódigo fornece uma estrutura para a construção de estratégias com base nas condições de entrada e nos tipos de pedidos, como os discutidos acima:
Entradas: N1, N2, N3,…
Se a posição for plana e LongEntryCondition for verdadeira, então.
Longa entrada ...
Inicialize ordens de saída longas conforme necessário ...
Se a posição for plana e ShortEntryCondition for true, então.
Ordem de entrada curta…
Inicialize ordens de saída curtas conforme necessário ...
Se a posição for longa, então.
Longa ordem de saída 1…
Longa ordem de saída 2…
Se a posição é curta então.
Ordem de saída curta 1…
Ordem de saída curta 2…
[Saída opcional de fim de dia]
As estratégias começam com a lista de entradas. Uma entrada é fornecida para qualquer parâmetro do indicador, comprimento de lookback do padrão de preço e quaisquer parâmetros exigidos pelos pedidos de entrada e saída, como o comprimento de lookback do ATR.
Para ilustrar o uso de programação genética para geração automática de código na construção de estratégias, o programa Adaptrade Builder foi executado em barras diárias de um mercado futuro de índices de ações para uma população pequena e um número limitado de gerações. As métricas de desempenho escolhidas para orientar o processo foram o lucro líquido, o número de negócios, o coeficiente de correlação, a significância estatística e a relação retorno / rebaixamento. Metas específicas foram estabelecidas para o número de negociações e a relação retorno / rebaixamento. As outras métricas selecionadas foram maximizadas. A função de adequação foi uma média ponderada de termos para cada métrica.
Figura 6. Porcentagem de membros da população com lucro líquido fora da amostra superior a US $ 1.000.
Da mesma forma, o lucro líquido médio da população da OOS aumentou após cinco e dez gerações, como mostra a Fig. 7. Observe que esses resultados são para o lucro líquido da OOS. Por definição, os dados fora da amostra não são usados na compilação, portanto, os resultados do OOS são imparciais; eles não se beneficiam da retrospectiva. Isto implica que o processo GP não só tende a melhorar os resultados dentro da amostra ao longo de gerações sucessivas, o que é um efeito direto do algoritmo GP, mas os resultados OOS também tendem a melhorar à medida que as estratégias são evoluídas. Isso indica uma construção de alta qualidade.
Комментариев нет:
Отправить комментарий