Forex nn
Estratégias de Stop-and-Reverse da Rede Neural Híbrida para Forex.
por Michael R. Bryant.
As redes de neurônios têm sido utilizadas em sistemas de negociação 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 de comércio.
Segmentação múltipla de plataformas simultaneamente (MetaTrader 4 e TradeStation)
Desenvolvendo uma estratégia com lógica de parada e inversa assimétrica.
Usando dados forex intraday.
Será utilizada uma abordagem de dados de três segmentos, 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 gera 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, será usado como indicador ou filtro comercial.
Como um indicador, uma rede neural age como uma condição ou filtro adicional que deve ser satisfeito antes que uma troca possa ser inserida. As entradas para a rede normalmente são outros indicadores técnicos, tais como dinâmica, estocástica, ADX, médias móveis, etc., bem como 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 uma 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, teria que ser verdadeira e a saída da rede neural teria que ser 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 "treinamento" 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. Usar a rede neural como um filtro de comércio permite que ele seja facilmente combinado com outras regras para criar uma estratégia de negociação híbrida, que combine 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 de modo 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, "stop-and-reverse" 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 reverte 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 entrar em um período longo (e sair curto) em uma ordem de parada e digitar curto (e sair por muito tempo) em uma ordem de mercado, usando diferentes regras e condições para cada entrada / saída. 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 podem dar errado. A combinação de entradas e saídas significa que há menos decisões de tempo, 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, deveriam 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 comercializar esses mercados (veja, por exemplo, MetaTrader vs. TradeStation : Uma comparação de linguagem). No entanto, nos últimos anos, a TradeStation segmentou os mercados de divisas de forma muito mais agressiva. Dependendo do seu volume de negociação e / ou nível da conta, é possível negociar os mercados de divisas 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 ao direcionar várias plataformas simultaneamente. Primeiro, os dados podem ser diferentes em diferentes plataformas, com diferenças em fusos horários, cotações de preços para algumas barras, volume e faixas de datas disponíveis. Para suavizar essas diferenças, os dados foram obtidos de ambas as plataformas, e as estratégias foram construídas em ambas as séries de dados simultaneamente. 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 se pode inferir da tabela Market Data na figura, o mercado de Forex Euro / dólar foi segmentado (EURUSD) com um tamanho de barra de 4 horas (240 minutos). Outros tamanhos de barras ou mercados teriam servido também. 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 nº 2), de modo que o mesmo intervalo de datas foi usado na obtenção de séries de dados equivalentes da TradeStation (data series # 1). 80% dos dados foram utilizados para construção (combinado na amostra e "fora da amostra"), com 20% (6/20/14 a 2/10/15) reservado para validação. 80% dos 80% originais foram então ajustados para "na amostra" com 20% definido para "out-of-sample", & quot; como mostrado na Fig. 1. O spread de oferta / solicitação foi fixado em 5 pips, e os custos de negociação de 6 pips ou US $ 60 por lote completo (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 da esquerda 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 compilação, o que significa que os seguintes indicadores devem ser evitados:
Slow D estocástico.
Fast estocástico D.
Todos os outros indicadores que estão disponíveis para ambas as plataformas são calculados da mesma maneira em ambas as plataformas. O TradeStation inclui todos os indicadores que estão 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 ("Considere" coluna). Os indicadores removidos da consideração pelos motivos discutidos acima são mostrados no topo da lista. Os indicadores restantes, começando com "Simple Mov Ave", foram todos 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. Conforme 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 criadas para o MetaTrader 4.
Figura 3. Opções de avaliação no Builder para a estratégia forex EURUSD.
Para criar estratégias de parada e reversão, todos os tipos de saída foram removidos do conjunto de compilação, conforme mostrado abaixo na Figura 4. Todos os três tipos de pedidos de entrada - mercado, parada e limite - foram deixados como "considerar" , o que significa que o processo de compilação poderia considerar qualquer um deles durante o processo de compilação.
Figura 4. Tipos de ordem selecionados no Builder para criar uma estratégia de parada e reversão.
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 de rede neural foram deixadas em seus padrões. Como parte da lógica stop-and-reverse, a opção Market Sides foi definida para Long / Short e a opção para "Wait for exit before enter new trade". estava desmarcado. 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, que é calculada a partir dos objetivos e condições definidos na guia Metrics, conforme mostrado abaixo na Figura 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 a quantidade 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 negociações foi adicionada. O intervalo especificado para o número de trades (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 compilaçã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étrica determinar como a aptidão é calculada.
As "condições para selecionar estratégias superiores" duplicar as condições de compilação, exceto que as principais condições de estratégias são avaliadas em toda a gama 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 das 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 Configurações de Configuração, como mostrado abaixo na Figura 7. As opções mais importantes aqui são o tamanho da população, o número de gerações ea opção para redefinir com base no "out-of-sample" desempenho. 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 em "out-of-sample" desempenho.
A opção para & quot; Reset on Out-of-Sample (OOS) Performance & quot; 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 "out-of-sample" O lucro líquido é inferior a US $ 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 coloco "out-of-sample" entre citações. Quando o "fora da amostra" O período é usado para redefinir a população desta maneira, a "saída de amostra" O período não é mais verdadeiramente fora da amostra. Uma vez que esse período agora está sendo usado para orientar o processo de compilação, é efetivamente parte do período de exibição. É 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, uma estratégia adequada foi encontrada na população Top Strategies. A curva de equidade comercial fechada é mostrada abaixo na Figura 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 paragem e reversão do EURUSD.
Para verificar a estratégia durante o período de validação, a data controlada na guia Mercados (veja a Fig. 1) foi alterada para a data final dos dados (2/11/2015) e a estratégia foi reavaliada selecionando a opção Avaliar comando no menu Estratégia no Builder. Os resultados são mostrados abaixo na Fig. 9. Os resultados de validação na caixa vermelha demonstram que a estratégia mantida em dados não utilizados durante o processo de compilação.
Figura 9. 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.
A verificação final é ver como a estratégia realizada em cada série de dados separadamente usando a opção de saída de 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, a série de dados da TradeStation foi selecionada e a série para o MetaTrader 4 foi desmarcada na aba Mercados, a saída do código foi alterada para "TradeStation", "quot; 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, conforme 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 de 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çarem.
Compre (& quot; EnMark-L & quot;); NShares compartilha a próxima barra no mercado;
A variável "EntCondL" representa as condições de entrada baseadas em regras, e "NNOuput & quot; é o resultado 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.
Este artigo analisou o processo de construção de uma estratégia de rede baseada em regras híbridas / neural para o EURUSD usando uma abordagem stop-and-reverse (sempre no mercado) com o Adaptrade Builder. Foi mostrado como o código da estratégia pode ser gerado para várias 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 positivamente 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 parar e reverter 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 evoluir diferentes condições para inserção longa e curta, resultando em uma estratégia de parada e inversão assimétrica. 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; por exemplo, se a posição longa atual fosse de 100.000 ações, você venderia 200.000 ações curtas 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 usado 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 comercial sem necessariamente superar a estratégia para o 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 o desenvolvimento de 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 do Adaptrade Software.
OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INERENTES. DESEJO UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO 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 VÁ OU SEJA PROBABILITÁVEL PARA ALCANÇAR LUCROS OU PERDAS SIMILARES ÀOS MOSTRADOS.
Se você quiser ser informado de novos desenvolvimentos, novidades e ofertas especiais do Adaptrade Software, por favor, junte-se à nossa lista de e-mail. Obrigado.
Copyright © 2004-2015 Adaptrade Software. Todos os direitos reservados.
Forex NN & # 8211; Nova rede.
Aprenda as melhores técnicas de negociação Forex para comerciantes.
Candle MT4 Free.
& # 8220; Que o mouse do computador já foi construído no MT4.
Se você passar do mouse do computador (e reter o mouse do computador no topo), o encerramento da cobrança por uma vela que está fechada, ele irá exibir essa informação da OHLC para qualquer Vela certa junto com O dia em que a idéia começou com o som.
Clique aqui para baixar GRATUITAMENTE uma NOVA ferramenta e estratégia de negociação.
Se você acontecer com o mouse do computador acima da carga atualizada relativa ao orifício de irrigação que nem necessariamente, no entanto, fechou e apoiava a verdade verdadeira da verdade, ele vai exibir a informação idêntica para qualquer aguarela atualizada. Estes geralmente são exibidos dentro de uma porta ocular pop-up de tamanho pequeno a médio, que geralmente controla as proporções da mesma, independentemente da quantidade de movimento relacionada ao gráfico ou gráfico atualizado.
Procure precisamente o que você precisava. Talvez possivelmente não tenha necessariamente visto alguns outros & # 8220; & # 8221; add-ons & # 8221; & # 8221; que o seguinte, no entanto, # 8230; eles podem estar disponíveis em um lugar. & # 8221;
4Hr Box Breakout Free.
Eu testemunhei métodos de 4Hr Box Breakout para uma base diária, juntamente com todas as semanas. Nunca presenciei um indivíduo, como um indivíduo, então estou com a intenção de atualizar.
Obtenha algum tipo de caixa relatando que a maioria da vela 4Hr principal (00: 00) nos 7 dias, juntamente com o pequeno e depois um fluxo com 20 pips com quase todos os aspectos.
Que 7 dias começarão no disponível no compromisso estrangeiro.
Apenas possuímos um centavo para qualquer período de tempo, as pessoas vêm com o procurado, que muitas vezes a luz de cera pode ser ... como eu provavelmente não deveria negociar câmbio para produzir lucros. Para qualquer indivíduo que possa inquirir, fique atento a muitas dessas recomendações.
Clique aqui para baixar GRATUITAMENTE uma NOVA ferramenta e estratégia de negociação.
Obtenha um excelente estágio FXDD. Mídia de massa Ctrl + y para um gráfico ou gráfico de 4Hr. Marks pode aparecer surpreendentemente com o início de cada 7 dias, a luz principal de cera 4Hr deve estar em jogo. Esta pode ser a luz de cera que você escolhe para qualquer excesso em conjunto com Small.
Caixa fornecendo circunstâncias:
GMT - vinte e um: 00 para ajudar 01: 00.
EDT: dezessete: 00 para ajudar vinte e um: 00.
FXDD período de tempo: 00: 00 para ajudar & # 8217; 04: 00.
DON & # 8217; T pergunte se as versões do intervalo de água, é claro, se a idéia desligar, uma vez que ele acabou desmarcou várias circunstâncias. Como diariamente no caso de o reservatório aquecer. Se você não for necessariamente capaz de desencadear-se. Por isso, lembre-se e espere por uma única semana no que diz respeito ao meu próprio artigo, no caso de o reservatório aquecer em comparação com este produto não é realmente para suas necessidades.
Peço desculpas, no entanto, pode-se simplesmente chegar ao esforço do lugar que a maioria das pessoas questiona a cada vez.
Alguns agentes imobiliários começaram a trabalhar sessenta minutos mais cedo nesse caso FXDD e no futuro. Se acontecer que o orifício de irrigação primário 4Hr cai com 00: 00 GMT, naquele caso que não é a luz de cera adequada. A coisa boa a empreender pode ser obter um excelente estágio de teste do FXDD junto com empregos que irão desde benchmark.
: Encontre um fluxo com 10-20 pips com quase todos os terminais com luz de cera.
: Compre com maior destruição com cada semana Caixa (incluindo buffer + spread)
: Distribua com redução destruída a cada semana Caixa (incluindo buffer)
Revisão em Leitura de Gráficos de preços.
Mesmo que o know-how tecnológico inovador e as hipóteses intrincadas assegurem a atenção para aqueles que tratam de ajudar o estágio seguinte, a realidade é que o sucesso financeiro a longo prazo desta disciplina geralmente está sentado com conveniência. Clients Ing Brooks gerou o Egito do Watering hole, apenas por Watering hole.
Clique aqui para baixar GRATUITAMENTE uma NOVA ferramenta e estratégia de negociação.
Com este folheto particular, Brooks - especialista especializado no que diz respeito ao jornal Futures e um comerciante imparcial - demonstra com precisão a forma como o teste de medidas de carga para ajudar a criar gráficos ou sinais gráficos pode certamente ajudar a aumentar os dividendos e diminuir o risco associado. No processo, você verá que o benefício com a compreensão de quase todos os aguarelas para um gráfico de carga ou gráfico, como é que alguns sinais geralmente são configurações bem executadas no que diz respeito à negociação, e como obter conexão e parar Pontos, pois os mercados são geralmente lidando instantaneamente.
Trendlines e marcas de abordagem de fenômenos.
Anteriormente altitudes e níveis.
Surtos e brotes desfavorecidos.
O comprimento das formas do corpo e as caudas com as velas.
Seu vínculo referente a degraus atualizados para ajudar anteriormente os degraus.
Buysell 2.0 Tpl.
Quando entre a lista de sinais indicados assinar algum tipo de sinal de compra / venda, a próxima coisa é determinar um tipo de objetivo de carga tática. Um meio individual bem conhecido para selecionar um objetivo pode ser aumentar pode estar contente dentro de uma tendência de superpopulação e ajudar a aumentar esse número de telefone por meio das proporções de contêiner (o número mínimo de carga que deve aparecer para obter um intervalo oferecido antes de um ótimo botão Voltar e U é geralmente usado com esse gráfico).
Clique aqui para baixar GRATUITAMENTE uma NOVA ferramenta e estratégia de negociação.
Por exemplo, e muitas vezes descobrem no gráfico ou no gráfico seguinte, algum tipo de comprador pode ver que essa tendência geralmente é de 6-8 de conteúdo grande, e praticamente todos os contêineres conhecem algum tipo de switch com 0. 50. Esse objetivo de US $ 3 para Para esta finalidade, o interruptor é maior do que o fumo de segunda mão pelo problema com alguns, criando um negócio elegante.
Figura ilustra adicionalmente o emprego de P & # 038; F sinais para uma abordagem de negociação. Algum tipo de parte inferior de aumento A transmissão de venda geralmente é oferecida na proximidade de US $ 18. As pessoas podem muito bem agir com a transmissão, apenas encerrando posturas mais longas, vendendo a curto prazo e comprando soluções. Para começar, as pessoas devem procurar fechar posturas mais longas caso o gráfico ou gráfico P & # 038; F seja normalmente para uma transmissão de venda. Esse gráfico ou gráfico foi organizado para filtrar o som do setor, e geralmente é provável que exiba modificações dentro dos fenômenos de forma confiável. Algum tipo de comprador é geralmente pessoas que tentam obter vendas instantâneas, e deveriam possuir cargas que estavam com tendências elevadas.
Comprar Vender Indicador 100 Preciso.
& # 8220; Várias opções de compra de cristal claro escritas independentemente acima da primavera e da bobina juntamente com o verão com 2001. Existem vários Indicadores de Vendas que irão escrever o interesse com pessoas de curto prazo. Essa transmissão de compra robusta com antecedência em setembro pode ter oferecido a cada uma dessas pessoas junto com as pessoas um excelente trabalho de 12 dias, para incluir esse meio de US $ 30. 00 vizinhança ao seu meio $ 50. 00 vizinhança.
Clique aqui para baixar GRATUITAMENTE uma NOVA ferramenta e estratégia de negociação.
O presente trabalho dentro da commodity começou, o que inclui uma transmissão de venda robusta, apenas um par de semanas de volta. No entanto, a transmissão da Buy foi uma forma de falsificação de começar, há provas de que, muito possivelmente, com muitas dessas circunstâncias do setor desafiador em linha,
Andrew Cardwell Rsi Book Pdf.
Que o RSI desempenha o seu papel de vez em quando de uma forma que sugere que os preços de venda se recuperem de uma parte.
Saúde da sua antes mudar muito rapidamente. Assim que ocorrer o seguinte, essas pessoas mais rápidas.
superar-se independentemente dentro do retracement. Quando os preços de venda de um gráfico ou gráfico de 5 minutos foram.
reunir-se dentro de uma tendência de alta robusta, juntamente com as pessoas de 5 minutos, cresceram em excesso, os preços de venda provavelmente começarão a retracionar a maior parte da transferência anterior para algum tipo de contra-tendência no seu problema.
Clique aqui para baixar GRATUITAMENTE uma NOVA ferramenta e estratégia de negociação.
No entanto, uma vez que os preços de venda avançam reduzidos, podemos acabar sobrecarregados como resultado de 1:
pessoas de quadros instantâneos. Como o RSI pode ser um indicador de tração realmente delicado principalmente,
A idéia pode descobrir muitos desses recortes histéricos sobrecarregados.
No caso de o retracement de RSI ser maior do que o ótimo e a velocidade anterior, juntamente com a carga, vem com.
não necessariamente ultrapassou o ótimo e o melhor da época, ele é chamado de algum tipo de mudança de disparidade de tração.
Questão. Andrew Cardwell identificou a seguinte tendência e agora condicionou várias pessoas.
maneiras de conhecer junto com empregar a seguinte tendência em sua abordagem de negociação global. & # 8221;
& # 8220; 10 Pips enquanto eu durmo "By Karl Dittmann.
Eu adquiri um número de suas soluções, juntamente com todos, realmente não valem praticamente nada.
Juntamente com ele ou ela está fornecendo alguns (ou provavelmente muito possivelmente todos) sinais que muitas vezes estão à venda para 100% livre dentro da world-wide-web, ele ou ela está simplesmente usando várias opções. Ele ou ela é uma espécie de falhanço e está ganhando lucros com os funcionários da sellling que são 100% gratuitos. O seu padrão aBB geralmente não é praticamente melhor em comparação com Prime Phenomena Guage usando as opções 5/3. Um substituto com o que significa que chamados de sinais fantásticos é um Incline Guidance Sections que também é 100% livre dentro da world-wide-web.
Clique aqui para baixar GRATUITAMENTE uma NOVA ferramenta e estratégia de negociação.
Depois de um tempo, possivelmente poderia investir em conjunto com várias amostras com as soluções da Karl Dittmann & # 8217; especificamente & # 8201; 7h para ajudar 9am Processo de câmbio; Troca de câmbio 7 processos de estratégia instantânea; Câmbio organizado em conjunto com o sistema de falha & # 8221; & # 8221; juntamente com o & # 8220; & # 8221; Forex Strategy Signs Alert & # 8221; & # 8221 ;, que promete às pessoas que cada um geralmente é um desperdício definitivo. Eu posso ser apenas o meu descuido para possuir maneira feita para ele ou ela para ajudar a apreciar as pessoas sendo uma muck ao redor, no entanto, a intenção de que a avaliação pode parar alguma outra pessoa com a perda de seu lucro. Além disso, apague a memória de seus & # 8220; & # 8221; 100% Reembolso & # 8221; & # 8221; cobertura de seguro, uma vez que isso não existe.
Bata o Market Maker Forex Indicator Free Download.
Bata os scripts personalizados do Market Maker Forex juntamente com os Indicadores são geralmente codificados em relação ao estágio MT4 juntamente com completo sem a necessidade de mudança usando MIG (Monsour Expense Group). No entanto, agora temos um número infinito de pessoas que aplicam vários, vários agentes imobiliários. portanto, alguns trabalham com uma conta bancária de teste MIG usando o estágio MT4 para realizar a sua traçabilidade juntamente com o estudo, no entanto, posicionar o negócio real através do serviço de corretagem diversos, juntamente com o estágio.
Clique aqui para baixar GRATUITAMENTE uma NOVA ferramenta e estratégia de negociação.
Você precisa escolher a familiarização abrangente com o estágio MT4 para que esse processo seja correto e você deve completar o seu melhor para ajudar a obter o seguinte know-how ADICIONAL de freqüentar algum tipo de caminho BTMM Forex (onde você vai se condicionar o processo, não necessariamente a plataforma). Para educar-se no palco, as pessoas propõem:
Precisa de um PC e eu vou empregar um excelente laptop da empresa Apple?
Neuro Indicator Technical Analysis.
Hoje, verifique quais freqüentemente o Indicador é bem sucedido, que inclui uma mercadoria confiante junto com uma determinada questão do setor. É quase impossível executar um teste nas várias opções diferentes. Aumente, assim, a qualidade do período de tempo entrevistando o gráfico juntamente com a produção de modificações para ajudar os Indicadores no que diz respeito ao ajuste das circunstâncias do setor. Muito tempo necessário, possivelmente possivelmente atividades muito melhores todas as noites que serão decifrando, entrevistando junto com o gráfico de atualização para sempre.
Clique aqui para baixar GRATUITAMENTE uma NOVA ferramenta e estratégia de negociação.
É o lugar dos órgãos do nervo. O know-how tecnológico de vários níveis pode ser comprado para ajudar a aproveitar. Os seguintes programas de software levarão a maior parte da informação do negócio para um intervalo oferecido (O, Eles, M, J, V), expande muitos indicadores técnicos, juntamente com figuras deltas em relação ao feedback de informações. Ao instalar essas informações históricas, depois disso, descobre junto com sinais de tentativas dentro da commodity contingente em 1000s de misturas na informação de feedback. A idéia ignora o que frequentemente os conselhos não devem ter algum tipo de link para a sua produtividade e funções que conselhos que muitas vezes, de imediato, têm um impacto no resultado final do produto.
A aplicação nesse caso produz sinais em relação a adquire, fornece, assegura e é imparcial desta abordagem descoberta. Pode este produto apresentar-lhe 100% de negociação adequada, nunca! Pode apresentar-lhe um benefício acima da maneira padrão de aplicar a Análise Técnica em conjunto com o período de tempo, SEM DÚVIDA! & # 8221;
Alert Breakout MT4.
O dia do WatchList Day tem uma conta atualizada.
- O acesso instantâneo para uma mercadoria sucinta ver lista de verificação que diariamente contém diariamente o EPS excessivo preferido, juntamente com RS sentado carrega, que muitas vezes pareceu ajustado para ajudar Breakout.
Clique aqui para baixar GRATUITAMENTE uma NOVA ferramenta e estratégia de negociação.
Breakouts compráveis de hoje.
- Uma lista de excesso de sentar EPS em conjunto com o RS carrega, que agora estavam disponíveis, juntamente com a venda de sinais.
- Caixa de entrada em tempo real Alertas com carregamentos no Commodity Veja Checklist que está a ser dividido disponível juntamente com a venda de sinais de compra. & # 8221;
Forex nn
Encontre freelancers - publique um projeto similar ao / Astro Nn Indicator. (OU, se você é Freelancer, lance, é GRÁTIS).
No meio do tópico eles codificaram arquivos de biblioteca para 3 tipos de NN (esses arquivos de biblioteca estão prontos para usar para indicadores e EAs), alguns indicadores NN de amostra (mql4 ...
O NNEA Trend Predictor PRO usa uma técnica de inteligência artificial de última geração chamada redes neurais e # 8221; para prever o comportamento do global ...
Indicador MT4 (NN Trend Predictor PRO) - Forex-Shop. Indicador MT4 (NN Trend Predictor PRO) - Forex-Shop - Baixe agora - Sistemas Forex, livros, indicadores, EA, Scripts ...
Forex Indicators Download & # 8211; Instruções.
NN é um indicador Metatrader 4 (MT4) e a essência do indicador forex é transformar os dados de histórico acumulados.
NN prevê uma oportunidade para detectar várias peculiaridades e padrões de dinâmica de preços que são invisíveis a olho nu.
Com base nessa informação, os comerciantes podem assumir novos movimentos de preços e ajustar sua estratégia em conformidade.
Faça o download do NN. mq4 Copiar NN. mq4 para o seu Diretório Metatrader / especialistas / indicadores / Inicie ou reinicie o seu Metatrader Client Selecione o Gráfico e o Quadro de tempo onde deseja testar seu indicador Pesquisar & # 8220; Indicadores Personalizados & # 8221; em seu Navegador na maior parte deixado em seu Cliente Metatrader Clique direito em NN. mq4 Anexe a um gráfico Modifique as configurações ou pressione ok O indicador NN. mq4 está disponível no seu Gráfico.
Como remover NN. mq4 do seu Metatrader 4 Chart?
Selecione o Gráfico onde está o Indicador em execução no Cliente Metatrader Clique com o botão direito na Lista de Indicadores & # 8220; Indicadores & # 8221; Selecione o Indicador e exclua.
Baixar Metatrader 4 Trading Platform:
$ 30 grátis para iniciar a negociação instantaneamente Nenhum depósito exigido automaticamente creditado à sua conta sem termos ocultos.
SnowCron.
FREE E. Mail Classes.
Neste artigo: um exemplo de uso do nosso software Neural Networks para criar um sistema completo de negociação de rede neural.
Este exemplo usa a linguagem de script incorporada do Cortex, então leia o guia de linguagem de script primeiro.
Usando Redes Neurais para criar Estratégia de Negociação FOREX.
Neste tutorial on-line gratuito, você encontrará o "ciclo completo" do uso de redes neurais (Cortex Neural Networks Software) para negociação Forex (ou negociação no mercado de ações, a idéia é a mesma).
Você aprenderá como escolher entradas para as redes neurais artificiais e como decidir o que usar como saída.
Você encontrará um exemplo de um script pronto para usar que permite a realização de otimização de redes neurais tanto da estrutura da Rede Neural (número de neurônios) quanto do sistema de negociação forex (stop loss etc.)
Finalmente (a parte que não está presente na maioria dos tutoriais), você aprenderá o que fazer a seguir. Afinal, o Cortex Neural Networks Software não pode fazer negócios em tempo real, você precisa usar algo como Trade Station, MetaQuotes ou MetaTrader. Como transportar o sistema de negociação FOREX do Cortex para sua plataforma de negociação favorita? Você precisa lidar com DLLs, controles ActiveX e programação de baixo nível? A resposta é não.
O software Cortex Neural Networks vem com o recurso fácil de usar que permite que você porta facilmente a rede Neural resultante (treinada) para a linguagem de script da sua plataforma de negociação. Sem DLLs, DDE, ActiveX ou quaisquer outras soluções de baixo nível - tudo é simples e simples.
Nota importante: este NÃO é um tutorial "como negociar". Em vez disso, ele diz como usar o software Cortex Neural Networks, mas você ainda precisa inventar seu próprio sistema comercial. Aquele que usamos aqui é apenas um ponto de partida, e não deve ser usado como uma estratégia de negociação forex "tal como está". A idéia deste texto é ensinar você a criar sistemas de negociação baseados em NN e a portá-los para a plataforma de negociação de sua escolha. O exemplo é, no entanto, ovesimplificado, e só pode ser usado como ilustração dos princípios de negociação. Da mesma forma, o sistema de negociação MACD, que pode ser encontrado em muitos tutoriais, já não está funcionando bem (à medida que os mercados mudaram), mas ainda é um bom exemplo de usar indicadores para negociação mecânica.
Em duas palavras: faça sua própria análise.
Outra nota importante: o tutorial usa exemplos, muitos deles. Para tornar sua vida mais fácil, incluí todos eles, não apenas fragmentos. No entanto, torna o texto muito mais longo. Além disso, eu estou indo do primeiro, desajeitado, sistema de negociação forex, para mais avançado, explicando sempre o que foi melhorado e por quê. Seja paciente ou salte diretamente para a seção que você precisa.
Nota importante final: o código não é algo esculpido em pedra, ele pode mudar enquanto este texto foi escrito. As versões finais dos arquivos de script estão incluídas no arquivo Cortex.
Armadilhas de sinais FOREX BUY / SELL: O que há de errado com exemplos "simples"?
No guia do usuário do Cortex Neural Networks Software, usamos um exemplo simples de uma Rede Neural Física, prevendo o preço do estoque GENZ. Para descobrir o que é errado com esta abordagem, vamos fazer o mesmo exemplo "simples", usando MSFT. TXT, em vez do GENZ. TXT (use 800 registros no conjunto de aprendizado, como MSFT. TXT é um pouco mais curto, então GENZ. TXT).
Simplesmente não funcionaria! Por quê?
O motivo se tornará evidente, se você se perguntar: "Qual é a razão pela qual a previsão da rede neural de valores futuros pode ser feita primeiro?"
A resposta é: é aprender a fazer o que é chamado de reconhecimento de padrões de redes neurais, reconhecer padrões e, se houver uma lógica oculta nesses padrões, então mesmo um novo padrão (com a mesma lógica) será reconhecido.
Isso é um truque - "com a mesma lógica". Não há nem um, mas três problemas aqui.
Em primeiro lugar, se você olhar para o preço das ações da Microsoft, você notará que estava indo na parte "de aprendizado" de nossos dados e de lado - na parte de "teste". Portanto, é possível que a lógica tenha mudado.
Em segundo lugar, e ainda mais importante - QUAL É O TESTE PADRÃO? Você vê, se ensinamos a rede neural no intervalo de 10 a 100, e depois apresentamos algo na faixa de 1 a 3 - eles são padrões diferentes! 10, 20, 30 e 1, 2, 3 parecem semelhantes ao humano porque - PORQUE - temos essa capacidade de dividir por dez, quando apresentado com números que terminam com zero. É o que é chamado de pré-processamento dos dados e, por padrão, o NN não pode fazê-lo.
Podemos ensiná-lo? Claro. O que é EXACTAMENTE nós precisamos ensiná-lo?
Este é o terceiro e o mais importante. Não precisamos da previsão de preços! Nós não ligamos! O que precisamos é FOREX comprar sinais de venda.
Agora, espere um minuto! Nós precisamos de um) para ter nossa contribuição (aprendendo e testando) no mesmo intervalo e precisamos b) poder tomar decisões comerciais com base nela? Não é o que chamamos de indicador? Bingo?
Então, é o que vamos fazer - vamos construir um indicador, alimentá-lo ao NN como uma entrada, e tentaremos obter uma previsão do valor do indicador, e não o preço do estoque sem valor!
Em nosso primeiro exemplo, vamos carregar cotações de estoque do disco, abrir o arquivo de Rede Neural e iniciar a aprendizagem - tudo em um modo automatizado.
Crie um novo arquivo de script (ou abra o que veio com o arquivo Cortex Neural Networks Software) e ligue para stock_nn. tsc.
Antes de mais, precisamos baixar os valores de preço do arquivo MSFT. TXT. Nós vamos usar o indicador CLV (veja abaixo), mas para calcular, precisamos de valores ajustados por divisão para Alto e Baixo, não apenas para fechar. Aqui é como obtê-los.
stocks_nn. tsc, parte 1.
A primeira linha atribui o caminho para a variável strStockPath, é claro, você terá que editá-la, se seu arquivo de dados estiver localizado no diretório diferente.
Na segunda linha, especificamos que esse caminho não é relativo (o "relativo" à localização do arquivo Cortex. exe).
O TABLE_LOADER recebe o caminho, a seqüência vazia para a "linha de início", 1 - para ignorar a primeira linha (nomes das colunas), parte da linha do rodapé do arquivo (a última linha no MSFT. TXT não contém dados), é também instruído a carregar a coluna número 0 (e chamar arrDate), 2 (arrHigh), 3 (arrOow), 4 (arrC) e 6 (arrClose).
Para obter uma descrição completa do TABLE_LOADER, consulte o guia de referência SLANG.
Então, calculamos dividir, dividindo o Fechar ajustado por fechar, e use esse valor para ajustar baixo e alto.
O arquivo MSFT. TXT contém os dados mais recentes PRIMEIRAMENTE, enquanto nós os quermos ÚLTIMOS.
Em seguida, precisamos criar um indicador. Digamos que será um indicador de Close Location Value, embora na "vida real" eu provavelmente use mais de um indicador como entrada NN.
O indicador de Valor de localização está calculado como.
CLV = ((Close - Low) - (High - Close)) / (High - Low), onde Close, Low e High são para o intervalo, não necessariamente para uma única barra. Note-se que queremos no intervalo de 0 a 1, para facilitar a normalização no alcance do NN's (o que é, mais uma vez, 0-1).
stocks_nn. tsc, parte 3.
Em seguida, precisamos criar um arquivo de atraso. Vamos usar atrasos iguais a 1, 2. 9 (Para obter detalhes sobre as funções do arquivo, consulte o guia de referência SLANG). Observe que a caixa de diálogo NN do Cortex pode produzir atrasos simples automaticamente (você pode usar um botão "Gerar atraso"). Mas, mais tarde, neste texto, vamos trabalhar com atrasos complexos (o que significa que não são 1, 2, 3. mas 1, 3, 64), então precisamos criar o código que pode lidar com essa tarefa em de forma mais flexível.
stocks_nn. tsc, parte 4.
Tendo o arquivo de atraso, estamos prontos para criar nossa primeira rede neural. Esta função requer muitos parâmetros, então fique atento. No entanto, o código é realmente simples.
A propósito, a maior parte deste código pode ser removido, se você acha que pode lidar com números, em vez de nomes significativos em seu código, no entanto, essa seria uma prática de codificação muito ruim.
stocks_nn. tsc, parte 5.
Agora, depois de ter uma rede neural e o arquivo atrasado com dados, precisamos ensinar a rede. O arquivo de atraso (msft_ind. lgg) possui 1074 registros, por isso é razoável usar 800 como um conjunto de aprendizado, e os restantes 274 como um conjunto de testes.
Você pode, claro, abrir um arquivo de rede e clicar no botão "Executar" na guia "Aprender". Mas, como esta é uma introdução à programação avançada do software Cortex Neural Networks, vamos usar SLANG built_in linguagem de script.
O código a seguir exibe a caixa de diálogo modal com as configurações do ann NN. Observe que, se você quiser ter um privilégio de clicar no botão "Executar", você precisa alterar o.
stocks_nn. tsc, parte 6.
O bStartLearning pode ser 0, caso em que a caixa de diálogo aguardará sua entrada, ou 1, então a aprendizagem começará de forma automática.
O bResumeScript, se for igual a 1, retomará o script, se você fechar a caixa de diálogo clicando no botão OK.
O bReset é usado para redefinir a rede antes que a aprendizagem comece.
Execute o script e aguarde até que o contador de épocas ultrapasse 1000, então clique em "Parar". Vá para a guia "Aplicar" e clique em "Aplicar". Isso executará todo o conjunto de dados (aprendendo e testando) através do NN e crie o arquivo. APL, contendo tanto a entrada-saída original quanto a previsão gerada pelo NN, desta forma você pode facilmente traçá-los e compilar uns contra os outros .
Vá para a guia "Saída", selecione o arquivo msft_ind. apl, clique em "Procurar arquivo", "Selecionar campos", depois selecione "Não" na caixa de listagem esquerda e (pressionando a tecla CTRL enquanto seleciona com o mouse ) Clv e NN: Clv na caixa de listagem direita. Clique em "Gráfico" para ver como é boa a nossa previsão. Bem. É mais ou menos bom, do que podemos dizer olhando para ele. Ainda assim, nada extraordinário.
Este foi apenas um exemplo do que você pode fazer com o script SLANG e como automatizar as tarefas de rotina do Cortex. No entanto, até agora, não fizemos nada que você não pudesse fazer "à mão". Bem. quase nada, porque se você quiser criar um arquivo de atraso personalizado, com, digamos, Clv-100, Clv-50, Clv-25. colunas, então você terá que usar SLANG (ou Excel.), porque você não pode fazer no Cortex sem scripts.
FOREX Trading Strategy: o que otimizar?
Aqui está o nosso próximo problema. Precisamos de uma boa previsão, ou precisamos do que podemos usar para negociar com lucro? A questão parece estranha, mas apenas pense nisso por um momento. Digamos que temos uma ótima previsão de 1 hora. 95% de precisão. Ainda assim, até que ponto o preço pode ir em uma hora? Não muito longe, tenho medo. Compará-lo com a situação, quando você tiver uma predição bastante imprecisa de 10 horas. Será melhor?
Para responder a esta pergunta, precisamos realmente negociar, uma comparação simples dos erros médios produzidos pelos dois NNs não ajudará.
A segunda parte (do mesmo problema) está na forma como definimos uma "boa previsão". Digamos que temos uma rede, que produz a previsão, que é 75% precisa. Compará-lo com o NN, que está produzindo uma previsão 100% precisa. O último é melhor. Agora, DIVIDE a saída (predição) do NN 100% preciso em 10. Teremos uma rede MUITO imprecisa, pois seu sinal está longe do sinal que usamos como "saída desejada". E, no entanto, pode ser usado da mesma forma que usamos NN 100% preciso, tudo o que temos a fazer é multiplicá-lo por 10!
Veja, o NN é criado, ajustando o erro quadrático médio e não a correlação, portanto, ao menos em teoria, um NN melhor pode mostrar resultados ruins, quando usado para o estoque real / negociação Forex.
Para resolver esse problema, precisamos testar nossos NNs usando a negociação e usar resultados dessa negociação (lucro e redução) para decidir, se este NN for melhor que o outro.
Vamos fazer isso. Vamos criar um programa, que pode ser usado para afinar a NN, e desta vez, por ajuste fino, vamos significar resultados comerciais.
Neural Network Trading: poucas notas curtas.
Em primeiro lugar, no nosso exemplo acima, a aprendizagem "automática" nunca vai parar, porque não especificamos nenhum critério de parada. Na caixa de diálogo, ou na função CREATE_NN, você pode fornecer o min. erro (quando o NN o atinge, ele pára e, se bResumeScript estiver definido como 1, a caixa de diálogo será fechada e o script será retomado). Também pode fornecer o número máximo de épocas, ou ambos. Não estou usando isso no exemplo abaixo, pelo menos nem sempre, porque estou planejando assistir a aprendizagem e clicar em STOP quando penso que o NN está pronto. Se quiser fazê-lo no modo totalmente automático, preste atenção a esses parâmetros.
Segundo. Uma das maneiras de tornar a rede menor, mais rápida e precisa é começar a pequena rede e aumentar seu tamanho, o neurônio pelo neurônio. Obviamente, o número de neurônios de entrada é determinado pelo número de colunas de dados de entrada (mas podemos também variá-las) e o número de neurônios de saída deve ser igual ao número de colunas de dados de saída (geralmente um, mas não necessariamente ). Isso significa que precisamos otimizar o número de neurônios na (s) camada (s) oculta (s).
Além disso, como mencionei, não sabemos quais dados usar. Will Clv-15 (15 dias atrasados) aumenta a precisão de nossa previsão? Precisamos do Clv-256? Será melhor usar ambos no mesmo NN, ou vai adicionar Clv-256 arruinar nosso desempenho?
Usando ciclos aninhados para tentar diferentes parâmetros de entrada, você pode:
Crie o NN, da mesma forma que o fizemos para os dados do stock (deixe-me repetir, para o NN, não há diferença entre os estoques e FOREX, aconteceu que eu tenho alguns arquivos de dados de alta qualidade para o FOREX que eu quero processar , enquanto escreve este texto). Experimente diferentes combinações de atrasos. Experimente diferentes números de neurônios na camada oculta. . e diferentes combinações de diferentes indicadores. . e assim por diante.
No entanto, se você tentar todas as combinações possíveis de todos os parâmetros possíveis, você NUNCA obterá seus resultados, independentemente da rapidez com que seu computador esteja. Abaixo, usaremos alguns truques para reduzir os cálculos ao mínimo.
A propósito, pode parecer que, se você começar a partir de um neurônio escondido, aumente-o para 2, 3 e assim por diante, e em algum momento o erro (qualidade da previsão) ou o lucro (se você testar o NN por negociação usando) começará a diminuir, então você terá seu vencedor. Infelizmente, não posso provar que, após o primeiro "pico de desempenho", não pode haver um segundo. Isso significa que o erro pode ser igual a 100, 30, 20, 40, 50 (foi apenas no mínimo, certo?) E depois 30, 20, 10, 15,. (o segundo mínimo). Nós apenas temos que testar todos os números razoáveis.
Terceiro. A otimização é uma espada de dois gumes. Se você otimizar demais o seu código, pode não funcionar fora dos dados que você usou para ajustá-lo. Eu farei o meu melhor para evitar essa armadilha. Se você quiser fazer otimizações adicionais para o seu código ou NN, aconselho você a fazer uma pesquisa na Internet, para saber mais sobre os problemas ocultos dessa abordagem. Também vou prestar atenção à suavidade da curva de lucro. O lucro que parece 0, -500, 1000, -100, 10000 pode ser ótimo, mas o lucro 0, 100, 200, 300, 400. é melhor, pois é menos arriscado. Podemos conversar sobre isso mais tarde.
Finalmente, para este exemplo, vamos usar FOREX, em vez de preços de ações. Do ponto de vista do NN, não há diferença, e do meu ponto - Forex é muito mais divertido de negociar. Se você preferir ações, o código pode ser facilmente modificado.
Uma estratégia de negociação FOREX para jogar.
Em primeiro lugar, vamos criar um protótipo do nosso código, que pode ser facilmente otimizado no futuro. Será um sistema de negociação, que usa uma Rede Neural para negociar e produz um gráfico (lucro contra o número comercial). Também calculará a redução, como medida de robustez do nosso sistema comercial.
forex_nn_01.tsc, parte 1.
A principal diferença aqui é que usamos funções, em vez de colocar todo o código no bloco principal do programa. Desta forma, é muito mais fácil de gerenciar.
Em segundo lugar, temos uma função TestNet. Estou usando um algoritmo de negociação muito simples. O indicador CLV é limitado ao intervalo de 0 a 1 (nossa versão do CLV é), então, quando o indicador cruza o dBuyLevel (veja o código acima), estou comprando, quando está cruzando o dSellLevel, estou vendendo.
Obviamente, não é a melhor estratégia de negociação, mas fará para o nosso propósito (apenas por enquanto). Se você deseja melhorar, aqui estão algumas dicas. Primeiro, você pode querer ter um sistema, isso não é SEMPRE no mercado. Em segundo lugar, você pode querer usar mais de um indicador como entradas e, talvez, mais de um NN, para que a decisão de negociação seja feita com base em poucos indicadores previstos. Vamos adicionar algumas melhorias ao algoritmo de negociação mais tarde.
Usamos alguns pressupostos padrão da negociação FOREX: spread é de 5 pontos, leverade é 100, min. O lote é de US $ 100 (mini-FOREX).
Vamos dar uma olhada no nosso sistema "comercial". Mais uma vez, é uma simplificação excessiva. Uma nota importante: o TestNn () é chamado último e tem acesso a todas as variáveis que foram criadas nesse ponto. Então, se você vir uma variável que eu estou usando, sem inicializar, isso provavelmente significa que foi inicializado em NewNn (), TeachNn () ou alguma outra função que foi chamada antes de TestNn ().
Para tornar as coisas mais fáceis, os comentários são colocados no código.
forex_nn_01.tsc, parte 2.
Poucas palavras sobre a redução. There are few ways of calculating it, and we are using what I consider the most "honest". The drawdown is a measure of instability of our system. What is a chance, that it will loose money? Lets say the initial amount is $1000. If the profit goes 100, 200, 300, 400. the drawdown is 0. If it goes 100, 200, 100. then the drawdown is 0.1 (10%), as we have just lost an amount, equal to 1/10 of the initial deposit (from 1200 to 1100).
I would strongly advice against using trading systems with large drawdowns.
Also, here I use a drawdown, that is to be used with variable lot size. However, in the actual samples, that come with the eBook, you will see another version:
As you can see, here we always use 1000 (the initial amount) to calculate the drawdown. The reason is simple: we always use the same lot size (no money management yet), so there is no difference, how much money we have already accumulated on our account, an average profit should be constant. The worse possible scenario in this case looks like this: from the very beginning ($1000 on account) we are loosing money. If we use 1000$ to calculate the drawdown, we will get the worse drawdown. This will help us not to trick ourselves. For example, say, we traded for some time, and we have $10,000$ on our account. Then we loose some money, and we now have $8,000. Then we have recovered, and got $12,000. Good trading system? Provavelmente não.
Let's repeat the logic again, as it is very important (and it will become even more important, when we start doing money management). We trade using fixed size lots. So, statistically, there is no guarantee, that the maximum loss will not happen at the very beginning, when we only have $1000. And if it happens, we will have -1000$ (10,000 - 8,000), so the trading system is probably too risky.
When we talk about the money management (probably, not in this text), we will have to use different approach to drawdown calculation.
Note, that in this trading system, I am using the worse possible scenario: I am buying using High and selling, using Low. Many testers do not follow these rules, and create trading systems, that work fine on historical data. But in the real life, these trading systems have very poor performance. Por quê?
Take a look at the price bar. It has Open, High, Low and Close. Do you know, how the price was moving inside the bar? No. So, let's say, your trading system generated a "buy" signal, at the bottom of the price bar (if dLow.
Note that I am using dLotSize equal 0.1 lot ($100). Obviously, in the "real" trading, you will benefit greatly, if the lot size is calculated depending on the money you have, something like:
forex_nn_01.tsc, part 3.
However, we are doing testing here, not trading. And for testing, we need, among other things, to see how smooth the profit curve is. This is much easier to do if the lot size is the same (in ideal situation, for dLotSize = 100 we will get a straight line, with some positive slope, while in case of the adjustable lot size we will get an exponent, that is much harder to analyze).
Later in this text, we will apply money management rules to our trading system, but not yet.
After we are done with the last part of our testing function, let's walk through the rest of the code.
The following function creates a CLV indicator. It takes the interval as a parameter, which means that we can call it many times, during the optimization, passing different numbers.
Note, that I am using the NN that works in the 0 - 1 interval. The data can be normalized, of course, but I chose to divide the indicator by 2 and to add 0.5, so that it is in 0 - 1 range.
forex_nn_01.tsc, part 4.
To make lag file, we can use the CREATE_LAG_FILE function. Alternatively, we can do it by explicitly providing all the necessary code. In this case, we have more control, and we are going to need it, if we begin varying number of lagged columns and so on.
forex_nn_01.tsc, part 5.
The nRemoveFirst parameter is important. Many functions, like indicators, moving averages, lag generators, for that matter, do not work well within the first few records of the dataset. Let's say we have MA(14) - what will it place in the records 1 - 13? So we choose to simply remove the first few (unreliable) records.
For the NewNn, as well as for all functions of this program, we need to pass as parameters only what can be changed during optimization process. For example, there is no need to pass a "skip before" parameter, as it is always the same.
forex_nn_01.tsc, part 6.
The TeachNn function simply brings up the NN dialog.
forex_nn_01.tsc, part 7.
Finally, we need a charting function. It is not mandatory, but it is always a good idea to see what our profit line looks like. The following code uses the XML to produce a chart, so it is a good idea to read the tutorial. Alternatively, you can draw the chart, rather than saving it in a file. To do it, use one of the samples, that are in the samples/scripts directory. Finally, you can modify the code, to produce HTML, rather than XML. HTML is easier to learn, but the code itself will be a bit less readable.
forex_nn_01.tsc, part 8.
Compile and Run the script.
Bem. As expected, using 7 hours as an interval for the CLV produced very poor results:
FOREX Trading Strategies and Optimization.
The reason for the poor results is quite obvious: we used the Interval, Stop Loss, buy and sell levels and other parameters, that were purely random - we just picked first that came in mind! What if we try few combinations?
FOREX Trading Signals: What to optimize?
First of all, by overoptimizing the buy and sell levels, we can ruin our future performance. However we still can tune them, especially, if the performance is close for close values of buy and sell limits. For example, if we have -10% profit at buy limit equal 0.3, and +1000% profit when it equals 0.35, then there is probably a lucky coincidence, and we should not use 0.35 for our trading system, as in future it will probably not happen again. If, instead, we have -10% and +10% (instead of +1000%), it may be safer to use.
Generally, our trading system should be built for WORSE possible scenario, as if during the "real" trading the performance will be better, then during the test, we will survive, but not the other way around.
We can vary the value for the indicator interval, provided we have enough trades, so that we can be confident, in terms of statistics, in the performance of a system.
We certainly can vary the number of neurons, I don't think it can be overoptimized easily.
We can vary number of inputs and lags for inputs. It is possible to overoptimize this, but it is not very likely to happen.
And, of course, we can try different indicators.
Accurate FOREX Signals: How to optimize?
As have already been mentioned, if we start trying all possible combinations, it will take forever. So we are going to cheat. We will create pre-defined sets of parameters, that we think are reasonable, and pass them to the program.
To make as few calculations as possible, note, that Clv-1 and Clv-2 are, probably, important, but what about Clv-128? And - if we already have Clv-128, do we need Clv-129? Probably, not. So we are going to have something like Clv-1, Clv-2, Clv-4, Clv-8, . Clv-128 with just few variations, which will make our calculation time thousands times shorter.
FOREX Professional System Trading: Can it work at all?
What is it exactly we want to predict? Until this point we have used 1 hour chart for EURUSD, and we were predicting the next bar's CLV. Will the CLV+2 be better? What about CLV+3?
Also, especially considering the poor performance of our first trading system, it would be nice to know, that - at least in the "ideal" world, the goal (profitable trading) can be achieved.
To answer these questions, let's create a simple testing program. We assume, that our prediction is 100 % accurate, and, based on this assumption, we will use CLV+N, not the NN predicted one. That's right - we are going to take data from the future, and to use them instead of the NN prediction. This approach wouldn't work in the real life, of course, but at leats, it will give us some ideas of what to expect.
When looking at the results, please keep in mind, that we are not using any advanced money management, our lot size is set to a minimum $100. If you use variable lot sizes, results will be dramatically different. But even at a lot size set to 0.1 we can see (below) that getting the information from the future is an ultimate trader's "holly graal".
forex_nn_02.tsc, part 1.
You are already familiar with this code, it was used in FOREX_NN_01.TSC. It handles data loading. The only difference is in the part that obtains the list of files in the "images" directory and deletes all files with the. PNG extention. The reason for this code is simple: during our tests we are going to create many - may be, thousands - image files. We don't want them to hung around after we are done. So at the beginning of the script we are deleting images, created by other scripts.
forex_nn_02.tsc, part 2.
Just a few comments. We do not want to try all possible values for, for example, CLV interval. Instead, we can create an array, that contains only values we want to test. Then (see below) we will walk through this array.
Stop losses are important part of any trading strategy, so I have decided to vary them as well. It is a dangerous idea, however, as it is easy to overoptimize the system.
I am planning to test different values for buy and sell levels, but it will be done in cycle, without using arrays.
Unlike in our previous example, we want to have a large XML file, containing many images. To do it, I have moved the code, that is forming the XML header and footer outside of the Chart function. Read one of the online XML tutorials for details.
Note, that I am using 0 as the first lag, which means, that first I am testing the indicator (CLV) that was not "shifted" from the future. Just to get an idea, how good out "trading system" would be without NN (horrible, is the right word. It is loosing all the money).
Cortex uses the Internet Explorer control to display XML pages. When pages grow large, it takes a lot of memory. If your computer cannot handle it, consider creating multiple XML or HTML pages, instead. In the case of forex_nn_02, it should not be a problem, as the page is relatively short. Alternatively (that is what I am doing in scripts later in this text), create XML file, but do not open it from Cortex. Open them using Internet Explorer instead - unlike IE control, the Internet Explorer does not have the memory problem.
Now the code that is trying different combinations of parameters.
forex_nn_02.tsc, part 3.
Here, we are using nested cycles. In every cycle, we are assidning some variable (for example, nInterval for the outer cycle). This way the cycle will assign values of all elements of a corresponding array, one in a time. Then WITHIN it, the inner cycle is used, and so on, so that all combinations of all array elements are tested.
In the innermost cycle, I am calling the Test() function, to "test trade", and Chart() to add a new picture to a list of images saved on disk. Note, that this Chart() does not show any images, until all cycles are completed.
The Test() and CreateClv() functions are almost the same as in the previous example. The only real difference is due to the fact that it is called more then once. To do it, I am calling ARRAY_REMOVE to cleanup arrays.
Also, notice, that we are only creating charts for the combinations of parameters, that produce trading system with positive profit. Otherwise, we call "continue", to skip the Chart() function.
Finally, we have Take Profit now, so our trading system can be a bit more flexible.
forex_nn_02.tsc, part 4.
The Chart() function was broken into two pieces. The header and the footer should be written to the XML file only once, so they were moved to the main part of the program.
Also, I am using the counter, to save files under the different names. The information about parameters is written to the header of an image, so we can easily see which one it is. Finally, images are only saved for winning configurations, meaning the balance at the end should be more, then at the beginning.
forex_nn_02.tsc, part 5.
Run the program (it will take some time to complete). You will end up with a large XML page with images, one for each winning configuration.
Some of the results are great, however, as we used data "from the future", this system will not work in the real life. Actually, if you look at the Test() function, you will notice, that the cycle stops before we reach the last element of arrClose:
for(nBar = nRemoveFirst + 1; nBar.
THIS IS C++, just an example.
As you can see, the code is really simple. Now lets do the same using the SLANG script. As in examples before, we will keep the overall structure of the code, so that this example looks familiar. The only difference is that instead of using the built-in APPLY_NN function, we call the function of our own. The code that we do not use (such as cycles) is commented, but not removed.
Note, that the logic behind it was discussed in Neural Networks and Stock / Forex Trading article already. Briefly, the output of this script is formated to be compatible with the MQL, MetaTrader's scripting engine. MetaTrader is a trading platform we use, if you want something different, like TradeStation, for example, you will have to alter the code to comply to its syntax.
Then, in the following chapters, we are going to insert this code in the MetaTrader's indicator, and to use it to trade.
Porting script to trading platform.
The next step is not really required, but it is something, that may be useful. We are going to create a version of a tsc file (one above), but this time, we will use SLANG (Cortex scripting language) to emulate APPLY_NN function. The reason is, in the next chapter we are going to port it to the scripting language of a MetaTrader trading platform, so it is a good idea to make sure everything works.
After we run this function, we discover, that the result it produces is the same, as the forex_nn_05a produced, which means the code works fine. :
Note, that there is a difference at the beginning of the charts, as "our" NN does not try to process the data at the beginning (where lag is incomplete), while the built-in NN does not "know" about this problem. Of course, it doesn't affect the result, as the beginning of the chart is ignored by using the nRemoveFirst parameter in our script (set to 200, which is guaranteed to be larger, then our lag).
Using third-party trading platform.
We have the NN that (more or less) can be used. We have the script, implementing this NN without calls to the Cortex-specific NN functions. Now we are going to port it to the trading platform that can be used for the real trading, which means it can contact brocker, place orders and earn (or loose) money.
As a trading platform, I am going to use MetaTrader.
Disclaimer: I am not related to MetaQuotes in any way. I do not work for them, I am not their affiliate and so on. I use MetaTrader, ONLY because I like it.
I find this program user-friendly, flexible and powerful, and "not a monster". Also, it is free (compare to other packages of this class).
The only (minor) problem is that it is not always easy to find the dealer using MT in your area. Then, when you do a research, you may find couple of brockers, with screenshots on their web sites, that look suspiciously familiar. Yes, they use MetaTrader, but they don't call it MetaTrader!
I have asked for clarification at the company's forum, and they have told me, that they don't reveal brockers using their services. Very strange.
One of the brockers that is not hiding the fact they use MT, is Alpari. They will allow you to open a Demo account, so that you can trade in a real time, but without risking your money.
I am not going to recommeng services of Alpari. Once again, I am not being paid for that. Try their Demo account, and use your own judgement. Or you can start your own research at Internet forums.
Finally, if you do not like the MT, you can probably follow the example below using TS, MS or some other trading platform. Este é apenas um exemplo.
Our MT-based trading system will include two files, the indicator and an expert. This is the way they call it in MQL (scripting language of MT), and I am going to follow this naming convention.
The indicator implements the neural network and draws a chart. An expert takes these data and does trading. As MetaTrader has a "strategy tester", we will be able to test our strategy, to see how good it is.
I will assume, that you are familiar with MQL programming, it is quite close to SLANG and tutorials can be found both at MetaQuotes and Alpari.
Finally, I am using the code structure, that is borrowed from MetaQuotes forum, permission to use it the author of the corresponding posts had granted me permission to use fragments of his code.
Also, as some of our MetaTrader code is the same for all experts and indicators, we moved it to a separate library file. MetaTrader's libraries are nothing but includable files. This library takes care of synhronization, when two or more expert are trying to run in the same time, as well as of few other things. If you use MetaTrader, it will help you to create robust experts, in any case, the MQL language is easy to understand.
mylib. mql, a helper library.
The code should look familiar, all I did was re-writing it, using slightly different language syntax of MQL.
This indicator has two buffers, and draws two lines, one for the original NOC, and one for the NN-predicted NOC. For trading, you don't have to draw both indicator lines, of course (see MQL tutorials to learn how to do it), but I have decided to show them together, so you can compare.
Another difference, that you should know about, is the way MT performs testing. It may, in some cases, be more accurate, then one we did (we did the worse case scenario). Of course, you can always to change the SLANG script from the examples above, to implement any logic you want.
The result of our testing in MT is a bit better, then in Cortex, due to all these reasons.
Keep in mind, that MT calculates the DD in a different way. I still think, that my way is better.
In should be especially noted, that no additional optimization had been performed using MetaTrader's optimizer. We have just plugged our MTS (mechanical trading system) in, and it worked as expected.
É isso. You can now create Cortex Neural Network, optimize it to do trading, and to port it to the trading platform of your choice.
Previsão de Forex.
Este exemplo é muito semelhante ao anterior. A única diferença é que ele mostra dados para divisas (forex) pares de moedas.
Como trabalhar com o applet.
Se você não viu o primeiro exemplo, explore-o primeiro - a descrição básica está disponível lá. Neste applet, os dados a seguir estão disponíveis. Todos eles são valores próximos do fim do dia para todo o ano de 2007, ou seja, 313 valores. Como no applet anterior, cada uma dessas séries temporais tem os seguintes valores: zero para intervalo abaixo de 0, valor de fechamento no intervalo 0-número de valores e novamente zero após o último valor conhecido. EURUSD - USD EUR USD moeda estrangeira dados par USDJPY - EUR USD moeda estrangeira par data USDCHF - EUR USD moeda estrangeira par dados EURJPY - EUR USD moeda estrangeira par dados Observe novamente que este exemplo é fornecido apenas para ilustração. O comércio usando esta configuração simples geralmente não está longe de usar a previsão pelo último valor disponível. Observe também que, para o comércio, precisamos desenvolver regras de entrada e saída e que são mais importantes do que a previsão exata.
Aguarde até que o applet seja carregado.
Applet e descrição (c) Marek Obitko, 2008; A rede neural no applet usa classes Java BPNeuron e BPNet.
do NeuralWebspace, (c) Tom Vehovský, 1998, que foram modificados para os propósitos deste applet.
Forex Nn Ind EA.
Forex Nn Ind EA.
This expert advisor is based on the Forex Nn Ind indicator used by Wackena in his popular Bogie-NN-v8 EA.
The same with two levels, the FNI_HLevel for the long signals, and the FNI_LLevel for the short signals.
You are really excellent, really appreaciate your hardwork !! Below i attach all the material that relate to NN that i found. I will be not around for two weeks because of my final exam. Hope this can help you.
You are really excellent, really appreaciate your hardwork !! Below i attach all the material that relate to NN that i found. I will be not around for two weeks because of my final exam. Hope this can help you.
I need to going to sleep already, because my here now is 1AM(GMT+8). I know you are very hardworking, looking on you keep on update your site and keep on produce new EA, you are not robot, so you should rest some time . See you!!
Start account : 2000$
Since January 2008:
Start account : 2000$
Copyright & copy; 2000 - 2018, Jelsoft Enterprises Ltd.
Encontre freelancers - publique um projeto similar ao / Astro Nn Indicator. (OU, se você é Freelancer, lance, é GRÁTIS).
No meio do tópico eles codificaram arquivos de biblioteca para 3 tipos de NN (esses arquivos de biblioteca estão prontos para usar para indicadores e EAs), alguns indicadores NN de amostra (mql4 ...
O NNEA Trend Predictor PRO usa uma técnica de inteligência artificial de última geração chamada redes neurais e # 8221; para prever o comportamento do global ...
Indicador MT4 (NN Trend Predictor PRO) - Forex-Shop. Indicador MT4 (NN Trend Predictor PRO) - Forex-Shop - Baixe agora - Sistemas Forex, livros, indicadores, EA, Scripts ...
Forex Indicators Download & # 8211; Instruções.
NN é um indicador Metatrader 4 (MT4) e a essência do indicador forex é transformar os dados de histórico acumulados.
NN prevê uma oportunidade para detectar várias peculiaridades e padrões de dinâmica de preços que são invisíveis a olho nu.
Com base nessa informação, os comerciantes podem assumir novos movimentos de preços e ajustar sua estratégia em conformidade.
Faça o download do NN. mq4 Copiar NN. mq4 para o seu Diretório Metatrader / especialistas / indicadores / Inicie ou reinicie o seu Metatrader Client Selecione o Gráfico e o Quadro de tempo onde deseja testar seu indicador Pesquisar & # 8220; Indicadores Personalizados & # 8221; em seu Navegador na maior parte deixado em seu Cliente Metatrader Clique direito em NN. mq4 Anexe a um gráfico Modifique as configurações ou pressione ok O indicador NN. mq4 está disponível no seu Gráfico.
Como remover NN. mq4 do seu Metatrader 4 Chart?
Selecione o Gráfico onde está o Indicador em execução no Cliente Metatrader Clique com o botão direito na Lista de Indicadores & # 8220; Indicadores & # 8221; Selecione o Indicador e exclua.
Baixar Metatrader 4 Trading Platform:
$ 30 grátis para iniciar a negociação instantaneamente Nenhum depósito exigido automaticamente creditado à sua conta sem termos ocultos.
SnowCron.
FREE E. Mail Classes.
Neste artigo: um exemplo de uso do nosso software Neural Networks para criar um sistema completo de negociação de rede neural.
Este exemplo usa a linguagem de script incorporada do Cortex, então leia o guia de linguagem de script primeiro.
Usando Redes Neurais para criar Estratégia de Negociação FOREX.
Neste tutorial on-line gratuito, você encontrará o "ciclo completo" do uso de redes neurais (Cortex Neural Networks Software) para negociação Forex (ou negociação no mercado de ações, a idéia é a mesma).
Você aprenderá como escolher entradas para as redes neurais artificiais e como decidir o que usar como saída.
Você encontrará um exemplo de um script pronto para usar que permite a realização de otimização de redes neurais tanto da estrutura da Rede Neural (número de neurônios) quanto do sistema de negociação forex (stop loss etc.)
Finalmente (a parte que não está presente na maioria dos tutoriais), você aprenderá o que fazer a seguir. Afinal, o Cortex Neural Networks Software não pode fazer negócios em tempo real, você precisa usar algo como Trade Station, MetaQuotes ou MetaTrader. Como transportar o sistema de negociação FOREX do Cortex para sua plataforma de negociação favorita? Você precisa lidar com DLLs, controles ActiveX e programação de baixo nível? A resposta é não.
O software Cortex Neural Networks vem com o recurso fácil de usar que permite que você porta facilmente a rede Neural resultante (treinada) para a linguagem de script da sua plataforma de negociação. Sem DLLs, DDE, ActiveX ou quaisquer outras soluções de baixo nível - tudo é simples e simples.
Nota importante: este NÃO é um tutorial "como negociar". Em vez disso, ele diz como usar o software Cortex Neural Networks, mas você ainda precisa inventar seu próprio sistema comercial. Aquele que usamos aqui é apenas um ponto de partida, e não deve ser usado como uma estratégia de negociação forex "tal como está". A idéia deste texto é ensinar você a criar sistemas de negociação baseados em NN e a portá-los para a plataforma de negociação de sua escolha. O exemplo é, no entanto, ovesimplificado, e só pode ser usado como ilustração dos princípios de negociação. Da mesma forma, o sistema de negociação MACD, que pode ser encontrado em muitos tutoriais, já não está funcionando bem (à medida que os mercados mudaram), mas ainda é um bom exemplo de usar indicadores para negociação mecânica.
Em duas palavras: faça sua própria análise.
Outra nota importante: o tutorial usa exemplos, muitos deles. Para tornar sua vida mais fácil, incluí todos eles, não apenas fragmentos. No entanto, torna o texto muito mais longo. Além disso, eu estou indo do primeiro, desajeitado, sistema de negociação forex, para mais avançado, explicando sempre o que foi melhorado e por quê. Seja paciente ou salte diretamente para a seção que você precisa.
Nota importante final: o código não é algo esculpido em pedra, ele pode mudar enquanto este texto foi escrito. As versões finais dos arquivos de script estão incluídas no arquivo Cortex.
Armadilhas de sinais FOREX BUY / SELL: O que há de errado com exemplos "simples"?
No guia do usuário do Cortex Neural Networks Software, usamos um exemplo simples de uma Rede Neural Física, prevendo o preço do estoque GENZ. Para descobrir o que é errado com esta abordagem, vamos fazer o mesmo exemplo "simples", usando MSFT. TXT, em vez do GENZ. TXT (use 800 registros no conjunto de aprendizado, como MSFT. TXT é um pouco mais curto, então GENZ. TXT).
Simplesmente não funcionaria! Por quê?
O motivo se tornará evidente, se você se perguntar: "Qual é a razão pela qual a previsão da rede neural de valores futuros pode ser feita primeiro?"
A resposta é: é aprender a fazer o que é chamado de reconhecimento de padrões de redes neurais, reconhecer padrões e, se houver uma lógica oculta nesses padrões, então mesmo um novo padrão (com a mesma lógica) será reconhecido.
Isso é um truque - "com a mesma lógica". Não há nem um, mas três problemas aqui.
Em primeiro lugar, se você olhar para o preço das ações da Microsoft, você notará que estava indo na parte "de aprendizado" de nossos dados e de lado - na parte de "teste". Portanto, é possível que a lógica tenha mudado.
Em segundo lugar, e ainda mais importante - QUAL É O TESTE PADRÃO? Você vê, se ensinamos a rede neural no intervalo de 10 a 100, e depois apresentamos algo na faixa de 1 a 3 - eles são padrões diferentes! 10, 20, 30 e 1, 2, 3 parecem semelhantes ao humano porque - PORQUE - temos essa capacidade de dividir por dez, quando apresentado com números que terminam com zero. É o que é chamado de pré-processamento dos dados e, por padrão, o NN não pode fazê-lo.
Podemos ensiná-lo? Claro. O que é EXACTAMENTE nós precisamos ensiná-lo?
Este é o terceiro e o mais importante. Não precisamos da previsão de preços! Nós não ligamos! O que precisamos é FOREX comprar sinais de venda.
Agora, espere um minuto! Nós precisamos de um) para ter nossa contribuição (aprendendo e testando) no mesmo intervalo e precisamos b) poder tomar decisões comerciais com base nela? Não é o que chamamos de indicador? Bingo?
Então, é o que vamos fazer - vamos construir um indicador, alimentá-lo ao NN como uma entrada, e tentaremos obter uma previsão do valor do indicador, e não o preço do estoque sem valor!
Em nosso primeiro exemplo, vamos carregar cotações de estoque do disco, abrir o arquivo de Rede Neural e iniciar a aprendizagem - tudo em um modo automatizado.
Crie um novo arquivo de script (ou abra o que veio com o arquivo Cortex Neural Networks Software) e ligue para stock_nn. tsc.
Antes de mais, precisamos baixar os valores de preço do arquivo MSFT. TXT. Nós vamos usar o indicador CLV (veja abaixo), mas para calcular, precisamos de valores ajustados por divisão para Alto e Baixo, não apenas para fechar. Aqui é como obtê-los.
stocks_nn. tsc, parte 1.
A primeira linha atribui o caminho para a variável strStockPath, é claro, você terá que editá-la, se seu arquivo de dados estiver localizado no diretório diferente.
Na segunda linha, especificamos que esse caminho não é relativo (o "relativo" à localização do arquivo Cortex. exe).
O TABLE_LOADER recebe o caminho, a seqüência vazia para a "linha de início", 1 - para ignorar a primeira linha (nomes das colunas), parte da linha do rodapé do arquivo (a última linha no MSFT. TXT não contém dados), é também instruído a carregar a coluna número 0 (e chamar arrDate), 2 (arrHigh), 3 (arrOow), 4 (arrC) e 6 (arrClose).
Para obter uma descrição completa do TABLE_LOADER, consulte o guia de referência SLANG.
Então, calculamos dividir, dividindo o Fechar ajustado por fechar, e use esse valor para ajustar baixo e alto.
O arquivo MSFT. TXT contém os dados mais recentes PRIMEIRAMENTE, enquanto nós os quermos ÚLTIMOS.
Em seguida, precisamos criar um indicador. Digamos que será um indicador de Close Location Value, embora na "vida real" eu provavelmente use mais de um indicador como entrada NN.
O indicador de Valor de localização está calculado como.
CLV = ((Close - Low) - (High - Close)) / (High - Low), onde Close, Low e High são para o intervalo, não necessariamente para uma única barra. Note-se que queremos no intervalo de 0 a 1, para facilitar a normalização no alcance do NN's (o que é, mais uma vez, 0-1).
stocks_nn. tsc, parte 3.
Em seguida, precisamos criar um arquivo de atraso. Vamos usar atrasos iguais a 1, 2. 9 (Para obter detalhes sobre as funções do arquivo, consulte o guia de referência SLANG). Observe que a caixa de diálogo NN do Cortex pode produzir atrasos simples automaticamente (você pode usar um botão "Gerar atraso"). Mas, mais tarde, neste texto, vamos trabalhar com atrasos complexos (o que significa que não são 1, 2, 3. mas 1, 3, 64), então precisamos criar o código que pode lidar com essa tarefa em de forma mais flexível.
stocks_nn. tsc, parte 4.
Tendo o arquivo de atraso, estamos prontos para criar nossa primeira rede neural. Esta função requer muitos parâmetros, então fique atento. No entanto, o código é realmente simples.
A propósito, a maior parte deste código pode ser removido, se você acha que pode lidar com números, em vez de nomes significativos em seu código, no entanto, essa seria uma prática de codificação muito ruim.
stocks_nn. tsc, parte 5.
Agora, depois de ter uma rede neural e o arquivo atrasado com dados, precisamos ensinar a rede. O arquivo de atraso (msft_ind. lgg) possui 1074 registros, por isso é razoável usar 800 como um conjunto de aprendizado, e os restantes 274 como um conjunto de testes.
Você pode, claro, abrir um arquivo de rede e clicar no botão "Executar" na guia "Aprender". Mas, como esta é uma introdução à programação avançada do software Cortex Neural Networks, vamos usar SLANG built_in linguagem de script.
O código a seguir exibe a caixa de diálogo modal com as configurações do ann NN. Observe que, se você quiser ter um privilégio de clicar no botão "Executar", você precisa alterar o.
stocks_nn. tsc, parte 6.
O bStartLearning pode ser 0, caso em que a caixa de diálogo aguardará sua entrada, ou 1, então a aprendizagem começará de forma automática.
O bResumeScript, se for igual a 1, retomará o script, se você fechar a caixa de diálogo clicando no botão OK.
O bReset é usado para redefinir a rede antes que a aprendizagem comece.
Execute o script e aguarde até que o contador de épocas ultrapasse 1000, então clique em "Parar". Vá para a guia "Aplicar" e clique em "Aplicar". Isso executará todo o conjunto de dados (aprendendo e testando) através do NN e crie o arquivo. APL, contendo tanto a entrada-saída original quanto a previsão gerada pelo NN, desta forma você pode facilmente traçá-los e compilar uns contra os outros .
Vá para a guia "Saída", selecione o arquivo msft_ind. apl, clique em "Procurar arquivo", "Selecionar campos", depois selecione "Não" na caixa de listagem esquerda e (pressionando a tecla CTRL enquanto seleciona com o mouse ) Clv e NN: Clv na caixa de listagem direita. Clique em "Gráfico" para ver como é boa a nossa previsão. Bem. É mais ou menos bom, do que podemos dizer olhando para ele. Ainda assim, nada extraordinário.
Este foi apenas um exemplo do que você pode fazer com o script SLANG e como automatizar as tarefas de rotina do Cortex. No entanto, até agora, não fizemos nada que você não pudesse fazer "à mão". Bem. quase nada, porque se você quiser criar um arquivo de atraso personalizado, com, digamos, Clv-100, Clv-50, Clv-25. colunas, então você terá que usar SLANG (ou Excel.), porque você não pode fazer no Cortex sem scripts.
FOREX Trading Strategy: o que otimizar?
Aqui está o nosso próximo problema. Precisamos de uma boa previsão, ou precisamos do que podemos usar para negociar com lucro? A questão parece estranha, mas apenas pense nisso por um momento. Digamos que temos uma ótima previsão de 1 hora. 95% de precisão. Ainda assim, até que ponto o preço pode ir em uma hora? Não muito longe, tenho medo. Compará-lo com a situação, quando você tiver uma predição bastante imprecisa de 10 horas. Será melhor?
Para responder a esta pergunta, precisamos realmente negociar, uma comparação simples dos erros médios produzidos pelos dois NNs não ajudará.
A segunda parte (do mesmo problema) está na forma como definimos uma "boa previsão". Digamos que temos uma rede, que produz a previsão, que é 75% precisa. Compará-lo com o NN, que está produzindo uma previsão 100% precisa. O último é melhor. Agora, DIVIDE a saída (predição) do NN 100% preciso em 10. Teremos uma rede MUITO imprecisa, pois seu sinal está longe do sinal que usamos como "saída desejada". E, no entanto, pode ser usado da mesma forma que usamos NN 100% preciso, tudo o que temos a fazer é multiplicá-lo por 10!
Veja, o NN é criado, ajustando o erro quadrático médio e não a correlação, portanto, ao menos em teoria, um NN melhor pode mostrar resultados ruins, quando usado para o estoque real / negociação Forex.
Para resolver esse problema, precisamos testar nossos NNs usando a negociação e usar resultados dessa negociação (lucro e redução) para decidir, se este NN for melhor que o outro.
Vamos fazer isso. Vamos criar um programa, que pode ser usado para afinar a NN, e desta vez, por ajuste fino, vamos significar resultados comerciais.
Neural Network Trading: poucas notas curtas.
Em primeiro lugar, no nosso exemplo acima, a aprendizagem "automática" nunca vai parar, porque não especificamos nenhum critério de parada. Na caixa de diálogo, ou na função CREATE_NN, você pode fornecer o min. erro (quando o NN o atinge, ele pára e, se bResumeScript estiver definido como 1, a caixa de diálogo será fechada e o script será retomado). Também pode fornecer o número máximo de épocas, ou ambos. Não estou usando isso no exemplo abaixo, pelo menos nem sempre, porque estou planejando assistir a aprendizagem e clicar em STOP quando penso que o NN está pronto. Se quiser fazê-lo no modo totalmente automático, preste atenção a esses parâmetros.
Segundo. Uma das maneiras de tornar a rede menor, mais rápida e precisa é começar a pequena rede e aumentar seu tamanho, o neurônio pelo neurônio. Obviamente, o número de neurônios de entrada é determinado pelo número de colunas de dados de entrada (mas podemos também variá-las) e o número de neurônios de saída deve ser igual ao número de colunas de dados de saída (geralmente um, mas não necessariamente ). Isso significa que precisamos otimizar o número de neurônios na (s) camada (s) oculta (s).
Além disso, como mencionei, não sabemos quais dados usar. Will Clv-15 (15 dias atrasados) aumenta a precisão de nossa previsão? Precisamos do Clv-256? Será melhor usar ambos no mesmo NN, ou vai adicionar Clv-256 arruinar nosso desempenho?
Usando ciclos aninhados para tentar diferentes parâmetros de entrada, você pode:
Crie o NN, da mesma forma que o fizemos para os dados do stock (deixe-me repetir, para o NN, não há diferença entre os estoques e FOREX, aconteceu que eu tenho alguns arquivos de dados de alta qualidade para o FOREX que eu quero processar , enquanto escreve este texto). Experimente diferentes combinações de atrasos. Experimente diferentes números de neurônios na camada oculta. . e diferentes combinações de diferentes indicadores. . e assim por diante.
No entanto, se você tentar todas as combinações possíveis de todos os parâmetros possíveis, você NUNCA obterá seus resultados, independentemente da rapidez com que seu computador esteja. Abaixo, usaremos alguns truques para reduzir os cálculos ao mínimo.
A propósito, pode parecer que, se você começar a partir de um neurônio escondido, aumente-o para 2, 3 e assim por diante, e em algum momento o erro (qualidade da previsão) ou o lucro (se você testar o NN por negociação usando) começará a diminuir, então você terá seu vencedor. Infelizmente, não posso provar que, após o primeiro "pico de desempenho", não pode haver um segundo. Isso significa que o erro pode ser igual a 100, 30, 20, 40, 50 (foi apenas no mínimo, certo?) E depois 30, 20, 10, 15,. (o segundo mínimo). Nós apenas temos que testar todos os números razoáveis.
Terceiro. A otimização é uma espada de dois gumes. Se você otimizar demais o seu código, pode não funcionar fora dos dados que você usou para ajustá-lo. Eu farei o meu melhor para evitar essa armadilha. Se você quiser fazer otimizações adicionais para o seu código ou NN, aconselho você a fazer uma pesquisa na Internet, para saber mais sobre os problemas ocultos dessa abordagem. Também vou prestar atenção à suavidade da curva de lucro. O lucro que parece 0, -500, 1000, -100, 10000 pode ser ótimo, mas o lucro 0, 100, 200, 300, 400. é melhor, pois é menos arriscado. Podemos conversar sobre isso mais tarde.
Finalmente, para este exemplo, vamos usar FOREX, em vez de preços de ações. Do ponto de vista do NN, não há diferença, e do meu ponto - Forex é muito mais divertido de negociar. Se você preferir ações, o código pode ser facilmente modificado.
Uma estratégia de negociação FOREX para jogar.
Em primeiro lugar, vamos criar um protótipo do nosso código, que pode ser facilmente otimizado no futuro. Será um sistema de negociação, que usa uma Rede Neural para negociar e produz um gráfico (lucro contra o número comercial). Também calculará a redução, como medida de robustez do nosso sistema comercial.
forex_nn_01.tsc, parte 1.
A principal diferença aqui é que usamos funções, em vez de colocar todo o código no bloco principal do programa. Desta forma, é muito mais fácil de gerenciar.
Em segundo lugar, temos uma função TestNet. Estou usando um algoritmo de negociação muito simples. O indicador CLV é limitado ao intervalo de 0 a 1 (nossa versão do CLV é), então, quando o indicador cruza o dBuyLevel (veja o código acima), estou comprando, quando está cruzando o dSellLevel, estou vendendo.
Obviamente, não é a melhor estratégia de negociação, mas fará para o nosso propósito (apenas por enquanto). Se você deseja melhorar, aqui estão algumas dicas. Primeiro, você pode querer ter um sistema, isso não é SEMPRE no mercado. Em segundo lugar, você pode querer usar mais de um indicador como entradas e, talvez, mais de um NN, para que a decisão de negociação seja feita com base em poucos indicadores previstos. Vamos adicionar algumas melhorias ao algoritmo de negociação mais tarde.
Usamos alguns pressupostos padrão da negociação FOREX: spread é de 5 pontos, leverade é 100, min. O lote é de US $ 100 (mini-FOREX).
Vamos dar uma olhada no nosso sistema "comercial". Mais uma vez, é uma simplificação excessiva. Uma nota importante: o TestNn () é chamado último e tem acesso a todas as variáveis que foram criadas nesse ponto. Então, se você vir uma variável que eu estou usando, sem inicializar, isso provavelmente significa que foi inicializado em NewNn (), TeachNn () ou alguma outra função que foi chamada antes de TestNn ().
Para tornar as coisas mais fáceis, os comentários são colocados no código.
forex_nn_01.tsc, parte 2.
Poucas palavras sobre a redução. There are few ways of calculating it, and we are using what I consider the most "honest". The drawdown is a measure of instability of our system. What is a chance, that it will loose money? Lets say the initial amount is $1000. If the profit goes 100, 200, 300, 400. the drawdown is 0. If it goes 100, 200, 100. then the drawdown is 0.1 (10%), as we have just lost an amount, equal to 1/10 of the initial deposit (from 1200 to 1100).
I would strongly advice against using trading systems with large drawdowns.
Also, here I use a drawdown, that is to be used with variable lot size. However, in the actual samples, that come with the eBook, you will see another version:
As you can see, here we always use 1000 (the initial amount) to calculate the drawdown. The reason is simple: we always use the same lot size (no money management yet), so there is no difference, how much money we have already accumulated on our account, an average profit should be constant. The worse possible scenario in this case looks like this: from the very beginning ($1000 on account) we are loosing money. If we use 1000$ to calculate the drawdown, we will get the worse drawdown. This will help us not to trick ourselves. For example, say, we traded for some time, and we have $10,000$ on our account. Then we loose some money, and we now have $8,000. Then we have recovered, and got $12,000. Good trading system? Provavelmente não.
Let's repeat the logic again, as it is very important (and it will become even more important, when we start doing money management). We trade using fixed size lots. So, statistically, there is no guarantee, that the maximum loss will not happen at the very beginning, when we only have $1000. And if it happens, we will have -1000$ (10,000 - 8,000), so the trading system is probably too risky.
When we talk about the money management (probably, not in this text), we will have to use different approach to drawdown calculation.
Note, that in this trading system, I am using the worse possible scenario: I am buying using High and selling, using Low. Many testers do not follow these rules, and create trading systems, that work fine on historical data. But in the real life, these trading systems have very poor performance. Por quê?
Take a look at the price bar. It has Open, High, Low and Close. Do you know, how the price was moving inside the bar? No. So, let's say, your trading system generated a "buy" signal, at the bottom of the price bar (if dLow.
Note that I am using dLotSize equal 0.1 lot ($100). Obviously, in the "real" trading, you will benefit greatly, if the lot size is calculated depending on the money you have, something like:
forex_nn_01.tsc, part 3.
However, we are doing testing here, not trading. And for testing, we need, among other things, to see how smooth the profit curve is. This is much easier to do if the lot size is the same (in ideal situation, for dLotSize = 100 we will get a straight line, with some positive slope, while in case of the adjustable lot size we will get an exponent, that is much harder to analyze).
Later in this text, we will apply money management rules to our trading system, but not yet.
After we are done with the last part of our testing function, let's walk through the rest of the code.
The following function creates a CLV indicator. It takes the interval as a parameter, which means that we can call it many times, during the optimization, passing different numbers.
Note, that I am using the NN that works in the 0 - 1 interval. The data can be normalized, of course, but I chose to divide the indicator by 2 and to add 0.5, so that it is in 0 - 1 range.
forex_nn_01.tsc, part 4.
To make lag file, we can use the CREATE_LAG_FILE function. Alternatively, we can do it by explicitly providing all the necessary code. In this case, we have more control, and we are going to need it, if we begin varying number of lagged columns and so on.
forex_nn_01.tsc, part 5.
The nRemoveFirst parameter is important. Many functions, like indicators, moving averages, lag generators, for that matter, do not work well within the first few records of the dataset. Let's say we have MA(14) - what will it place in the records 1 - 13? So we choose to simply remove the first few (unreliable) records.
For the NewNn, as well as for all functions of this program, we need to pass as parameters only what can be changed during optimization process. For example, there is no need to pass a "skip before" parameter, as it is always the same.
forex_nn_01.tsc, part 6.
The TeachNn function simply brings up the NN dialog.
forex_nn_01.tsc, part 7.
Finally, we need a charting function. It is not mandatory, but it is always a good idea to see what our profit line looks like. The following code uses the XML to produce a chart, so it is a good idea to read the tutorial. Alternatively, you can draw the chart, rather than saving it in a file. To do it, use one of the samples, that are in the samples/scripts directory. Finally, you can modify the code, to produce HTML, rather than XML. HTML is easier to learn, but the code itself will be a bit less readable.
forex_nn_01.tsc, part 8.
Compile and Run the script.
Bem. As expected, using 7 hours as an interval for the CLV produced very poor results:
FOREX Trading Strategies and Optimization.
The reason for the poor results is quite obvious: we used the Interval, Stop Loss, buy and sell levels and other parameters, that were purely random - we just picked first that came in mind! What if we try few combinations?
FOREX Trading Signals: What to optimize?
First of all, by overoptimizing the buy and sell levels, we can ruin our future performance. However we still can tune them, especially, if the performance is close for close values of buy and sell limits. For example, if we have -10% profit at buy limit equal 0.3, and +1000% profit when it equals 0.35, then there is probably a lucky coincidence, and we should not use 0.35 for our trading system, as in future it will probably not happen again. If, instead, we have -10% and +10% (instead of +1000%), it may be safer to use.
Generally, our trading system should be built for WORSE possible scenario, as if during the "real" trading the performance will be better, then during the test, we will survive, but not the other way around.
We can vary the value for the indicator interval, provided we have enough trades, so that we can be confident, in terms of statistics, in the performance of a system.
We certainly can vary the number of neurons, I don't think it can be overoptimized easily.
We can vary number of inputs and lags for inputs. It is possible to overoptimize this, but it is not very likely to happen.
And, of course, we can try different indicators.
Accurate FOREX Signals: How to optimize?
As have already been mentioned, if we start trying all possible combinations, it will take forever. So we are going to cheat. We will create pre-defined sets of parameters, that we think are reasonable, and pass them to the program.
To make as few calculations as possible, note, that Clv-1 and Clv-2 are, probably, important, but what about Clv-128? And - if we already have Clv-128, do we need Clv-129? Probably, not. So we are going to have something like Clv-1, Clv-2, Clv-4, Clv-8, . Clv-128 with just few variations, which will make our calculation time thousands times shorter.
FOREX Professional System Trading: Can it work at all?
What is it exactly we want to predict? Until this point we have used 1 hour chart for EURUSD, and we were predicting the next bar's CLV. Will the CLV+2 be better? What about CLV+3?
Also, especially considering the poor performance of our first trading system, it would be nice to know, that - at least in the "ideal" world, the goal (profitable trading) can be achieved.
To answer these questions, let's create a simple testing program. We assume, that our prediction is 100 % accurate, and, based on this assumption, we will use CLV+N, not the NN predicted one. That's right - we are going to take data from the future, and to use them instead of the NN prediction. This approach wouldn't work in the real life, of course, but at leats, it will give us some ideas of what to expect.
When looking at the results, please keep in mind, that we are not using any advanced money management, our lot size is set to a minimum $100. If you use variable lot sizes, results will be dramatically different. But even at a lot size set to 0.1 we can see (below) that getting the information from the future is an ultimate trader's "holly graal".
forex_nn_02.tsc, part 1.
You are already familiar with this code, it was used in FOREX_NN_01.TSC. It handles data loading. The only difference is in the part that obtains the list of files in the "images" directory and deletes all files with the. PNG extention. The reason for this code is simple: during our tests we are going to create many - may be, thousands - image files. We don't want them to hung around after we are done. So at the beginning of the script we are deleting images, created by other scripts.
forex_nn_02.tsc, part 2.
Just a few comments. We do not want to try all possible values for, for example, CLV interval. Instead, we can create an array, that contains only values we want to test. Then (see below) we will walk through this array.
Stop losses are important part of any trading strategy, so I have decided to vary them as well. It is a dangerous idea, however, as it is easy to overoptimize the system.
I am planning to test different values for buy and sell levels, but it will be done in cycle, without using arrays.
Unlike in our previous example, we want to have a large XML file, containing many images. To do it, I have moved the code, that is forming the XML header and footer outside of the Chart function. Read one of the online XML tutorials for details.
Note, that I am using 0 as the first lag, which means, that first I am testing the indicator (CLV) that was not "shifted" from the future. Just to get an idea, how good out "trading system" would be without NN (horrible, is the right word. It is loosing all the money).
Cortex uses the Internet Explorer control to display XML pages. When pages grow large, it takes a lot of memory. If your computer cannot handle it, consider creating multiple XML or HTML pages, instead. In the case of forex_nn_02, it should not be a problem, as the page is relatively short. Alternatively (that is what I am doing in scripts later in this text), create XML file, but do not open it from Cortex. Open them using Internet Explorer instead - unlike IE control, the Internet Explorer does not have the memory problem.
Now the code that is trying different combinations of parameters.
forex_nn_02.tsc, part 3.
Here, we are using nested cycles. In every cycle, we are assidning some variable (for example, nInterval for the outer cycle). This way the cycle will assign values of all elements of a corresponding array, one in a time. Then WITHIN it, the inner cycle is used, and so on, so that all combinations of all array elements are tested.
In the innermost cycle, I am calling the Test() function, to "test trade", and Chart() to add a new picture to a list of images saved on disk. Note, that this Chart() does not show any images, until all cycles are completed.
The Test() and CreateClv() functions are almost the same as in the previous example. The only real difference is due to the fact that it is called more then once. To do it, I am calling ARRAY_REMOVE to cleanup arrays.
Also, notice, that we are only creating charts for the combinations of parameters, that produce trading system with positive profit. Otherwise, we call "continue", to skip the Chart() function.
Finally, we have Take Profit now, so our trading system can be a bit more flexible.
forex_nn_02.tsc, part 4.
The Chart() function was broken into two pieces. The header and the footer should be written to the XML file only once, so they were moved to the main part of the program.
Also, I am using the counter, to save files under the different names. The information about parameters is written to the header of an image, so we can easily see which one it is. Finally, images are only saved for winning configurations, meaning the balance at the end should be more, then at the beginning.
forex_nn_02.tsc, part 5.
Run the program (it will take some time to complete). You will end up with a large XML page with images, one for each winning configuration.
Some of the results are great, however, as we used data "from the future", this system will not work in the real life. Actually, if you look at the Test() function, you will notice, that the cycle stops before we reach the last element of arrClose:
for(nBar = nRemoveFirst + 1; nBar.
THIS IS C++, just an example.
As you can see, the code is really simple. Now lets do the same using the SLANG script. As in examples before, we will keep the overall structure of the code, so that this example looks familiar. The only difference is that instead of using the built-in APPLY_NN function, we call the function of our own. The code that we do not use (such as cycles) is commented, but not removed.
Note, that the logic behind it was discussed in Neural Networks and Stock / Forex Trading article already. Briefly, the output of this script is formated to be compatible with the MQL, MetaTrader's scripting engine. MetaTrader is a trading platform we use, if you want something different, like TradeStation, for example, you will have to alter the code to comply to its syntax.
Then, in the following chapters, we are going to insert this code in the MetaTrader's indicator, and to use it to trade.
Porting script to trading platform.
The next step is not really required, but it is something, that may be useful. We are going to create a version of a tsc file (one above), but this time, we will use SLANG (Cortex scripting language) to emulate APPLY_NN function. The reason is, in the next chapter we are going to port it to the scripting language of a MetaTrader trading platform, so it is a good idea to make sure everything works.
After we run this function, we discover, that the result it produces is the same, as the forex_nn_05a produced, which means the code works fine. :
Note, that there is a difference at the beginning of the charts, as "our" NN does not try to process the data at the beginning (where lag is incomplete), while the built-in NN does not "know" about this problem. Of course, it doesn't affect the result, as the beginning of the chart is ignored by using the nRemoveFirst parameter in our script (set to 200, which is guaranteed to be larger, then our lag).
Using third-party trading platform.
We have the NN that (more or less) can be used. We have the script, implementing this NN without calls to the Cortex-specific NN functions. Now we are going to port it to the trading platform that can be used for the real trading, which means it can contact brocker, place orders and earn (or loose) money.
As a trading platform, I am going to use MetaTrader.
Disclaimer: I am not related to MetaQuotes in any way. I do not work for them, I am not their affiliate and so on. I use MetaTrader, ONLY because I like it.
I find this program user-friendly, flexible and powerful, and "not a monster". Also, it is free (compare to other packages of this class).
The only (minor) problem is that it is not always easy to find the dealer using MT in your area. Then, when you do a research, you may find couple of brockers, with screenshots on their web sites, that look suspiciously familiar. Yes, they use MetaTrader, but they don't call it MetaTrader!
I have asked for clarification at the company's forum, and they have told me, that they don't reveal brockers using their services. Very strange.
One of the brockers that is not hiding the fact they use MT, is Alpari. They will allow you to open a Demo account, so that you can trade in a real time, but without risking your money.
I am not going to recommeng services of Alpari. Once again, I am not being paid for that. Try their Demo account, and use your own judgement. Or you can start your own research at Internet forums.
Finally, if you do not like the MT, you can probably follow the example below using TS, MS or some other trading platform. Este é apenas um exemplo.
Our MT-based trading system will include two files, the indicator and an expert. This is the way they call it in MQL (scripting language of MT), and I am going to follow this naming convention.
The indicator implements the neural network and draws a chart. An expert takes these data and does trading. As MetaTrader has a "strategy tester", we will be able to test our strategy, to see how good it is.
I will assume, that you are familiar with MQL programming, it is quite close to SLANG and tutorials can be found both at MetaQuotes and Alpari.
Finally, I am using the code structure, that is borrowed from MetaQuotes forum, permission to use it the author of the corresponding posts had granted me permission to use fragments of his code.
Also, as some of our MetaTrader code is the same for all experts and indicators, we moved it to a separate library file. MetaTrader's libraries are nothing but includable files. This library takes care of synhronization, when two or more expert are trying to run in the same time, as well as of few other things. If you use MetaTrader, it will help you to create robust experts, in any case, the MQL language is easy to understand.
mylib. mql, a helper library.
The code should look familiar, all I did was re-writing it, using slightly different language syntax of MQL.
This indicator has two buffers, and draws two lines, one for the original NOC, and one for the NN-predicted NOC. For trading, you don't have to draw both indicator lines, of course (see MQL tutorials to learn how to do it), but I have decided to show them together, so you can compare.
Another difference, that you should know about, is the way MT performs testing. It may, in some cases, be more accurate, then one we did (we did the worse case scenario). Of course, you can always to change the SLANG script from the examples above, to implement any logic you want.
The result of our testing in MT is a bit better, then in Cortex, due to all these reasons.
Keep in mind, that MT calculates the DD in a different way. I still think, that my way is better.
In should be especially noted, that no additional optimization had been performed using MetaTrader's optimizer. We have just plugged our MTS (mechanical trading system) in, and it worked as expected.
É isso. You can now create Cortex Neural Network, optimize it to do trading, and to port it to the trading platform of your choice.
Previsão de Forex.
Este exemplo é muito semelhante ao anterior. A única diferença é que ele mostra dados para divisas (forex) pares de moedas.
Como trabalhar com o applet.
Se você não viu o primeiro exemplo, explore-o primeiro - a descrição básica está disponível lá. Neste applet, os dados a seguir estão disponíveis. Todos eles são valores próximos do fim do dia para todo o ano de 2007, ou seja, 313 valores. Como no applet anterior, cada uma dessas séries temporais tem os seguintes valores: zero para intervalo abaixo de 0, valor de fechamento no intervalo 0-número de valores e novamente zero após o último valor conhecido. EURUSD - USD EUR USD moeda estrangeira dados par USDJPY - EUR USD moeda estrangeira par data USDCHF - EUR USD moeda estrangeira par dados EURJPY - EUR USD moeda estrangeira par dados Observe novamente que este exemplo é fornecido apenas para ilustração. O comércio usando esta configuração simples geralmente não está longe de usar a previsão pelo último valor disponível. Observe também que, para o comércio, precisamos desenvolver regras de entrada e saída e que são mais importantes do que a previsão exata.
Aguarde até que o applet seja carregado.
Applet e descrição (c) Marek Obitko, 2008; A rede neural no applet usa classes Java BPNeuron e BPNet.
do NeuralWebspace, (c) Tom Vehovský, 1998, que foram modificados para os propósitos deste applet.
Forex Nn Ind EA.
Forex Nn Ind EA.
This expert advisor is based on the Forex Nn Ind indicator used by Wackena in his popular Bogie-NN-v8 EA.
The same with two levels, the FNI_HLevel for the long signals, and the FNI_LLevel for the short signals.
You are really excellent, really appreaciate your hardwork !! Below i attach all the material that relate to NN that i found. I will be not around for two weeks because of my final exam. Hope this can help you.
You are really excellent, really appreaciate your hardwork !! Below i attach all the material that relate to NN that i found. I will be not around for two weeks because of my final exam. Hope this can help you.
I need to going to sleep already, because my here now is 1AM(GMT+8). I know you are very hardworking, looking on you keep on update your site and keep on produce new EA, you are not robot, so you should rest some time . See you!!
Start account : 2000$
Since January 2008:
Start account : 2000$
Copyright & copy; 2000 - 2018, Jelsoft Enterprises Ltd.
Комментарии
Отправить комментарий