Guia Avançado Para o MetaTrader 4 - Scripts Os scripts são programas destinados a realizar uma única ação. Ao contrário de um indicador ou Expert que funciona de forma contínua, um script deixa de funcionar uma vez que completou sua função uma vez. Como os Indicadores Personalizados, os Scripts são criados, configurados e lançados da mesma forma que os Especialistas. Ao iniciar o Assistente de Especialistas, selecione Scripts como o objeto a ser criado. Continue da mesma maneira que criando um Expert ou um Indicador Personalizado (consulte as secções Criação do Consultor Especialista e Criação de Indicadores Personalizados deste tutorial). Para configurar parâmetros de script, abra a janela Opções e selecione a guia Expert Advisors. Para abrir a janela: 13 No menu principal gt Ferramentas gt Opções ou Pressionando CTRL O no teclado do computador. 13 13Os principais opções influenciam a operação dos Scripts: Permitir negociação ao vivo - para habilitar os especialistas em modo em tempo real (em vez de testar um Expert em dados históricos). Pergunte a confirmação manual - para enviar a confirmação do comércio antes de enviar o pedido. Permitir importações DLL - para usar DLLs para melhorar a funcionalidade Expert. Confirmar chamadas de função DLL - para permitir o controle sobre a execução de cada função chamada. Permitir que os especialistas externos importam - para permitir que o Expert acesse funções de outras bibliotecas de especialistas ou MQL4. 13 Removendo um Script Um Script é desligado automaticamente depois de completar sua função uma vez. Os comerciantes podem, no entanto, remover um script manualmente. Para remover um Script de um gráfico, clique com o botão direito do mouse no gráfico e selecione Remover Script, como mostrado na Figura 20. Figura 20 - Para remover um Script de um gráfico de preços, clique com o botão direito do mouse no gráfico e selecione Remover Script do gráfico menu contextual. Opções para não programadores Pessoas que não estão interessadas em aprender a programar no idioma MQL4 ainda podem aproveitar os especialistas, indicadores personalizados e scripts. Um número crescente de produtos comercialmente disponíveis pode ser comprado em vários negócios relacionados a negócios on-line, e os usuários do MT4 também podem contratar um programador MQL4 qualificado para executar a codificação. É importante notar que, ao trabalhar com um programador, todas as idéias devem ser quantificáveis e objetivas. Por exemplo, se o comerciante quiser entrar em uma posição longa quando o preço ultrapassa uma média móvel. Ele ou ela precisará especificar o comprimento médio móvel, o ponto de entrada preciso (próximo barra em aberto, por exemplo) intervalo de gráficos e até mesmo o instrumento de negociação. A maioria dos programadores não aceitará empregos que envolvam muita adivinhação por parte do programador, e as especificações do projeto precisam ser absolutamente claras. Em geral, se um Especialista comercial, um Indicador personalizado ou Script foi comprado, ele virá com instruções de instalação específicas. Da mesma forma, um programador geralmente inclui instruções para instalação. É sempre valioso ler as instruções antes de tentar a instalação para evitar qualquer complicação. Parte contratada 3: o roteiro do robô de 100 pips por dia O curso de negociação automatizado finalmente terminou. As primeiras duas partes já foram postadas aqui algum tempo Atrás: a terceira e última parte contém duas lições. Ele primeiro explica como usar algoritmos de aprendizado de máquina para detectar padrões de preços rentáveis para negociação automática de ações de preço. A última lição é sobre a programação de um robô de comércio de qualidade comercial com alguns números de desempenho impressionantes: - 95 vitórias. - lucro médio de 100 pips por dia - garantido. - cerca de 1000 rendimentos anuais sobre o capital. - verificado pelo MyFXBook com 1 ano de negociação ao vivo em uma conta real. Todo o código está incluído. O método de troca usado por este roteiro do robô até agora nunca foi publicado quanto ao meu conhecimento. Para entender as lições, você precisará conhecer as duas primeiras partes do curso. Se algo não estiver esclarecido, pergunte. Posso publicar as lições finais aqui passo a passo nos próximos dias. Membro comercial Juntado em setembro de 2012 141 Posts Bob: Rápido, feche a porta Talvez tenha sido somado. Alice: o que aconteceu Bob: alguém acabou de revelar o segredo comercial final para mim. Alice: realmente Bob: sim. É um método de troca de preço. Preciso que você programe isso imediatamente. Alice: ação de preço O que é Bob: você não usa nenhum indicador. Você troca apenas quando o padrão de vela de preço está certo. Você compara o aberto, alto, baixo e fechado da última vela com o aberto, alto, baixo e fechado das velas anteriores - esse é o padrão. É tudo o que você precisa. Alice: Hmm. Eu li que o japonês usava padrões de vela para negociar o mercado de arroz. Alguns padrões obtiveram nomes engraçados como QuotThree Little Bearsquot ou algo assim. Mas isso foi há 300 anos. Bob: Claro que você não trocará hoje com os padrões japoneses de cachos de arroz se quiser manter seu dinheiro. Mas eu conheço um cara chamado Bert no McDuck Capital. Ele encontrou alguns padrões de vela novos que funcionam para o mercado Forex. Ele disse que é como uma slot machine que sempre ganha. O padrão aparece e o dinheiro sai. Bert obteve um bônus louco e o McDuck está desde então negociando ação de preço com seus padrões. Alice: Então você quer que eu escreva um script que verifique esses padrões e, em seguida, acione um sinal comercial. Não deve ser um problema. Bob: Bem, há um problema. Não conheço os padrões. Só sei que eles são feitos de três velas diárias. Como eles parecem é o segredo. Bert disse que tinha que me matar quando me falou os padrões. McDuck é muito sério nesse assunto. Alice: Hmm. Bob: Você não consegue descobrir os padrões você mesmo. Se um cara da McDuck os encontrou, eu acho que eu também posso encontrá-los. Mas por que eles funcionam, quero dizer, por que um movimento de preço deve ser precedido por um determinado padrão de vela Bob: Nenhuma idéia. Mas esse método funcionou para o mercado de arroz japonês. Talvez alguns grandes comerciantes acordem pela manhã, compare os preços de hoje, ontem e no dia anterior, e depois decidam se eles compram ou vendem sempre da mesma maneira. Alice: se isso estabelecer um padrão, posso aplicar uma função de aprendizado da máquina. Ele passa por preços históricos e verifica quais padrões de vela geralmente precedem um movimento de preços para cima ou para baixo. Bob: Isso será caro Alice: A busca de padrões de vela Não. Ainda assim, estou com medo de ter que carregar mais do que a última vez. Bob: Por que Alice é essa: taxa de risco. Talvez eu seja morto ao programar esse script. Membro comercial Inscrito em setembro de 2012 141 Posts Esta é a primeira versão do script Alices que usa inteligência de máquinas para negociação de ações de preço. Pode detectar um sistema em padrões de vela e, em seguida, usar os padrões mais lucrativos para um sinal comercial. Para este script, você precisará da mais nova versão do Zorro, 1.10. Você pode baixá-lo no zorro-trader. Se você tiver uma versão antiga, atualize-a baixando o novo com o mesmo link de download e instalando-o na mesma pasta. Quando você fez as primeiras partes do curso, muitas linhas neste código já devem ser familiares, mas também há alguns novos conceitos, especialmente as funções assessLong e aconselharShort. Bem, passe por eles em detalhes amanhã. Membro comercial Inscrito em setembro de 2012 141 Posts A função de aconselhamento é o algoritmo de aprendizagem da máquina. Parece uma condição de entrada estranha para um longo comércio: se (recommendLong (PATTERN2,0, priceHigh (2), priceLow (2), priceClose (2), priceHigh (1), priceLow (1), priceClose (1), Preço (1), Preço (1), PreçoFechar (1), Preço (0), Preço (0), PreçoFechar (0)) gt 30) EnterLong () Alice chama advisLong com o método PATTERN e High, Low e Feche os preços das últimas 3 velas. Se adviceLong retorna um valor acima de 30, um longo trade é inserido. Mas quando isso acontece No modo de treinamento, a função advisLong sempre retorna 100. Então, um comércio sempre é inserido. A função armazena um instantâneo de seus parâmetros de sinal - neste caso, 12 sinais dos preços Alto, Baixo e Fechar das últimas 3 velas - em uma lista interna. Em seguida, aguarda o resultado do comércio e armazena o lucro ou a perda do comércio junto com o instantâneo do sinal. Assim, após a execução do treinamento, o Zorro possui uma longa lista interna que contém todos os instantâneos de sinal e seus lucros ou perdas comerciais correspondentes. Os sinais são então classificados em padrões. Alice usa o método de classificação PATTERN2. Ele divide os sinais em dois grupos iguais, cada um com 6 sinais. O primeiro grupo contém os preços das duas primeiras velas da sequência de 3 velas: E o segundo grupo contém os preços das duas últimas velas: Observe que a vela do meio, com deslocamento 1, aparece em ambos os grupos. O preço aberto não é usado nos sinais porque as moedas são negociadas 24 horas por dia, então o fechamento de uma barra diária normalmente é idêntico ao aberto da barra seguinte. O uso do preço aberto enfatizaria os valores abertos e os padrões de fim de semana, o que não é desejado. Dentro de cada grupo de sinais, Zorro agora compara cada sinal com todos os outros sinais. Isso gera um enorme conjunto de resultados maiores, menores ou iguais. Este conjunto de resultados de comparação classifica um padrão. Não importa se priceHigh (2) for muito menor ou apenas um pouco menor do que o preço High (1) - o padrão resultante é o mesmo. Os padrões dos dois grupos agora são colados para formar um padrão único. Ele contém todas as informações sobre todas as comparações de preços dentro da primeira e segunda e dentro da segunda e da terceira vela, mas o padrão não contém nenhuma informação sobre como a primeira vela se compara com a terceira. Bert disse a Bob que é o melhor para a negociação de ações de preço para comparar apenas velas adjacentes -, portanto, os dois grupos de padrões independentes. Se Alice tivesse procurado padrões de 4 velas, o galpão usou três grupos. Depois que o padrão foi gerado, o Zorro verifica a frequência com que aparece na lista e resume todos os lucros ou perdas. Se um padrão aparecer com frequência e com lucro, ele é considerado um padrão lucrativo. Zorro remove todos os padrões não lucrativos ou insignificantes da lista - padrões que não têm uma soma de lucro positivo ou aparecem menos de 4 vezes. Os padrões restantes são armazenados nos arquivos workshop7EURUSD. rul na pasta Dados - um arquivo por ciclo de caminhada para frente. Esse arquivo parece assim: podemos ver que qualquer linha da lista começa com uma combinação de letras estranha, como FCDEABFACEBD. Essa combinação é o nome padrão do padrão que representa o conjunto de resultados de comparação. O número ao lado do nome é a freqüência do padrão - FCDEABFACEBD apareceu 25 vezes no período de treinamento. Seu lucro médio por comércio foi de 4.334. E o desvio padrão dos lucros foi de 11.562. A freqüência, o lucro médio e o desvio padrão são usados mais tarde pelo Zorro para calcular a proporção de padrões de informação. Isso acontece quando testar ou negociar a estratégia. A função advisLong gera um padrão dos sinais atuais e o compara com os padrões armazenados no arquivo. rul. Se nenhum padrão armazenado coincide com o atual, a função retorna 0. Caso contrário, retorna o índice de informações de padrões multiplicado por 100. Quanto maior o índice de informação, mais lucrativo é o padrão. Claro, os padrões com alta relação de informação são menos freqüentes. Portanto, o limite de entrada comercial deve ser um compromisso entre rentabilidade padrão e freqüência. Alice usou um limite de 30 aqui, o que significa que um comércio é inserido para qualquer padrão com relação de informação acima de 0,3. A negociação curta funciona da mesma maneira: se (aconselhar Curto (PATTERN2,0) gt 30) enterShort () A chamada advisShort não possui parâmetros de sinal. Nesse caso, a função usa os mesmos sinais que o último aviso, o que foi o aviso anterior. Dessa forma, longas listas de sinais não precisam ser escritas duas vezes. Amanhã, percorra o resto do script. O reconhecimento de padrões é uma das poucas funções de aprendizado de máquinas que funcionam para negociação com uma configuração relativamente simples. Não hesite em perguntar aqui se algo não está claro com este método. Membro comercial Inscrito em setembro de 2012 141 Posts Existem alguns pré-requisitos para negociação com padrões de velas - vamos ver o resto do código: StartDate 2002 BarPeriod 2460 NumWFOCycles 5 NumWFOCycles ou algum método de teste fora da amostra semelhante é obrigatório para este tipo de estratégia . Todos os sistemas de aprendizagem de máquinas tendem a uma superposição excelente, então qualquer resultado na amostra de padrões de preços, árvores de decisão ou préceptos não tem sentido. A análise de padrões também precisa de tantos bares quanto possível para encontrar padrões significativos. Oversampling não pode ser usado aqui porque os preços High, Low e Close dependem das barras de inicialização e final do tempo - as barras reamostadas produziriam padrões muito diferentes. Então, Alice precisa usar o período de simulação máximo possível, que é a partir de 2002, quando o EUR foi introduzido como substituto para as moedas européias. (Se os dados de preços de um determinado ano não estiverem incluídos no programa Zorro, ele pode ser baixado automaticamente do servidor do corretor ou com o pacote de preço histórico da página de download do Zorro). Pelo mesmo motivo, Alice usa poucos ciclos WFO para obter grandes períodos de treinamento. A bandeira RULES é necessária para gerar padrões de preços com a função de aconselhamento. TESTNOW executa um teste automaticamente após o treinamento - isso economiza um clique no botão ao experimentar diferentes métodos de busca de padrões. A próxima parte do código se comporta diferente no treinamento e no modo de teste ou comércio: o trem é verdadeiro no modo trem. Neste modo, o sinalizador HEDGING está configurado, permitindo abrir posições longas e curtas ao mesmo tempo. Isso normalmente não faz sentido, mas é necessário aqui para treinar os padrões. Caso contrário, as entradas de comércio depois de aconselhar. Longe aconselharShort cedo fechar as posições opostas e, assim, atribuir valores de lucro lucrativos errados aos padrões. TimeExit limita a duração de uma troca, neste caso a 5 barras. Portanto, o lucro ou perda de um comércio é sempre determinado após 5 barras e atribuído ao padrão que existia quando a transação foi registrada. A próxima parte do código é executada quando o Train não é verdadeiro, ou seja, no modo Test ou Trade: o sistema normalmente fecha sua posição quando ocorre um padrão de vela oposto. Existem duas outras condições de saída: uma parada relativamente distante - apenas por estar no lado seguro em caso de choque de preço - e uma saída temporizada após 10 barras. A saída temporizada é usada por causa do método de predição. Ele usa trades de 5 barras, então o horizonte de previsão é de uma semana. Algum tempo após o horizonte de previsão, neste caso, após duas semanas, o preço provavelmente perderá qualquer correlação com o padrão de preço de 10 bares atrás. Manter o comércio aberto por mais tempo não faz sentido. Muitas vezes, é melhor limitar o tempo de troca com um método final, por exemplo, com o TrailStep. Mas aqui uma saída temporizada é usada por motivos de simplicidade. Agora, o lucro que conseguimos com os padrões aprendidos da máquina comercial. Clique em Treinar. Dependendo da velocidade do PC, o Zorro precisará de alguns segundos para executar os cinco ciclos WFO e encontrar cerca de 100 padrões rentáveis em cada ciclo. Clique em Resultado para a curva de equidade: Embora o lucro anual de cerca de 90 parece não muito impressionante, os padrões de preços nos proporcionam uma curva de equidade ascendente relativamente estável e resultados muito simétricos para negociação longa e curta. No entanto, há um método para mais do dobro do lucro anual da negociação de ações de preço - e esse método corre um perigo. Bom lidar com isso amanhã. Commercial Member Junte-se a Setembro de 2012 141 Posts Ok, agora vamos ver o que podemos fazer para tornar este sistema de negociação de ações rentável ainda mais rentável. Um jeito poderia estar eliminando a diferença de fim de semana. Quando um padrão de preço lucrativo aparece durante a semana e leva a uma negociação a ser inserida na sexta-feira, o fim de semana está entre o padrão eo resultado comercial. Isso pode prejudicar o poder preditivo do padrão, ou torná-lo pelo menos menos preditivo do que os padrões que imediatamente precedem os negócios. Permite modificar o script e evitar os negócios de sexta-feira: se (adviceLong (PATTERN2,0, priceHigh (2), price Low (2), priceClose (2), priceHigh (1), priceLow (1), priceClose (1), priceHigh (1 ), PriceLow (1), priceFechar (1), priceHigh (0), priceLow (0), priceFechar (0)) gt 30 e dow () FRIDAY) enterLong () if (adviceShort (PATTERN2,0) gt 30 e dow () SEXTA-FEIRA) enterShort () A função dow retorna o dia da semana e pode ser usada para estabelecer diferentes comportamentos comerciais antes e depois dos fins de semana. Trem, Teste, Resultado: A curva de equidade agora parece definitivamente mais agradável, e também melhor é o lucro anual de 200. Melhorar um sistema desta forma tem um perigo - especialmente quando tempo, data ou critérios ad hoc semelhantes são usados para condições de entrada adicionais. Quem pode dizer que o melhor lucro não é apenas por acaso, resultado de uma superposição. Certo, temos uma razão racional para não entrar nos negócios na sexta-feira. No entanto, esse motivo é rapidamente encontrado em retrospectiva. O script de ação de preços funciona melhor quando a negociação de sexta-feira é impedida, e nós supomos que isso é por causa da diferença do fim de semana. Mas podemos usar um argumento semelhante para não negociar na segunda-feira. Prevenir os negócios de segunda-feira, no entanto, não melhora a curva de patrimônio. Por que não ninguém realmente pode dizer. Alguns comerciantes acreditam que um determinado ativo só deve ser negociado durante suas principais horas de mercado, porque então o volume de negócios é o mais alto e há menos valores abertos. Conseqüentemente, eles trocam o GBPUSD somente durante o horário comercial da Bolsa de Valores de Londres. Outros comerciantes acreditam que um ativo só deve ser negociado fora de suas principais horas de mercado, porque os mercados são menos efetivos. Eles trocam o GBPUSD somente quando a noite em Londres. Algumas estratégias funcionam melhor com o primeiro método, alguns com o outro - e, consequentemente, seus autores às vezes deram a primeira e às vezes a outra explicação. Qual é o direito. Quanto mais você desenvolver estratégias, mais você perceberá que a teoria sobre o comportamento do mercado é inútil. Somente o desempenho da prova é importante. Mas há muitas armadilhas que levam a resultados excessivos e otimistas. Você nem sempre pode evitar essas armadilhas. Mas você deve estar ciente de que eles estão lá. Agora, um breve resumo do que aprendemos nesta lição: 9658 Os padrões diários de vela podem ter poder preditivo sob certas circunstâncias. 9658 A função de aconselhamento gera regras de comércio com algoritmos de aprendizado de máquina. 9658 O teste fora da amostra é obrigatório para estratégias baseadas em AI. 9658 HEDGING permite abrir posições longas e curtas ao mesmo tempo. 9658 TimeExit limita a duração de uma negociação. 9658 A função dow retorna o dia da semana. 9658 Tenha cuidado ao melhorar um sistema com condições de entrada adicionais. Amanhã, comece com a lição final sobre a programação de um robô de alto lucro que supera praticamente todos os outros robôs comerciais que são discutidos em fóruns de comerciantes. Um script robô scam funciona de uma maneira muito diferente de uma estratégia comercial normal. A parte menos importante do script é o algoritmo de sinal de comércio. A maioria dos robôs usa aqui uma estratégia simples baseada em indicadores, como os sistemas encontrados publicados nos fóruns de comerciantes. O desenvolvedor de robôs geralmente sabe que não gerará lucro, mas isso não é importante por razões que logo se tornarão claras. Alice decidiu por uma abordagem ainda mais simples - esta é a sua primeira versão (taxa: 44,000): a estratégia entra em um comércio aleatório em qualquer barra. A função aleatória em 50 de todos os casos retornará um número que é maior que 0, portanto, desencadeando um comércio longo, caso contrário ele irá desencadear um curto comércio. Se a negociação não tivesse custo, esta estratégia teve uma expectativa de zero. Um clique no teste revela uma perda média de cerca de 3 pips por comércio. 3 pips são apenas o spread de corretores simulado, a diferença de preço Ask-Bid que sempre é perdida. Então não é surpresa aqui. Este script de negociação aleatória obviamente não é lucrativo. Alice tem que proxeneta-lo. O primeiro passo é configurar alguns parâmetros do sistema e cumprir a demanda de Bobs da taxa de 95 vitórias: o robô deve trocar uma vez por dia, então Alice precisa de um período de barraira de 1440 minutos. Backtest é restrito para simular o ano de 2012 - o robô deve funcionar por apenas um ano, então não é necessário um backtest mais longo. Ele também não usa nenhum período de lookback, pois não há nenhum indicador ou outra função que precisaria de qualquer histórico de preços. Portanto, esta é a configuração dos parâmetros: BarPeriod 1440 StartDate 2012 NumYears 1 LookBack 0 As próximas linhas definem uma perda de parada a 200 pips a distância do preço atual e uma meta de lucro a 10 pips de distância: Stop 200PIP TakeProfit 10PIP Desta forma, o objetivo de lucro Será atingido 20 vezes mais cedo do que a perda de parada - o que significa que normalmente será atingido 20 vezes mais vezes. A partir de 20 negociações, 19 serão conquistadas e apenas uma será perdida - esta é a precisão 95 que o robô precisa para compartilhar a propaganda de Bobs. No entanto, para isso, Alice deve certificar-se de que qualquer comércio acabe por atingir a perda de parada ou a meta de lucro. Qualquer outra saída estragaria o 95. Outra saída acontece ao entrar em uma troca na direção inversa, que fecha automaticamente o comércio atual. Um método para evitar isso seria a configuração de Zorros HEDGING flag. No entanto, a cobertura não é permitida aos cidadãos dos EUA, que são os principais compradores de robôs. Por não perder o mercado dos EUA, Alice impede a reversão do comércio apenas entrando em um novo comércio quando nenhum comércio está aberto: se (NumOpenTotal 0) se (random () gt 0) enterLong () else enterShort () A variável predefinida NumOpenTotal é a atual Número de negociações abertas. Um clique no teste revela que a versão atual do script tem, de fato, cerca de 95 taxas de ganhos. Claro que isso não melhora a sua rentabilidade. Embora 19 das 20 negociações sejam conquistadas, a perda do dia 20 obtém todos os lucros dos 19 vencedores antes. O único efeito da taxa de alta vitória é agora um padrão de dente de serra estranho na curva de equidade: podemos ver que as seqüências de negociações de 1 dia de vencimento fazem com que partes da curva de equidade levante linearmente até o ponto em que uma troca não está atingindo a Alvo de lucro no mesmo dia. Este comércio permanecerá aberto por um longo período de tempo, possivelmente atingirá sua perda de parada e estragará a curva de equivalência patrimonial. Lucrativamente, o sistema não é melhor do que a versão anterior. Mas Bob quer lucro de 100 pips por dia. Assumindo 250 dias de negociação por ano, o que significa um retorno anual de pelo menos 25 mil pips - o suficiente para despertar a expectativa de grande riqueza e vender muitos robôs. Alice pode ajustar o script para gerar 100 pips diários - lucro real, da negociação ao vivo - e isso com uma estratégia obviamente não lucrativa. Sim, ela pode. É a magia das estatísticas, em que bem se olha amanhã. Membro comercial Sessão de setembro de 2012 141 Posts Ok, vamos descobrir como obter lucro com negociação aleatória. A perda média de um comércio aleatório é o spread ou a comissão. Assim, um comércio por dia e 3 pips espalhados produzirá uma perda média de 750 pips por ano. Isso não significa que todos os comerciantes aleatórios receberão perda de 750 pips até o final do ano. Alguns podem acabar com uma perda maior, alguns até com lucro. Permite a 3000 comerciantes um pouco de capital inicial e a tarefa de entrar em negociações aleatórias, uma troca por dia, por um ano. Ao final do ano, juntaram os resultados em um gráfico de estatísticas. Será assim: Este gráfico de distribuição de lucros pode ser gerado com o script descrito abaixo. Executa 3000 ciclos de simulação de 1 ano da primeira estratégia de negociação aleatória Alices. O eixo x do gráfico exibe o lucro ou perda em pips no final do ano. O eixo y mostra o número de comerciantes que conseguiram esse lucro ou perda particular. Podemos ver que o maior grupo - cerca de 130 comerciantes - teve perda de 500 pips após um ano. Há também alguns comerciantes infelizes com perda de mais de 7000 pips, mas, por outro lado, no lado direito do gráfico, alguns ganharam mais de 7000 pips de lucro. Sem dúvida, esses caras estão se considerando comerciantes geniais e se gabam com Seu sucesso em fóruns de comerciantes. Essa distribuição de lucro é uma distribuição normal de Gauss - o famoso quotBell Curvequot. Parece um pouco instável porque 3000 amostras não são suficientes para um sino perfeito. Ao executar a simulação com muitos outros comerciantes, a curva será mais regular, mas o script precisará de mais tempo para executar. O pico da curva do sino é de -750 - a perda média a ser esperada com propagação de 3 pips por comércio. Você pode gerar esses gráficos de distribuição de lucros com o seguinte script: a estratégia Alices agora é chamada de estratégia de função externa1 - isso não é realmente necessário, mas facilita a experimentação com diferentes estratégias. Alguns comandos no script são novos. Utilizamos oversampling para executar a simulação de um ano muitas vezes: o excesso de amostragem é normalmente usado para aumentar o número de negócios em uma simulação. Aqui, o objetivo é apenas repetir a simulação 3000 vezes, um ciclo de simulação por comerciante. EXITRUN é uma bandeira de status do Zorro que está definida na última corrida de cada ciclo, no final do ano. É (EXITRUN) e torna-se verdadeira e as seguintes linhas são executadas: int Passo 250 int Resultado chão ((WinLongWinShort-LossLong-LossShort) PIPCost Step) WinLongWinShort-LossLong-LossShor t é o resultado do ciclo de simulação atual. Não podemos usar WinTotal-LossTotal como na oficina 6, porque os valores totais são resumidos em todos os ciclos. Nós dividimos o resultado por PIPCost para convertê-lo em pips. Nós dividimos ainda mais por 250 (a variável Step) para distribuir os resultados entre 250 pips de barras largas. Se um resultado for 1 pip ou 249 pips não importa - ambos contribuem para a mesma barra. A função do chão converte o valor resultante em um inteiro que podemos plotar em um gráfico. Para isso, a função plotBar é usada: isto desenha uma barra em um gráfico chamado quotProfitquot na posição do gráfico Result40. O gráfico sempre começa na posição 0, então o 40 tem o efeito de deslocá-lo para a direita e permitir que resultados negativos também sejam visíveis. O valor do eixo x pertencente a essa barra é StepResult. Nós dividimos o resultado em 250 para a distribuição entre barras, de modo que esta multiplicação permite que o valor da barra de barras apareça no eixo x abaixo da barra. O 1 é a altura da barra. A altura é resumida (SUM), de modo que a altura da barra aumentou em 1 para cada ciclo cujo resultado corresponde ao valor das pipas de barras. BARS diz a função plotBar para traçar barras em vez de uma linha, e LBL2 diz para imprimir apenas cada 2º valor no eixo x - caso contrário, seria difícil de ler. O último parâmetro, VERMELHO. Dá a cor da barra. Você pode ver que o gráfico resultante acima também desmascara um mito generalizado na cena do comerciante. É um fato citado que 95 de todos os comerciantes privados perdem todo o seu dinheiro já no primeiro ano. Não é verdade - pelo menos não com negociação aleatória. Você pode estimar a partir da distribuição de lucro que apenas cerca de 55 perder dinheiro (a soma das barras vermelhas com lucro negativo), enquanto 45 terminam seu primeiro ano com lucro. Claro, a maioria desses 45 anos sorrateiros perderá em um dos seguintes anos quando continuarem a negociar - mas levaria 5 anos até 95 perderam o dinheiro. Amanhã, veja como Alice pode manipular essa distribuição de lucro para finalizar o ano com 25,000 Pips lucro. O que acontece com a distribuição de lucros quando Alice usa seus objetivos de parada e lucro para obter a taxa de 95 vitórias. Apenas edite o script postado acima e substitua a chamada de estratégia1 () com strategy2 (). Qual é a versão stoptakeprofit: a distribuição de lucro resultante: o pico do sino ainda está em -750 pips, mas a distribuição agora é muito mais estreita e um pouco distorcida para o lado esquerdo. Restringir negociações com metas de stop e lucro elimina grandes ganhos e grandes perdas. Isso coloca limites superiores e inferiores ao resultado anual, apertando o sino de ambos os lados. Com o objetivo de lucro de 10 pips, nenhum comerciante pode ganhar mais de 1750 pips por ano, mesmo no caso improvável de que todas as negociações sejam conquistadas. No entanto, Alice precisa de um resultado anual de pelo menos 25 mil pips. Ela não pode fazer nada sobre a perda média de 750 pips. Mas ela pode manipular a curva de distribuição de lucros de forma que um grande número de comerciantes acabam com 25 mil pips. Para isso, Alice apenas adiciona 3 linhas mais à sua estratégia: var ProfitGoal 100BarPIPCost var ProfitCurrent WinLongWinShort-LossLong-LossShort Lots clamp ((ProfitGoal-ProfitCurrent) (7PIPCost), 1, 200) Este é um sistema de martingale. Tais sistemas são usados, mais ou menos ocultos, na maioria dos robôs. Na primeira, Alice determina um objetivo de lucro. Ela precisa de 100 pips por dia. Um dia é equivalente a um bar, então, em qualquer barra, o lucro acumulado deve ser 100 pips vezes o número da barra. Isso é multiplicado por PIPCost para obter o resultado na moeda da conta em vez de pips e armazenado na variável ProfitGoal. O lucro atual é então calculado na próxima linha e armazenado na variável ProfitCurrent. A terceira linha é a martingale. O tamanho do lote é definido dependendo de quanto o lucro atual se desvia da meta de lucro. Se estivéssemos muito abaixo do nosso objetivo, precisamos de um tamanho muito grande para recuperar o atraso. O número de lotes é calculado apenas para que o próximo mercado vencedor alcance o objetivo de lucro. Para isso, a diferença de lucro é dividida pelo lucro esperado por lote. O lucro por lote de um comércio vencedor é 10 pips lucro alvo menos 3 pips espalhados. O resultado, 7 pips, é novamente multiplicado pelo PIPCost para convertê-lo em moeda da conta. A função de grampo limita Lotes entre 1 e 200. Precisamos de pelo menos 1 lote por comércio, e não queremos exceder 200 lotes por não ser óbvio demais ou arriscar perdas loucas. Ao analisar as estratégias do robô, pode-se notar tal sistema de martingale a partir de picos indicadores no tamanho do lote. Por esse motivo, os robôs ou provedores de sinal geralmente aumentam não o número de lotes, mas o número de negócios, que é menos suspeito. Se você selecionar o script de estratégia modificado e clicar em Testar repetidamente, cada clique agora gerará uma curva de equidade diferente. A maioria parece assim: mas surpreendentemente muitos se parecem com isto: esta é apenas a curva de equidade perfeita que Bob queria para seu robô. É mesmo um pouco perfeito demais: sua inclinação direta vem da variável ProfitGoal que apenas aumenta linearmente com o número da barra. Para realmente vender o robô, Alice teve que modificar a fórmula de metas de lucro para permitir que a curva apareça mais irregular e realista. Nós deixamos isso como um exercício para o leitor. Permita agora copiar a estratégia modificada em nosso script de distribuição de lucro, para determinar a distribuição de lucro (mude o Passo para 2500 para obter uma escala maior): Esta distribuição não se assemelha mais a uma curva de sino. Embora a perda média ainda esteja em -750 pips, a distribuição obteve uma cauda esquerda extremamente longa (a barra alta na extremidade esquerda apenas representa a soma de todas as barras que não cabem no gráfico) e um pico afiado à direita no 25 000 ... 30,000 pips área de lucro. Dos nossos 3000 comerciantes, cerca de 1100 ganharão mais de 25 mil pips com este robô. Infelizmente, cerca de 1600 comerciantes sofrerão perdas, algumas até perdas extremas em excesso de 200 mil pips. Mas esperamos que uma chamada de margem misericordiosa os salve cedo. O gráfico de distribuição de lucro é um pouco enganador. Na verdade, o ano não terminará com 1100 comerciantes de sorte. Muitos deles terão mordido a poeira antes, porque suas curvas de equidade, apesar de alcançar o objetivo de 25.000 pips no final, passariam por extratos extremos entre eles e eliminariam sua conta. Vamos ver quantos comerciantes não encontrarão chamada de margem e alcançar o objetivo final sem problemas. For this, edit the script again and modify the trade entry condition from if(NumOpenTotal 0 and ProfitCurrent gt -250) Every trader will now refrain from further trading when his loss exceeds 250. This changes the profit distribution remarkably: About 500 traders now gave up on the way, visible in the high peak of the -5000 pips bar that represents the 250 loss on the simulated micro lot account. The loss can be of course higher when the last losing trade had a high lot size - thats why many bars are even beyond -5000 pips. Anyway, 600 traders still reached the 25,000 pips end goal - and this with totally random trading So Alice now has a script that indeed generates more than 25,000 pips per year. Theres a slight problem though - it only works for 20 (600 out of 3000) of its users. Most of the remaining 80 will also earn profits in the first months due to the martingale system and the high win rate, but will have lost all their money by the end of the year. Bob will mercifully not mention this in his robot advertisement - but he needs something else instead. For selling the robot, at least one of those 600 profitable equity curves has to be verified on a real account by a trade verification service. For this purpose Bob will invest 10,000. Not, as you might think, for bribing the service to confirm a fake curve. No, they are certainly honest guys and wont accept bribes. The 10,000 are used in a different way, which well describe tomorrow. Forex News Trader Product Overview Comparison Reviews Manual Guide FAQ Forex News Trader is a unique robot that allows you to trade the news by your predefined strategy. It loads every piece of news from several popular Forex websites. You can choose any news and preset the strategy to trade it, and then Forex News Trader will trade that news by selected strategy automatically when the news comes. This tool uses unique technology to load data with full details from popular forex websites. Currently, it supports 3 news feed data sources: ForexFactory. DailyFx and Myfxbook. An alert will be sent to your mobileemail before an upcoming news release. Moreover, it also marks the news release points on the chart for further review and research. Forex News Trader support up to 5 advanced strategies that effective with news trading. The order controlling is very professional and absolute automated. Moreover, you can use it as a powerful tool to trade manually with those automated strategies. News release gives opportunity to have pips since the price usually has big move at that time. Now, with this tool, trading news becomes easier, more flexible and more exciting than ever. No waiting, no missing, no confusing anymore. Just setup for important news once a week, and this tool will trade all those news exactly as you planned. Fully automated update data Support multiple data sources Flexible news events filter Send notification to emailmobile before news releases Non-disturb alert (not alert at night) Visually show news events on chart Auto and manual refesh data Flexible adjustment panel Support 5 advanced strategies Flexible trading parameters for each strategy Support unique 8220floating8221 pending orders Support grid and martingale controlling Trading setup plans are managed independently Can be used as manual trading planner Auto update new version Support both MT4 and MT5 platform Licenses 038 Pricing 79 1 month 149 3 months 229 6 months Simultaneous accounts per license 1 account at the same time 5 accounts at the same time 5 accounts at the same time 7 days after registration After subscription period No expiry as long as your account is under our referral and account balance is at least 5000 Purchase via Paypal, Skrill, WebMoney or DebitCredit cards Purchase via Paypal, Skrill, WebMoney or Debi tCredit cards Open live trading account with one of our partner brokers under our referral and deposit at least 5000 You can use the product with any account number or on any computerVPS. Mas apenas uma quantidade total máxima de contas simultâneas pode usar o produto ao mesmo tempo. Compare with our other products Post navigation
No comments:
Post a Comment