Friday 16 June 2017

Entradas Na Rede Forex Neural


Redes Neurais Eu pessoalmente sinto que, para que possamos criar um Sistema de Negociação verdadeiramente robusto, precisamos pensar fora da caixa. Também sinto que precisamos desenvolver novas ferramentas ao invés de tentar otimizar métodos antigos. É incrível ver todos aqui trabalharem tão duro na construção de sistemas e para o benefício de todos. Eu acho que é por isso que eu parei de espreitar e gostaria de contribuir. Algumas coisas em que eu tenho interessado e tenho trabalhado. Análise Espectral. Eu tenho algum software para criar filtros digitais de ação de preço bruto. Redes Neurais: legal, mas ainda boggles minha mente. Sentimento de mercado: idéias em PDFs Anexos Alguém interessado em fazer brainstorming, acho que vou começar com um filtro digital atrasado no euro de 30 minutos. Desenvolvimento de Indicadores de Rede Neural Estou tentando fazer alguns indicadores de rede neural para metatrader4 e gostaria de algumas sugestões, principalmente em relação a entradas e saídas da rede, e talvez a estrutura ou o tipo de rede que você considera o melhor para esta aplicação. Na medida em que conheçam os melhores resultados para a previsão de séries financeiras, estão disponíveis os preços de preço, a ponta ou a previsão de fundos, e essa tendência de coisas. Prever directamente o preço (abrir, fechar) não obtém bons resultados porque, por vários motivos, por exemplo, uma pequena mudança no tempo entre o horário aberto eo tempo de fechamento pode alterar seus valores consideravelmente. Se alguém tiver uma sugestão, fico feliz em ouvi-la e experimentá-la. Por favor, não sou um programador de rede neural experiente, eu só tenho uma boa idéia geral sobre o assunto P. Agradecemos antecipadamente, estou tentando fazer alguns indicadores de rede neural para metatrader4 e gostaria de algumas sugestões, principalmente em relação a entradas e saídas de A rede, e talvez a estrutura ou o tipo de rede que você considere o melhor para esta aplicação. Na medida em que conheçam os melhores resultados para a previsão de séries financeiras, estão disponíveis os preços de preço, a ponta ou a previsão de fundos, e essa tendência de coisas. Prever directamente o preço (abrir, fechar) não obtém bons resultados porque, por vários motivos, por exemplo, uma pequena mudança no tempo entre o horário aberto eo tempo de fechamento pode alterar seus valores consideravelmente. Se alguém tiver uma sugestão, fico feliz em ouvi-la e experimentá-la. Por favor, não sou um programador de rede neural experiente, eu só tenho uma boa idéia geral sobre o assunto P. Agradecemos antecipadamente, a NN é minha tese há alguns anos atrás. Mas quase esquecido agora Esta idéia pode atualizar minha mente novamente. Eu acho que o NN baseado no reconhecimento de padrões usando backpropagation é bom para mineração de dados forex. Prefiro usar dados de alta baixa para alimentar o NN para prever os próximos dados do intervalo diário. Também penso que usar alto e baixo é muito melhor do que usar abrir ou fechar, para ser verdade, eu realmente não gosto dos valores abertos e fechados para Análise intradiária, pois eles parecem valores bastante inestable se você fizer um deslocamento quando você coloca seu ponto de partida. O preço médio também parece bom, mas eu prefiro o highlow como perda de informação em menos. Provavelmente, eu uso uma média móvel da alta e uma da baixa. Eu achei que o JMA era um filtro realmente bom em comparação com as MAs regulares, então eu faço meus primeiros testes usando uma JMA de curto período sem mudanças de fase para evitar distorções. Até agora, os insumos que estou considerando para prever os intervalos futuros são: - JMA do High JMA of Low. - Data (Dia do mês, ex. Segunda-feira, terça-feira). A outra idéia que tenho em mente é usar NN para prever a direção de eventos de notícias. Eu tenho um banco de dados bastante grande de fundamentos de divisas desde alguns anos, então eu posso usá-los como entradas. Quanto ao tipo de rede neural a utilizar, ainda estou fazendo algumas pesquisas, as NN de backpropagation são o padrão comum para NNs, mas existem outras que parecem ter resultados muito bons, como as redes recorrentes atrasadas do tempo (mas são difíceis de treinar E entender). Outra idéia que eu tive era usar um Nuk Fukushima, principalmente para processamento de imagem, mas com algumas modificações eu acho que eles poderiam ser usados ​​para o reconhecimento de padrões em timeseries. É o fio onde as pessoas estão desenvolvendo o indicador de Redes Neurais para o MT4. Na língua russa, desculpe. - eles começaram com alguns e-books e artigos - então alguns arquivos de biblioteca para Delphi 4 (NeuralBase, Neural Network Wizard, GeneBase, SOMBase, WavUtils) - então eles codificaram muitas versões do indicador NeuroProba. mql4 (o autor é Rosh) - então eles Testou e encontrou muitos erros e erros no cálculo. Este tópico ainda não está fechado e parece que eles estão continuando em desenvolvimento (é necessário se registrar no seu fórum para ver os anexos). Além disso, encontrei este link sobre redes neurais (em inglês). É o fio onde as pessoas estão desenvolvendo o indicador de Redes Neurais para o MT4. Na língua russa, desculpe. - eles começaram com alguns e-books e artigos - então alguns arquivos de biblioteca para Delphi 4 (NeuralBase, Neural Network Wizard, GeneBase, SOMBase, WavUtils) - então eles codificaram muitas versões do indicador NeuroProba. mql4 (o autor é Rosh) - então eles Testou e encontrou muitos erros e erros no cálculo. Este tópico ainda não está fechado e parece que eles estão continuando em desenvolvimento (é necessário se registrar no seu fórum para ver os anexos). Além disso, encontrei este link sobre redes neurais (em inglês). Awsome New Digital Ill olha o material em alguns minutos. Tenho que sair do russo ... o que não é tão bom, mas acho que, juntamente com o AltaVista, seria capaz de fazer uma tentativa decente. Estou atualmente codificando no CORTEX em outras redes neurais (NN a partir de agora) e estou planejando converter em MQ4. Eu acho que devemos DEFINATLY manter esse tópico porque (e isso é uma opinião) NN são o futuro da análise técnica. NNs, para aqueles que não são geek o suficiente para saber ... são basicamente algorythms que imitam o cérebro (não nessisariamente o cérebro humano ... então, seria a mente bustingly complicada) em que ele aprende enquanto se passa. Estou escrevendo as EAs para dar conselhos sobre se deve ou não tomar um sinal específico com base em padrões pequenos que vieram antes quando um sinal similar foi dado. Isso é o que a maioria dos NNs fazem, eles pesquisam dados para padrões pequenos que não teriam sentido para nós, nem mesmo outros algoritmos e verão o que esses padrões fazem ao longo do tempo. A primeira EA apresentará Brain Trend. Peço que todos sejam pacientes, porém a codificação CORTEX leva tempo. Em vez disso, é preciso tempo para treinar os NNs e aperfeiçoá-los. Se alguém aqui é familiar com CORTEX ou conversão de código, qualquer ajuda será apreciada. Eu entendo por que o fórum russo seria comercial. NNs são o estilo atual com grandes comerciantes de dinheiro. Assim. O que vocês dizem, eu digo, pegue 2 médias móveis, algumas linhas de suporte e 1 ou 2 filtros e troque se você não conseguir ganhar dinheiro com um sistema simples assim, não espere de algum NN para torná-lo rico dos meus 3 anos de expiração forex Eu sei como eu construo um sistema perfeito, mas será uma codificação longa. Ao menos 3 intervalos de tempo para olhar, cobrindo todas as situações possíveis, alcance, tendência. E, em seguida, juntando alguns sistemas para obter resultados perfeitos, o meu conselho é se você sabe como negociar do que o primeiro comércio, ganhar dinheiro e um dia, quando você fez uma ação, você pode tentar fazer o NN JULGAR, mas a linha de fundo você não precisa de algum NN Para ganhar dinheiro negociando, passei o segundo ano dos meus programas de negociação e testes de sistemas e um dia eu percebi que não estou negociando nenhum deles e muito foi bom, lucrativo. Eu tive que reprogramar meu cérebro para evitar o medo, a ganância. E disciplinar-me (e perder quase 70 da minha conta durante esse período) primeiro encontrar um bom sistema (há vários bons aqui) ganhar dinheiro, aprender e tentar ensinar este NN a trocar este sistema ou simplesmente fazer EA para autotrade para você E quando você faz dinheiro, você pode comprar comercial NN, eu digo tomar 2 médias móveis, algumas linhas de suporte e 1 ou 2 filtros e comércio se você não conseguir ganhar dinheiro com um sistema simples como esse, do que não esperar de algum NN para torná-lo rico A partir dos meus 3 anos de experiência em estrangeiros, eu sei como eu construo um sistema perfeito, mas será uma codificação longa. Ao menos 3 intervalos de tempo para olhar, cobrindo todas as situações possíveis, alcance, tendência. E, em seguida, juntando alguns sistemas para obter resultados perfeitos, o meu conselho é se você sabe como negociar do que o primeiro comércio, ganhar dinheiro e um dia, quando você fez uma ação, você pode tentar fazer o NN JULGAR, mas a linha de fundo você não precisa de algum NN Para ganhar dinheiro negociando, passei o segundo ano dos meus programas de negociação e testes de sistemas e um dia eu percebi que não estou negociando nenhum deles e muito foi bom, lucrativo. Eu tive que reprogramar meu cérebro para evitar o medo, a ganância. E disciplinar-me (e perder quase 70 da minha conta durante esse período) primeiro encontrar um bom sistema (há vários bons aqui) ganhar dinheiro, aprender e tentar ensinar este NN a trocar este sistema ou simplesmente fazer EA para autotrade para você E quando você faz dinheiro com você pode comprar NN comercial. Eu sei o que você quer dizer, eu gasto meses passando por dados históricos para todos os tipos de indicadores e sistemas. E a conclusão é que qualquer um deles poderia fazer pips em qualquer comércio. Tudo o que estou dizendo aqui é que seria bom ter um sistema INDIPENDANT, que funciona de uma maneira diferente para confirmar ou negar o que o seu indicador ou sistema está lhe dizendo. Eu comércio com Brain Trend, MTFMACD, MoneyMap (versão MQ4) e eu bastante bem. Mas ainda seria bom ter esse sistema secundário executado em segundo plano para dizer com base em 15 anos de dados históricos, esse sinal quando ocorreu com este par de moedas, neste período, com esse volume, provou ser não confiável, eu Não consigo aconselhar este comércio. Sim, alguns podem chamar isso de exagero. Mas eu chamo isso de um FOREX pro wathcing sobre meu ombro. Enquanto os seres humanos são criaturas do hábito e continuarem a criar ciclos (de qualquer tamanho), eu argumentaria que isso é o que um FOREX NN bem treinado seria. Eu não chamo esse exagero se isso me impede de perder algumas fichas. Nossas experiências parecem muito parecidas, porém, sou novato. Apenas começando meu segundo ano como comerciante negociando com dinheiro real. Passei os últimos meses passando por indicadores que EU FUI TRABALHADO. E apenas girando minhas rodas ... por medo de fazer negócios ruins. Mas ... Eu acho que é por isso que eu quero desenvolver o NN. Não conhece o medo e responde aos dados do mercado da maneira que nenhum humano pode. Eles podem encontrar significado nos mais pequenos padrões de preços. Coisas que nossos indicadores comuns não podem. Se os indicadores MQ4 são binoculares ... então, o NN é o hubble. Eu acho que vale a pena se desenvolver aqui. Obrigado NewDigital, encontrei uma cópia do neuroproba. Parece interessante. Eu não vejo nenhum erro no arquivo MQ4, mas sem ver o script para o NN, eu não posso dizer se é preciso ou não. Uma razão pela qual as pessoas poderiam ter desistido nisso é que para fazer qualquer coisa, exceto mostrar duas linhas horizontais (uma vermelha e uma amarela, com a versão que eu tenho), você deve definir o número de estudo acima de 100. Eu ajustei-o e entendi Para combinar os sinais que o Brain Trend dá. Essa configuração é 200. Ainda não tenho certeza sobre o aspecto NN desse indicador. Você consegue saber onde uma cópia do arquivo de script para o NN pode estar flutuando em torno de Oh, e o segundo link que você deu é a neve, onde eles falam sobre CORTEX, que é um programa de freeware muito bom para programação de NNs. Obrigado New Digital Junte-se a nós, faça o download do MetaTrader 5 Copyright 2000-2016, MQL5 Ltd. Descrição: Dois Forex - usando a rede de distribuição direta do neurônio indicador (feedforward neaural network), que é aprendendo por propagação de erros de volta (backpropagation). A rede é carregada através de um arquivo DLL, código Csource que está anexado. A rede Neuron não é mais do que um modelo não-linear que resulta em função das entradas. Nas entradas atendidas, os dados do usuário, como as séries temporais da amostra. O significado da saída também é definido pelo usuário, por exemplo, sinais 1 comprar 0 vender. A estrutura da rede, novamente definida pelo usuário. A rede consiste em uma distribuição direta - A camada de entrada (camada de entrada), cujos elementos são entradas, camadas ocultas (camadas ocultas), consistindo de nós computacionais chamados neurônio s e A camada de saída (camada de saída), que consiste em um ou mais Neurônio s, rendimentos são rendimentos em toda a rede. Todos os nós das camadas vizinhas estão ligados. Essas conexões são chamadas de sinapses. Cada sinapse tem um peso (peso w i, j, k), que são multiplicados pelos dados transmitidos pelas sinapses. Os movimentos de dados da esquerda para a direita são entradas da rede para suas saídas. Daí o nome da rede de distribuição direta. A amostra total desta rede está representada na imagem abaixo. Os dados são processados ​​neurônio s em duas etapas: 1. 1. Todas as entradas multiplicadas pelo peso apropriado, você é adicionado 2. 2. Então, a quantidade resultante manipulou a ativação Neurônio de função (função de ativação ou disparo) e (função de ativação ou disparo) e enviado para a única saída. O significado do neurônio da função de ativação como o neurônio do trabalho de modelagem eo cérebro: o neurônio é desencadeado somente após a informação ter atingido um determinado limiar. Nos aspectos matemáticos, ele apenas fornece a rede de não-linearidade. Sem ele, a perda líquida do neurônio seria um modelo autoregressivo linear (modelo de predição linear). O neurônio da função de ativação mais comum é uma função sigmoid f (x) 1 (1exp (-x)) f (x) 1 (1 exp (-x)) O limite de ativação desta função é 0. Esse limite pode ser deslocado No eixo horizontal à custa de um neurônio de entrada adicional (entrada de polarização), e chamado de viés de entrada (entrada de polarização), que é atribuído a um determinado peso da mesma maneira que o outro neurônio de entrada. Assim, o número de insumos, camadas, neurônios em cada camada e os pesos da rede neuronal de neurônios de entrada, ou seja, modelo não-linear, que ele cria. Para usar este modelo, você precisa saber o peso. Os pesos são calculados pela formação da rede em dados passados, ou seja, com quaisquer dados de entrada anteriores, valores conhecidos do sinal de saída. Os pesos da rede são otimizados para combinar sua saída com a solução de teste. Normalmente, as entradas para a rede apresentaram vários conjuntos de entradas e dados de saída correspondentes e desvio de erro médio calculado da saída do teste de rede. A rede de treinamento é para reduzir esse problema ao otimizar os pesos. Existem vários métodos de otimização, entre os quais o caminho principal de propagação de erros (ALO) e o método de melhoria genética. Arquivos anexados: Train () Test (). O arquivo BPNN. cpp da biblioteca contém duas funções: Train () e Test (). Train () é projetado para treinar a rede para fornecer dados de entrada e saída. Test () é para o cálculo de dados de saída com base nos pesos obtidos após a execução do Train (). Parâmetros de entrada (cor verde) e saída (azul) da função Train () são: double inpTrain - input (older first) double outTarget - Imprint (o mais antigo primeiro) double outTrain - sai da rede após o treinamento int ntr - o número de treinamento Conjuntos de input-output int UEW - Gerenciando valores externos de chave para inicializar os pesos (1 use extInitWt, 0 usam números aleatórios) extInitWt - valores originais de pesos double trainedWt - os valores de pesos após treinamento int numLayers - número de camadas na rede Incluindo entrada, oculto e saída int lSz - tamanho da matriz numLayers, que manteve o número de neurônios s em cada camada. LSz0 lSz 0 especifica o número de entradas de rede int OAF - uma característica chave na ativação do neurônio de saída s (1 função habilitada, 0 não) duplo LR - velocidade de treinamento duplo MF - o momento da taxa de aprendizado int nep - o número máximo de Passos de treinamento (épocas). Epoch consiste em verificar todos os conjuntos de treinamento. Duplo maxMSE - erro médio, no qual a aprendizagem pára. Os parâmetros Input (verde) e saída (azul) da função Test () são: double inpTest - dados de entrada (primeiro antigo) double outTest - Imprint int ntt - conjuntos de dados de entrada e saída double extInitWt - valores originais de pesos numLayers - número De camadas na rede, incluindo entrada, oculto e saída int lSz - tamanho da matriz numLayers, que manteve o número de neurônios s em cada camada. L lz 0 especifica o número de entradas de rede int OAF - uma característica chave na ativação do neurônio de saída s (1 função habilitada, 0 não) O uso da ativação do neurônio de saída depende da natureza da saída. Se os sinais de saída da rede forem binomiais (0 1), você deve usar a função de ativação (OAF 1). Se a saída for uma previsão de preço, a função de ativação na camada de saída não é necessária (OAF 0). Exemplos de indicadores utilizados neurônio Rede: BPNN Predictor. mq4 - previsão de preços futuros. Parâmetros de entrada de rede são os incrementos relativos nos preços: x i Abrir a barra de teste Abra o atraso da barra de teste i -1.0 onde atraso eu tirei da série Fibonacci. A produção de rede prevê um aumento relativo dos preços futuros. A função de ativação na camada de saída é desativada. Os parâmetros de entrada são um indicador externo int lastBar - número da última barra extern int futBars - o número de barras futuras previstas extern int numLayers - número de camadas na rede incluindo entrada, oculto e saída extern int numInputs - o número de entradas de rede extern Int numNeurons1 - o número de neurônios s em uma camada número 1 extern int numNeurons2 - o número de neurônios s na camada número 2 extern int numNeurons3 extern int numNeurons4 extern int numNeurons5 extern int ntr - o número de conjuntos de treinamento de entrada-saída extern LR dupla - a velocidade da rede de aprendizado externo duplo MF - coeficiente da rede de aprendizado do tempo extern int nep - o número máximo de etapas de treinamento (épocas) extern int maxMSEpwr - expoente usado para calcular o erro máximo médio permitido tolerando maxMSE 10 maxMSEpwr Buy-Sell Classificator. mq4 - buysell. Buy-Sell Classificator. mq4 - indicador preditivo de comprar sinais de venda. Como no exemplo anterior, a rede de entrada foi servida xiOpentestbarOpentestbardelayi-1.0 x i Barra de teste aberta Abra o atraso da barra de teste i -1.0 para barras, que no passado receberam sinal para comprar ou vender. Estes últimos sinais são ideais como sinais de entrada para obter um lucro determinado. O sinal de saída de rede é 1 ou 0 comprar vender. A função de ativação da camada de saída. External int lastBar - número da última barra extern int minProfit - o lucro mínimo para encontrar o ponto de entrada ideal no último limite externo passado - o limite para reconhecer os sinais de saída como 0 ou 1 extern int numLayers - número de camadas em A rede, incluindo entrada, oculto e saída extern int numInput - o número de entradas de rede extern int numNeurons1 - o número de neurônios s em uma camada número 1 extern int numNeurons2 - o número de neurônios s na camada número 2 extern int numNeurons3 extern int NumNeurons3 extern int numNeurons4 extern int numNeurons4 extern int numNeurons5 extern int ntr - o número de conjuntos de treinamento de entrada-saída (depende do número de sinais de venda de venda no passado, 0 seleciona todos os sinais válidos) extern double LR - a velocidade de aprendizagem Rede externa duplo MF - coeficiente da rede de aprendizado do tempo extern int nep - o número máximo de etapas de treinamento (épocas) extern int maxMSEpwr - expoente usado para calcular o máximo de todos Erro do quadrado médio otimizado maxMSE 10 maxMSEpwr A seta à direita das linhas verdes verticais indica sinais de venda de compra gerados pela rede para testar as futuras barras. As setas à esquerda mostram o ponto de entrada ideal no passado. Instalação de arquivos: Copiar arquivo DLL anexado no C: Arquivos de Programas Bibliotecas de especialistas MetaTrader 4 Permite o uso de DLL no metatrader: Ferramentas - Opções - Consultores Expert - Permitir importações DLL Se o arquivo DLL não funcionar, compile-se. Todos os arquivos necessários estão contidos em BPNN. zip. Hybrid Neural Network Stop-and-Reverse Strategies for Forex por Michael R. Bryant As redes de neurônios foram usadas em sistemas de comércio por muitos anos com vários graus de sucesso. Sua principal atração é que sua estrutura não linear é mais capaz de capturar as complexidades do movimento de preços do que as regras de negociação padrão, baseadas em indicadores. Uma das críticas foi que as estratégias de negociação baseadas na rede neural tendem a ser excessivas e, portanto, não funcionam bem em novos dados. Uma possível solução para este problema é combinar redes neurais com lógica de estratégia baseada em regras para criar um tipo de estratégia híbrida. Este artigo mostrará como isso pode ser feito usando o Adaptrade Builder. Em particular, este artigo irá ilustrar o seguinte: Combinando rede neural e lógica baseada em regras para entradas comerciais Uma abordagem de dados de três segmentos será usada, com o terceiro segmento usado para validar as estratégias finais. O código de estratégia resultante para MetaTrader 4 e TradeStation será mostrado, e será demonstrado que os resultados de validação são positivos para cada plataforma. Redes Neurais como Filtros de Entrada Comercial Matematicamente, uma rede neural é uma combinação não linear de uma ou mais entradas ponderadas que geram um ou mais valores de saída. Para negociação, uma rede neural é geralmente usada de duas maneiras: (1) como previsão de movimento futuro de preços, ou (2) como indicador ou filtro para negociação. Aqui, seu uso como indicador ou filtro comercial será considerado. Como indicador, uma rede neural atua como uma condição ou filtro adicional que deve ser satisfeito antes que um comércio possa ser inserido. As entradas para a rede são tipicamente outros indicadores técnicos, tais como dinâmica, estocástica, ADX, médias móveis e assim por diante, além de preços e combinações dos anteriores. As entradas são dimensionadas e a rede neural é projetada para que a saída seja um valor entre -1 e 1. Uma abordagem é permitir uma entrada longa se a saída for maior ou igual a um valor limiar, como 0,5 e um Entrada curta se a saída for menor ou igual ao negativo do limite, por exemplo, -0,5. Esta condição seria adicional a quaisquer condições de entrada existentes. Por exemplo, se houvesse uma condição de entrada longa, seria verdade e a saída da rede neural teria pelo menos igual ao valor limite para uma entrada longa. Ao configurar uma rede neural, um comerciante normalmente seria responsável por escolher as entradas e a topologia da rede e para quottrainingquot a rede, que determina os melhores valores de pesos. Como será mostrado abaixo, o Adaptrade Builder executa essas etapas automaticamente como parte do processo de compilação evolutiva no qual o software se baseia. O uso da rede neural como um filtro comercial permite que ele seja facilmente combinado com outras regras para criar uma estratégia de negociação híbrida, que combina as melhores características das abordagens tradicionais baseadas em regras e as vantagens das redes neurais. Como um exemplo simples, o Builder pode combinar uma regra de cruzamento média móvel com uma rede neural para que uma posição longa seja tomada quando a média móvel rápida cruza acima da média lenta e a saída da rede neural está em ou acima do seu limite. Estratégias de negociação Stop-and-Reverse Uma estratégia de negociação de parada e reversa é uma que está sempre no mercado, seja longa ou curta. Estritamente falando, quotstop-and-reversequot significa que você inverte o comércio quando sua ordem de parada é atingida. No entanto, uso-o como uma mão curta para qualquer estratégia de negociação que reverta de longo para curto para longo e assim por diante, para que você esteja sempre no mercado. Por esta definição, não é necessário que as ordens sejam pedidos de parada. Você pode entrar e reverter usando pedidos de mercado ou limite também. Também não é necessário que cada lado use a mesma lógica ou mesmo o mesmo tipo de ordem. Por exemplo, você pode inserir longas (e sair em breve) em uma ordem de parada e entrar em curto (e sair por muito tempo) em uma ordem de mercado, usando diferentes regras e condições para cada entryexit. Este seria um exemplo de uma estratégia de parada e inversão assimétrica. A principal vantagem de uma estratégia de parar e reverter é que, sempre no mercado, você nunca perca nenhuma grande jogada. Outra vantagem é a simplicidade. Quando existem regras e condições separadas para entrar e sair de negócios, há mais complexidade e mais que pode dar errado. A combinação de entradas e saídas significa que há menos decisões de temporização, o que pode significar menos erros. Por outro lado, pode-se argumentar que as melhores condições para sair de um comércio raramente são as mesmas para entrar na direção oposta que entrar e sair trades são decisões inerentemente separadas que, portanto, devem empregar regras e lógica separadas. Outra desvantagem potencial de estar sempre no mercado é que a estratégia irá trocar todo o intervalo de abertura. Um grande intervalo de abertura contra a posição pode significar uma grande perda antes que a estratégia seja capaz de reverter. Estratégias que entram e saem mais seletivamente ou que saem ao final do dia podem minimizar o impacto das brechas de abertura. Uma vez que o objetivo é construir uma estratégia forex, o MetaTrader 4 (MT4) é uma escolha óbvia para a plataforma de negociação, dado que o MetaTrader 4 foi projetado principalmente para o forex e é amplamente utilizado para negociar esses mercados (veja, por exemplo, MetaTrader vs. TradeStation : Uma comparação de linguagem). No entanto, nos últimos anos, a TradeStation tem visado os mercados de divisas de forma muito mais agressiva. Dependendo do seu volume de negociação e do seu nível de conta, é possível negociar os mercados cambiais através da TradeStation sem incorrer em taxas de plataforma ou pagar comissões. Spreads são supostamente apertado com boa liquidez nos principais pares de divisas. Por estas razões, ambas as plataformas foram direcionadas para este projeto. Várias questões surgem quando se segmentam várias plataformas simultaneamente. Primeiro, os dados podem ser diferentes em plataformas diferentes, com diferenças em fusos horários, cotações de preços para algumas barras, volume e intervalos de datas disponíveis. Para suavizar essas diferenças, os dados foram obtidos de ambas as plataformas, e as estratégias foram construídas simultaneamente em ambas as séries de dados. As melhores estratégias foram, portanto, as que funcionaram bem em ambas as séries de dados, apesar das diferenças nos dados. As configurações de dados usadas no Builder são mostradas abaixo na Fig. 1. Como pode ser deduzido da tabela de dados do mercado na figura, o mercado Eurodollar forex foi segmentado (EURUSD) com um tamanho de barra de 4 horas (240 minutos). Outros tamanhos de barras ou mercados teriam servido igualmente. Eu só consegui obter tantos dados através da minha plataforma MT4 como indicado pelo intervalo de datas mostrado na Fig. 1 (série de dados 2), então o mesmo intervalo de datas foi usado na obtenção de séries de dados equivalentes da TradeStation (série de dados 1). 80 dos dados foram utilizados para construção (combinado na amostra e quotout-de-samplequot), com 20 (62014 a 21015) reservadas para validação. 80 do 80 original foram então ajustados para quotin-samplequot com 20 set to quotout-of-sample, como mostrado na Fig. 1. O spread da bidask foi fixado em 5 pips, e os custos de negociação de 6 pips ou 60 por lote de tamanho total (100.000 ações) foram assumidos por rodada. Ambas as séries de dados foram incluídas na compilação, conforme indicado pelas marcas de seleção na coluna do lado esquerdo da tabela de dados do mercado. Figura 1. Configurações de dados do mercado para construir uma estratégia forex para MetaTrader 4 e TradeStation. Outro problema potencial ao direcionar várias plataformas é que o Builder foi projetado para duplicar a forma como cada plataforma suportada calcula seus indicadores, o que pode significar que os valores dos indicadores serão diferentes dependendo da plataforma selecionada. Para evitar esta possível fonte de discrepância, todos os indicadores que avaliem de forma diferente no MetaTrader 4 do que na TradeStation devem ser eliminados da construção, o que significa que os seguintes indicadores devem ser evitados: todos os outros indicadores disponíveis para ambas as plataformas são calculados da mesma maneira em Ambas plataformas. A TradeStation inclui todos os indicadores disponíveis no Builder, enquanto o MetaTrader 4 não. Portanto, para incluir apenas indicadores que estão disponíveis em ambas as plataformas, a plataforma MetaTrader 4 deve ser selecionada como o tipo de código no Builder. Isso eliminará automaticamente qualquer indicador do conjunto de compilação que não esteja disponível para MT4, o que deixará os indicadores disponíveis em ambas as plataformas. Além disso, como notei diferenças nos dados de volume obtidos de cada plataforma, removi todos os indicadores dependentes do volume do conjunto de compilação. Por fim, o indicador do horário do dia foi removido devido a diferenças nos fusos horários entre os arquivos de dados. Na Fig. 2, abaixo, a lista de indicadores utilizados no conjunto de compilação é mostrada ordenada por se o indicador foi ou não considerado pelo processo de compilação (quotConsiderquot coluna). Os indicadores removidos da consideração pelos motivos discutidos acima são mostrados no topo da lista. Os indicadores restantes, começando com quotSimple Mov Avequot, faziam parte do conjunto de compilação. Figura 2. Seleções de indicadores no Builder, mostrando os indicadores removidos do conjunto de compilação. As opções de avaliação usadas no processo de compilação são mostradas na Fig. 3. Como discutido, o MetaTrader 4 foi selecionado como a escolha de saída do código. Depois que as estratégias são criadas no Builder, qualquer uma das opções na guia Opções de avaliação, incluindo o tipo de código, pode ser alterada e as estratégias reavaliadas, que também reescreverão o código em qualquer idioma selecionado. Esse recurso foi usado para obter o código da TradeStation para a estratégia final depois que as estratégias foram construídas para o MetaTrader 4. Figura 3. Opções de avaliação no Builder para a estratégia de divisas EURUSD. Para criar estratégias de parar e reverter, todos os tipos de saída foram removidos do conjunto de compilação, conforme mostrado abaixo na Fig. 4. Todos os três tipos de pedidos de entrada - mercado, parada e limite - foram deixados como quotconsiderquot, o que significa que o processo de compilação poderia considerar qualquer um deles durante o processo de compilação. Figura 4. Tipos de pedidos selecionados no Builder para criar uma estratégia de parar e reverter. O software Builder gera automaticamente condições lógicas baseadas em regras para entrada e / ou saída. Para adicionar uma rede neural à estratégia, basta selecionar a opção "Incluir uma rede neural nas condições de entrada" na guia Opções de Estratégia, como mostrado abaixo na Fig. 5. As configurações da rede neural foram deixadas em seus padrões. Como parte da lógica stop-and-reverse, a opção Market Sides foi definida como LongShort, e a opção de quotWait para sair antes de entrar no novo tradequot foi desmarcada. O último é necessário para habilitar a ordem de entrada para sair da posição atual em uma inversão. Todas as outras configurações foram deixadas nos padrões. Figura 5. Opções de estratégia selecionadas no Builder para criar uma estratégia híbrida usando condições de rede baseadas em regras e neurais. A natureza evolutiva do processo de construção no Builder é orientada pela aptidão física. Que é calculado a partir dos objetivos e condições definidos na guia Metrics, como mostrado abaixo na Fig. 6. Os objetivos de construção foram mantidos simples: maximizando o lucro líquido e minimizando a complexidade, que recebeu um pequeno peso em relação ao lucro líquido. Mais ênfase foi colocada nas condições de construção, que incluíram o coeficiente de correlação e significância para a qualidade geral da estratégia, bem como as barras médias nos negócios e o número de negócios. Inicialmente, apenas as barras médias em negociações foram incluídas como condição de construção. No entanto, em algumas das construções iniciais, o lucro líquido foi favorecido ao longo do prazo comercial, de modo que a métrica do número de trades foi adicionada. O intervalo especificado para o número de negócios (entre 209 e 418) é equivalente ao comprimento médio de comércio entre 15 e 30 barras com base no número de barras no período de construção. Como resultado, a adição desta métrica colocou mais ênfase no objetivo de longo prazo, o que resultou em mais membros da população com o intervalo desejado de comprimentos comerciais. Figura 6. Construir objetivos e condições definidos na guia Métricas determinar como a aptidão é calculada. As QuotConditions para Selecionar Estratégias Tops duplicam as condições de compilação, exceto que as principais condições de estratégias são avaliadas em todo o intervalo de dados (não incluindo o segmento de validação, que é separado), em vez de apenas ao longo do período de compilação, como é o caso do Condições de construção. As principais condições de estratégias são usadas pelo programa para deixar de lado quaisquer estratégias que atendam a todas as condições em uma população separada. As configurações finais são feitas na guia Opções de construção, conforme mostrado abaixo na Fig. 7. As opções mais importantes aqui são o tamanho da população, o número de gerações e a opção de redefinição com base no desempenho do quotout da amostra. O tamanho da população foi escolhido para ser grande o suficiente para obter uma boa diversidade na população, enquanto ainda é pequeno o suficiente para construir em uma quantidade razoável de tempo. O número de gerações foi baseado em quanto tempo levou durante algumas compilações preliminares para que os resultados começassem a convergir. Figura 7. As opções de construção incluem o tamanho da população, o número de gerações e as opções para redefinir a população com base no desempenho do quotout de amostra. A opção para quotReset on Out-of-Sample (OOS) Performancequot inicia o processo de compilação após o número especificado de gerações se a condição especificada for atendida neste caso, a população será redefinida se o lucro líquido do quotout de amostra for Menos de 20.000. Esse valor foi escolhido com base em testes preliminares para ser um valor suficientemente alto que provavelmente não seria alcançado. Como resultado, o processo de compilação foi repetido a cada 30 gerações até parar manualmente. Esta é uma maneira de permitir que o programa identifique estratégias com base nas condições de Top Strategies durante um longo período de tempo. Periodicamente, a população Top Strategies pode ser verificada e o processo de compilação é cancelado quando são encontradas estratégias adequadas. Observe que eu coloquei quotout-of-samplequot em citações. Quando o período quotout de samplequot é usado para redefinir a população desta maneira, o período quotout-de-samplequot não é mais verdadeiramente fora da amostra. Desde então, esse período agora está sendo usado para orientar o processo de compilação, efetivamente faz parte do período na amostra. É por isso que é aconselhável reservar um terceiro segmento para validação, conforme discutido acima. Após várias horas de processamento e uma série de reconstruções automáticas, foi encontrada uma estratégia adequada na população Top Strategies. A curva de comércio equitativo fechado é mostrada abaixo na Fig. 8. A curva de equidade demonstra um desempenho consistente em ambos os segmentos de dados com um número adequado de negócios e, essencialmente, os mesmos resultados em ambas as séries de dados. Figura 8. Curva de equidade de comércio fechado para a estratégia de parada e reversa do EURUSD. Para verificar a estratégia durante o período de validação, a data controlada na guia Mercados (ver Fig. 1) foi alterada para a data final dos dados (2112015) e a estratégia foi reavaliada selecionando o comando Avaliar da Estratégia Menu no Builder. Os resultados são mostrados abaixo na Fig. 9. Os resultados de validação na caixa vermelha demonstram que a estratégia foi mantida em dados não utilizados durante o processo de compilação. Figura 9. Curva de equidade do comércio fechado para a estratégia de paragem e reversão do EURUSD, incluindo o período de validação. A verificação final é ver como a estratégia realizada em cada série de dados separadamente usando a opção de saída do código para essa plataforma. Isso é necessário porque, como explicado acima, pode haver diferenças nos resultados, dependendo (1) do tipo de código, e (2) das séries de dados. Precisamos verificar se as configurações escolhidas minimizaram essas diferenças, conforme pretendido. Para testar a estratégia do MetaTrader 4, a série de dados da TradeStation foi desmarcada na guia Mercados e a estratégia foi reavaliada. Os resultados são mostrados abaixo na Fig. 10, que duplica a curva inferior na Fig. 9. Figura 10. Curva de equidade de comércio fechado para a estratégia de paragem e reversão do EURUSD, incluindo o período de validação, para o MetaTrader 4. Finalmente, para testar a estratégia para a TradeStation, as séries de dados da TradeStation foram selecionadas e a série para MetaTrader 4 foi desmarcado na guia Mercados, a saída do código foi alterada para quotTradeStation e a estratégia foi reavaliada. Os resultados são mostrados abaixo na Fig. 11 e parecem ser muito semelhantes à curva do meio na Fig. 9, como esperado. Figura 11. Curva de equidade de comércio fechado para a estratégia de paragem e reversão do EURUSD, incluindo o período de validação, para a TradeStation. O código para ambas as plataformas é fornecido abaixo na Fig. 12. Clique na imagem para abrir o arquivo de código para a plataforma correspondente. Examinar o código revela que a parte baseada em regras da estratégia usa diferentes condições relacionadas à volatilidade para os lados longo e curto. As entradas da rede neural consistem em uma variedade de indicadores, incluindo o dia-semana, a tendência (ZLTrend), o intraday high, osciladores (InvFisherCycle, InvFisherRSI), as bandas Bollinger e o desvio padrão. A natureza híbrida da estratégia pode ser vista diretamente na declaração de código (do código da TradeStation): Se EntCondL e NNOutput gt 0.5 então começar Buy (quotEnMark-Lquot) NShares compartilha próxima barra no mercado A variável quotEntCondLquot representa a entrada baseada em regras Condições, e quotNNOuputquot é a saída da rede neural. Ambas as condições devem ser verdadeiras para colocar a ordem de entrada longa. A condição de entrada curta funciona da mesma maneira. Figura 12. Código de estratégia de negociação para a estratégia de parada e reversa do EURUSD (à esquerda, MetaTrader 4 à direita, TradeStation). Clique na figura para abrir o arquivo de código correspondente. Baixe um arquivo do projeto Builder (.gpstrat) contendo as configurações descritas neste artigo. Este artigo analisou o processo de construção de uma estratégia de rede neural baseada em regras híbridas para o EURUSD usando uma abordagem de parada e inversa (sempre no mercado) com o Adaptrade Builder. Foi mostrado como o código da estratégia pode ser gerado para múltiplas plataformas, selecionando um subconjunto comum dos indicadores que funcionam da mesma maneira em cada plataforma. As configurações necessárias para gerar estratégias que se revertem de longo para curto e para trás foram descritas, e foi demonstrado que a estratégia resultante foi realizada de forma positiva em um segmento separado de validação de dados. Verificou-se também que a estratégia gerou resultados semelhantes com a opção de dados e código para cada plataforma. Conforme discutido acima, a abordagem de parada e reversa tem várias desvantagens e pode não atrair a todos. No entanto, uma abordagem sempre no mercado pode ser mais atraente com os dados de divisas porque os mercados de divisas são comercializados 24 horas por dia. Como resultado, não há lacunas de abertura de sessão e as ordens de negociação sempre estão ativas e disponíveis para reverter o comércio quando o mercado muda. O uso de dados intradía (barras de 4 horas) proporcionou mais barras de dados para uso no processo de compilação, mas foi de outra forma bastante arbitrário, na medida em que a natureza sempre dentro do mercado da estratégia significa que os negócios são transportados durante a noite. O processo de compilação permitiu desenvolver diferentes condições para inserção longa e curta, resultando em uma estratégia assimétrica de parada e inversão. Apesar do nome, a estratégia resultante entra em negociações longas e curtas em ordens de mercado, embora as ordens de mercado, parada e limite fossem consideradas pelo processo de construção de forma independente para cada lado. Na prática, a reversão de longo a curto significaria vender curto o dobro do número de ações no mercado, já que a estratégia era longa, e. Se a posição longa atual fosse de 100.000 ações, venderia 200.000 ações no mercado. Da mesma forma, se a posição curta atual fosse de 100.000 ações, você compraria 200.000 ações no mercado para reverter de curto para longo. Foi utilizado um histórico de preços mais curto do que seria ideal. No entanto, os resultados foram positivos no segmento de validação, sugerindo que a estratégia não estava em excesso. Isso apóia a idéia de que uma rede neural pode ser usada em uma estratégia de negociação sem necessariamente uma adaptação excessiva da estratégia ao mercado. A estratégia apresentada aqui não se destina a negociação real e não foi testada em rastreamento ou negociação em tempo real. No entanto, este artigo pode ser usado como um modelo para desenvolver estratégias similares para o EURUSD ou outros mercados. Como sempre, qualquer estratégia de negociação que você desenvolver deve ser testada completamente no rastreamento em tempo real ou em dados separados para validar os resultados e familiarizar-se com as características de negociação da estratégia antes da negociação ao vivo. Este artigo apareceu na edição de fevereiro de 2015 do boletim informativo Adaptrade Software. OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INERENTES. SEM ENCONTRO UM REGISTRO DE DESEMPENHO REAL, RESULTADOS SIMULADOS NÃO REPRESENTAM NEGÓCIO REAL. TAMBÉM, DESDE QUE OS NEGÓCIOS NÃO SEJAM REALMENTE EXECUTOS, OS RESULTADOS PODEM TENER SOB OU COMENTÁRIOS COMPLEMENTARES PARA O IMPACTO, SE HAVER, DE CERTOS FATORES DE MERCADO, TAL COMO FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL SÃO TAMBÉM SUJEITOS AO FATO QUE ESTÃO DESIGNADOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ FAZENDO QUE QUALQUER CONTA VOCE OU POSSIBILIDADE DE ALCANÇAR LUCROS OU PERDAS SIMILARES ÀOS MOSTRADOS. Se você gostaria de ser informado de novos desenvolvimentos, novidades e ofertas especiais do Adaptrade Software, por favor, junte-se à nossa lista de e-mail. Obrigado.

No comments:

Post a Comment