Forex broker site script


forex corretor site script gtgt Melhor forex corretor site script Forex site de Negociação Forex Trading site forex corretor site script forex corretor site script gtgt Melhor forex corretor site script Site de negociação Forex Forex Trading site forex corretor site script forex corretor site script gtgt Melhor forex corretor site script Site de negociação Forex Site de negociação Forex Script de site de corretor forex Site de corretor de forex gtgt Script de site de corretor forex Site de negociação Forex Site de negociação Forex Script de site de corretor forex site de corretor gtgt Script de site forex corretor Site de Forex site de corretor forex gtgt Melhor forex corretor website script Forex Trading site Forex Trading site forex corretor site script forex corretor site script gtgt Melhor forex corretor site script Forex Trading site Forex Trading site forex corretor site script forex corretor site script gtgt Melhor forex corretor site script Forex Trading webs ite site Forex Trading forex corretor site script Script de site corretor forex Artical Negociação no mercado de moeda ou negociação em moeda estrangeira em uma base regular é um hobby bastante interessante. Mas você sabia que esse passatempo também pode lhe render muito dinheiro? Sim Forex trading é uma excelente fonte de renda adicional para pessoas que estão dispostas a dedicar tempo e esforço. No entanto, antes de prosseguir para entender os detalhes, você precisa se familiarizar com o básico. Aqui está o guia básico para iniciantes que foram abrigando aspirações para torná-lo grande no domínio do comércio Forex. Conheça as terminologias Sim Esta não é de forma alguma uma tarefa complexa. Na verdade, esta é a regra geral de entrar em qualquer negociação. Tudo o que você precisa fazer é investir um pouco de tempo em pesquisa e entender os termos mais usados ​​na negociação Forex. Por exemplo, quando você fala sobre Forex, alguns dos termos comuns são moeda base, taxa de câmbio, moeda de cotação, etc. Na primeira fase do comércio Forex, você deve gastar bastante tempo aprendendo esses termos estudando sobre eles na Internet, leitura de livros, etc. Entenda uma cotação Forex Antes de entrar na negociação em tempo real, certifique-se de que você entendeu corretamente uma cotação Forex. Na verdade, se você tiver. Burger Straddle Script Registrado em julho de 2006 Status: Membro 2.970 Postagens Este é o Straddle Script que eu uso para trocar notícias. É o culminar de muitos meses de experiências de negociação de Live Accounts com vários corretores de corretores lentos a rápidos e de spread fixo a corretores de spread variável. Para instalar: 1. Faça o download e salve na pasta EXPERTS / SCRIPTS. Este é um script, não o EA, então salve-o conforme especificado. 2. Ativar quotAllow live trading, conforme mostrado abaixo 3. Ativar quotAllow DLL importsquot como mostrado abaixo 4. Verifique a configuração de tempo do seu computador. Você deve ter o TimeZone correto para executar este script corretamente. Assegure-se de estar totalmente sincronizado com um World Timer respeitável. img401.imageshack. us/img401/2055/optionsin5.gif Algumas pessoas afirmam que não conseguiram instalar este script que não apareceria nos Scripts. Provavelmente, sua plataforma MT4 está corrompida, reinstale a sua plataforma MT4 e tente novamente. Se você ainda não conseguir trabalhar, experimente com outro corretor. Se isso ainda falhar, tente com um computador diferente. Se isso ainda falhar, eu não posso ajudar mais. As instruções devem ser extremamente simples de seguir. Não se preocupe em abrir este script com o MetaEditor. Isso é distribuído como arquivo ex4, não como mq4. Burger Straddle Script Características: 1. Comércio com 2 Straddle Sets. 2. MaximumSpread limite para evitar ficar preenchido por alargar o spread. 3. OCO (One Cancel Other) 4. Apagar automaticamente ordens não tocadas após o horário das notícias 5. Intervalo de tempo preciso não pode ser enganado pelo erro de tempo do servidor 6. Modifica e mantém as distâncias dos pedidos para os preços atuais antes das notícias. 7. Trailing Stop com MaxTrailingStop 8. Função Fast Abort (auto remove pedidos pendentes em um clique) 9. Fast 10. Feed de Notícias img294.imageshack. us/img294/1192/burgerzh1.gif Há um Relógio Amarelo na Tela. Este é o botão PANIC / ABORT. Se por qualquer motivo você quiser abortar o BurgerStraddleScript, simplesmente APAGUE este Clock e o Script irá abortar, apagando todos os Pedidos Pendentes. Isso pode ser feito a qualquer momento. O melhor é obter este relógio selecionado imediatamente assim que ele aparecer (como mostrado acima). Dessa forma, basta pressionar a tecla do teclado quotDELquot e ela será interrompida em um toque de tecla. BurgerStraddleScript exibe várias informações: Risco / Recompensa, Tempo e Dados de Notícias. Script sempre verificar o seu tempo de computadores e não o tempo de Brokers. Se você alterar / modificar o horário do seu computador, isso terá efeito imediato no script. A mais recente adição ao BurgerStraddleScript é o News Feed. Demora 2-15 segundos para buscar os números reais, mas ainda é melhor ser cego. Esta parte é experimental e tem muito espaço para amadurecer. img180.imageshack. us/img180/9687/inputseh1.gif A maioria das variáveis ​​acima são quotself explanatoryquot por isso vou discutir os não tão óbvios, explicando como funciona: 1.Quando for executado, ele vai aguardar o tempo para colocar Ordens Isso é definido como SecStartOrder segundos antes do NewsTime. Para a maioria das corretoras, especifique em qualquer lugar entre 60 e 300. NÃO o defina abaixo de 30 segundos, a menos que seu corretor seja rápido. Esteja informado de que o BurgerStraddleScript fará as ordens a distâncias muito longas. NÃO SEJA ALARMADO Na ​​minha experiência, fazer pedidos é muito mais lento do que Modificar Ordens e, assim, programá-lo para colocar as ordens muito antes do que o normal e confiar na modificação para aproximá-lo. 2. Depois de fazer pedidos, ele aguardará o tempo para Modificar os pedidos. Isso é definido como SecModifyOrder segundos antes do NewsTime. Durante a Fase de Modificação, ele manterá os pedidos em distância a partir dos preços atuais seguindo-os até o horário de notícias definido. Melhor SecModifyOrder é 10 30 dependendo da velocidade do seu corretor e da volatilidade dos preços antes das notícias. 3. Uma vez decorrido o horário do noticiário, ele apagará tudo se nada acontecer. Ou exclua o pedido que não está preenchido. Se o TrailingStops estiver definido, ele rastreará os pedidos preenchidos. Para desabilitar a funcionalidade Trailing Stop, simplesmente defina: SecTrailingTime como 0, ou TrailingStop1 (ou TrailingStop2) como 0 ou TrailingStop1 (ou TrailingStop2) como números extremamente grandes ou Defina MaxTrailingStop como um número negativo muito grande (ou seja, -50, -100 , -200). A partir da v3h, um MaxTrailingStop é adicionado. MaxTrailingStop irá parar o Trailing Stop de ir além do MaxTrailingStop. Exemplo: MaxTrailingStop 10 Compre 1.9725 SL 1.9700 O preço subiu e o SL também subiu. Quando o SL está em 1,9735, ele irá parar o Trailing. Exemplo: Eu quero quebrar mesmo MaxTrailingStop 0 Exemplo: 5 pips bloqueados no lucro MaxTrailingStop 5 Exemplo: Trazer SL para -5 pips do Preço de Entrada e não ir acima de MaxTrailingStp -5 MinDistance OrdDistance MaxDistance Como regra geral, MinDistance lt OrdDistance lt MaxDistance OrdDistance é a distância em que, durante o tempo de modificação, o BurgerStraddleScript irá colocar as ordens na referida distância. Uma vez que um pedido se aproxime de MinDistance, o script irá modificá-lo para fora para OrdDistance se um pedido chegar mais longe que MaxDistance, o script irá modificá-lo para dentro para OrdDistance. Para uso normal, basta definir todas essas três variáveis ​​iguais entre si. Não há nenhum número recomendado aqui - é critério dos comerciantes. Os valores mais usados ​​seriam 10. O melhor resultado é definir MinDistance OrdDistance-1 e MaxDistance OrdDistance1. MaximumSpread Essa variável protege você do aumento da propagação. Se o corretor aumentar de repente mais do que o MaximumSpread, o BurgerStraddleScript irá ABORTAR e excluir todos os pedidos pendentes. Em corretores que não aumentam o spread, ou se sabe que não ampliam o spread, você pode definir isso para igualar o spread do par de moedas. No entanto, em corretores que aumentam o spread, agora isso é um problema. Você pode desativar o MaximumSpread configurando um número grande ou dar a ele um número com o qual você se sinta confortável. Melhor é configurá-lo igual ao seu StopLoss-1: MaximumSpread StopLoss-1. Aqui estão as opções: 1. MaximumSpread StopLoss -1 2. MaximumSpread Current Spread 1 3. MaximumSpread muito grande número desativado MaximumSpread 4. MaximumSpread (Current Spread StopLoss) / 2 Uma vez que um pedido é preenchido, MaximumSpread é inútil. MaximumSpread é uma proteção antes que o pico de notícias ocorra, não durante, não depois. NewsTime NewsTime pode ser qualquer um dos seguintes formatos: É de suma importância ter seu computador totalmente sincronizado com um Relógio Mundial até o segundo. Mas é claro, você tem a opção de compensar a hora exata das notícias escolhendo 8:43:58 ou 8:28:12 ou 8:32:56 em vez de 8:30:00. Eu prefiro ao TimeSync meu relógio do computador. Quão difícil é sincronizar o tempo do seu computador? É ilegal ter um tempo preciso img243.imageshack. us/img243/3668/syncti8.gif Como o Metaquote corrigiu o Time Bug, o NewsTime está agora de volta na Hora Local a partir da v3g. No entanto, você ainda pode especificar o horário GMT (12: 30GMT), mas será convertido de volta para a hora local (também conhecido como horário dos computadores). Há um pequeno erro: 12:30 refere-se a 12:30 PM, 12:30 PM refere-se a 24:30 e 12:30 ainda é 12: 30 PM. Portanto, tenha cuidado para não especificar PM ao usar 12 OClock. REGISTRO DE ATUALIZAÇÃO v3g: O NewsTime está de volta à Hora Local O NewsTime pode aceitar o horário GMT (12: 30GMT) e será convertido de volta para a hora local apropriada. O NewsTime pode usar o sufixo quotPMquot. ou seja, 20:30 20:30 NewsFeed Não expira em contas de demonstração 3h NewsFeed removido para evitar lentidão NewsFeed é separado em um indicador. Introdução do MaxTrailingStop 3i quotShareWarequot versão AVISO BurgerStraddleScript pode ser usado em diferentes gráficos ao mesmo tempo, mas se você fizer isso, você está efetivamente inundando o servidor Brokers e o MT4 responderá (retaliar) colocando sua conta em “Contexto de Negócios Ocupado”. A sua conta por vários segundos a minutos. Quando em Trade Context Busy, você não pode modificar ordens, não pode abrir posições e não pode fechar posições (a menos que elas fechem por conta própria via SL, TP ou Margin Call). NÃO e eu repetimos NÃO rodamos vários BurgerStraddleScript para executar ao mesmo hora, no mesmo par de moedas, ou pares de moedas diferentes. BTW. Este não é um bug do BurgerStraddleScript. Você experimentará a mesma coisa com outros EA / Script. Se você tentou enviar vários pedidos ao corretor ao mesmo tempo (inundando o servidor), sua conta será bloqueada. Então, executar EA / Scripts que coloca muitos pedidos pode bloquear você. Todas as instruções serão escritas nesta página. Eu também incluo para download, o meu "Script de Informação de Mercado" que você pode usar para determinar o Spread e a Distância Mínima permitida pelo seu corretor para o par em particular. Eu uso isso antes de definir o meu Straddle para conhecer as distâncias e se espalhar. Não é nada demais. Disponível para download também é minha implementação do FFCal. Este BurgerCalendar é um indicador. então baixe-o na sua pasta de indicadores. Ele busca agendas de notícias e exibe a hora e a notícia (a hora é na hora local) ainda experimental, mas totalmente testada em várias notícias neste dia. Você pode mover a exibição para qualquer local no gráfico, movendo o título quot para qualquer local desejado no gráfico e tudo será convenientemente desocupado no primeiro canto superior esquerdo para outro Indicador / EA / Script usar. Este indicador pode coexistir com outros indicadores / ea / script no mesmo gráfico. BTW. Eu encontrei um bug com ele em que ele não iria carregar até novos horários. A versão atual agora disponível para download corrigiu esse problema. Um bug persistente ainda existe. Não foi possível buscar o número quotactualquot como deveria. Talvez devido ao problema do cache da Web img156.imageshack. us/img156/905/calendarbv5.gif FYI: Comment1 e Comment2 são sempre gravados em seus pedidos. Você pode alterar esses comentários toda vez (ou seja, "US NFP Abr 6") e eles serão registrados nesses pedidos. É útil para acompanhar cada comércios que você faz e saber como você fez naquela época .. Burger Straddle Script Versão: 3i. Burger Calendar Indicator versão 1b (2007.04.28) Market Information. ex4 1 KB 3.705 downloads Uploaded Apr 1, 2007 9:02 pm Burger Calendar. ex4 20 KB 3.068 downloads Enviado em 28 de abril de 2007 9:22 am oi BK thx for the wonderfull script de qualquer maneira Eu ainda não entendo como usar o script sobre o problema do tempo. ok eu vivo no fuso horário GMT8. Tomemos um exemplo..teres uma notícia chegando em 8.30pm meu horário local (GMT8) so..on as configurações de hora local. Preciso defini-lo para meu horário local ou configurá-lo para o formato de fuso horário GMT 0. e as configurações de tempo estão em 24 horas rito MT4 tem bug quando se trata de fusos horários sem daylightsavingstime. Se você mora no TimeZOne sem o Dayligjt Savings, use GMT0 como time. Se sua data for nova e GMT0 ainda for ontem, inclua a data também. Mas se você estiver usando o GMT0 (acima), é claro, não é necessário adicionar data. O melhor é apenas testá-lo e verificar a exibição como mostra no instantâneo. Verifique o LocalTime no instantâneo e verifique também o relógio amarelo. Existem apenas duas possibilidades: você verá seu próprio horário local ou obterá o horário GMT0. Uma vez que você sabe qual é qual para você, então é claro que agora você saberá como definir seu NewsTime depois disso. Pessoalmente, eu prefiro que desta vez seja sempre em GMT0. porque não apenas trocamos usando o mesmo tempo, mas também removemos o problema da data. Aqui está a última versão v3b. 1. Corrigido vigorosamente o fuso horário GMT, problema DayLightSavings. Agora, o NewsTime está em GMT0, independentemente do fuso horário, DaylightSavings. Portanto, todos podem dizer a cada um para negociar USD News às 12:30. 2. O NewsTime está sempre agendado para o futuro. Se o horário GMT for 13:00 e você especificar 9:30, ele será programado para amanhã, como deveria ser. Para usuários dos EUA, você não precisa mais especificar a data se quiser negociar o UK News. Apenas especifique às 9: 30: 00h e é difícil negociar as notícias da 5:30 AM EST no Reino Unido. FAQ: P: Por que o script fecha imediatamente ao remover todas as ordens A: Check MaximumSpread. Se MaximumSpread for menor que o spread atual, o script automaticamente ajustará o spread atual. Se o corretor se alargar a partir de então, será abortado. Certifique-se de ajustar o MaximumSpread ao valor ideal (dependendo da discrição do corretor / negociador). P: Posso definir o SecModifyOrder como 1 para que ele seja modificado no último segundo A: SOMENTE se o seu corretor for extremamente rápido. A configuração para menos de 5 é reservada para corretores com execução extremamente rápida. Lembre-se que os corretores repentinamente diminuem a velocidade antes das notícias e, portanto, dão mais tempo. 15 é o ideal, mas se o seu corretor estiver lento, defina-o como 20 30. É melhor continuar reajustando isso. Q: Por que remover os pedidos antes do pico A: Verifique o horário do seu computador. Assegure-se de estar sincronizado com um temporizador mundial. Além disso, é possível que a notícia tenha chegado atrasada, ou você colocou o NewsTime à frente das notícias. obrigado BK por este trabalho grt hmm. Eu tentei o burger straddle V3 mas foi dissabble imediatamente e eu tenho isso na minha seção de jornal que você se sente 09:22:48 Burger Straddle Script (3) EURUSD, M5: chamadas dll não são permitidas kernel32.dll-GetSystemTime 09: 22:48 Burger Straddle Script (3) EURUSD, M5: especialista parou 09:22:48 Burger Straddle Script (3) EURUSD, M5: removidoCooperação automatizada Parte 3: O script do robô de 100 pips por dia Finalmente terminado As duas primeiras partes já foram postadas aqui há algum tempo: A terceira e última parte contém duas lições. Primeiramente, explica como usar algoritmos de aprendizado de máquina para detectar padrões de preços lucrativos para negociações automatizadas de ações de preço. A última lição é sobre programar um robô de negociação de qualidade comercial com alguns números de desempenho impressionantes: - 95 de taxa de vitória. - lucro médio de 100 pips por dia - garantido. - cerca de 1000 retorno anual do 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 negociação usado por este robô script nunca foi publicado até o momento. Para entender as lições, você precisará conhecer as duas primeiras partes do curso. Se algo não estiver claro neles, por favor, pergunte. Vou postar as lições finais aqui passo a passo nos próximos dias. Membro cadastrado em Set 2012 141 Posts Bob: Rápido, feche a porta Talvez eu tenha sido sombreada. Alice: O que aconteceu Bob: Alguém acabou de revelar o segredo comercial final para mim. Alice: Realmente Bob: Sim. É um método de negociação de ação de preço. Eu preciso de você para programar isso imediatamente. Alice: Ação de preço O que é que Bob: Você não usa nenhum indicador. Você negocia apenas quando o padrão de vela de preço está certo. Você compara o aberto, alto, baixo e próximo da última vela com a abertura, alta, baixa e fechamento das velas anteriores - é o padrão. É tudo que você precisa. Alice: Hmm. Eu li que os japoneses usavam padrões de velas para trocar o mercado de arroz. Alguns padrões receberam nomes engraçados como "Three Little Bears", ou algo assim. Mas isso foi há 300 anos atrás. Bob: Claro que você não vai negociar hoje com padrões de vela de arroz japonês se você quiser manter seu dinheiro. Mas eu conheço um cara chamado Bert na McDuck Capital. Ele encontrou alguns novos padrões de vela que funcionam para o mercado Forex. Ele disse que é como uma slot machine que sempre vence. O padrão aparece e sai dinheiro. Bert tem um bônus louco e McDuck é, 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 de negociação Não deve ser um problema. Bob: Bem, há um problema. Eu não conheço os padrões. Eu só sei que eles são feitos de três velas diárias. A aparência deles é altamente secreta. Bert disse que precisava me matar quando me contou os padrões. McDuck é muito sério nesse assunto. Alice: Hmm. Bob: Você não consegue descobrir os padrões? Alice: Se um cara da McDuck os encontrou, acho que também posso encontrá-los. Mas por que eles trabalham, quero dizer, por que um movimento de preços deve ser precedido por um certo padrão de velas Bob: Não faço ideia. Mas esse método funcionou para o mercado de arroz japonês. Talvez alguns grandes comerciantes acordem de manhã, comparem os preços de hoje, ontem e no dia anterior e decidam se compram ou vendem sempre da mesma maneira. Alice: Se isso estabelecer um padrão, posso aplicar uma função de aprendizado de 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: Será que vai ser caro Alice: A procura de padrões de velas Não. Ainda assim, estou com medo de ter que cobrar mais do que da última vez. Bob: Por que isso é Alice: taxa de risco. Eu poderia ser morto ao programar este script. Membro Comercial Registrado em Set 2012 141 Posts Esta é a primeira versão do script Alices que usa inteligência de máquina para negociação de ação de preço. Ele pode detectar um sistema em padrões de vela e usar os padrões mais lucrativos para um sinal de troca. Para este script, você precisará da versão mais recente do Zorro, 1.10. Você pode baixá-lo no zorro-trader. Se você tiver uma versão mais antiga, atualize-a baixando a nova no mesmo link de download e instalando-a na mesma pasta. Quando você fez as primeiras partes do curso, muitas linhas neste código já devem estar familiarizadas, mas também há alguns novos conceitos, especialmente as funções adviseLong e adviseShort. Bem, passe por eles em detalhes amanhã. Commercial Member Registrado em Set 2012 141 Posts A função advise é o algoritmo de aprendizado de máquina. Parece uma condição de entrada estranha para uma negociação longa: if (adviseLong (PATTERN2,0, priceHigh (2), priceLow (2), priceClose (2), priceHigh (1), priceLow (1), priceClose (1), priceHigh (1), priceLow (1), priceFechar (1), priceAlta (0), priceLow (0), priceFechar (0)) gt 30) enterLong () Alice chama adviseLong com o método PATTERN e as opções Alta, Baixa e Feche os preços das últimas 3 velas. Se adviseLong retornar um valor acima de 30, uma negociação longa é inserida. Mas quando isso acontece No modo de treinamento, a função adviseLong sempre retorna 100. Então, uma negociação é sempre registrada. A função armazena um instantâneo de seus parâmetros de sinal - neste caso, 12 sinais dos preços High, Low e Close das últimas 3 velas - em uma lista interna. Em seguida, aguarda o resultado do negócio e armazena o lucro ou a perda do negócio junto com o instantâneo do sinal. Assim, após o treinamento, o Zorro tem uma longa lista interna contendo todos os instantâneos de sinal e seus correspondentes lucros ou perdas comerciais. 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 três 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, portanto, o Fecho de uma barra diária é normalmente idêntico ao Aberto da próxima barra. O uso do preço Aberto enfatizaria outliers e padrões de fim de semana, o que não é desejado. Dentro de cada grupo de sinais, o 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) é muito menor ou apenas um pouco menor que priceHigh (1) - o padrão resultante é o mesmo. Os padrões dos dois grupos estão agora colados para formar um único padrão. 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 havia dito a Bob que o melhor para a negociação de ações de preço era comparar apenas as velas adjacentes - portanto, os dois grupos de padrões independentes. Se Alice tivesse procurado padrões de 4 velas, ela usou três grupos. Depois que o padrão foi gerado, o Zorro verifica com que frequência ele aparece na lista e soma todos os seus lucros ou perdas. Se um padrão aparece com frequência e com lucro, é considerado um padrão lucrativo. O Zorro remove todos os padrões não lucrativos ou insignificantes da lista - padrões que não têm uma soma de lucro positiva ou aparecem menos de 4 vezes. Os padrões restantes são armazenados nos arquivos do workshop7EURUSD. rul na pasta Data - um arquivo por ciclo de encaminhamento de walk. Esse arquivo é assim: Podemos ver que qualquer linha na lista começa com uma combinação de letras estranhas, como FCDEABFACEBD. Essa combinação é o nome do padrão exclusivo que representa o conjunto de resultados de comparação. O número ao lado do nome é a freqüência padrão - FCDEABFACEBD apareceu 25 vezes no período de treinamento. Seu lucro médio por operação foi de 4,334. e o desvio padrão dos lucros foi 11.562. A frequência, o lucro médio e o desvio padrão são posteriormente usados ​​pelo Zorro para calcular a taxa de informação de padrões. Isso acontece quando testando ou negociando a estratégia. A função adviseLong gera um padrão a partir dos sinais atuais e os compara com os padrões armazenados no arquivo. rul. Se nenhum padrão armazenado corresponder ao atual, a função retornará 0. Caso contrário, retorna a taxa de informação de padrões multiplicada por 100. Quanto maior o índice de informações, mais lucrativo é o padrão. Naturalmente, os padrões com alta taxa de informação são menos frequentes. Portanto, o limiar de entrada no comércio deve ser um compromisso entre a rentabilidade e a frequência do padrão. Alice usou um limite de 30 aqui, o que significa que uma negociação é inserida para qualquer padrão com razão de informação acima de 0,3. A negociação curta funciona da mesma maneira: if (adviseShort (PATTERN2,0) gt 30) enterShort () A chamada adviseShort não tem parâmetros de sinal. Nesse caso, a função usa os mesmos sinais da última chamada de aviso, que foi o adviseLong anterior. Desta forma longas listas de sinal não precisam ser escritas duas vezes. Amanhã, bem, passe pelo resto do roteiro. O reconhecimento de padrões é uma das poucas funções de aprendizado de máquina 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. Há alguns pré-requisitos para negociar com padrões de vela - vamos dar uma olhada no 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 aprendizado de máquina tendem a se equipar demais, portanto, qualquer resultado dentro da amostra de padrões de preços, árvores de decisão ou preceptrons não tem sentido. A análise de padrões também precisa do maior número possível de barras para encontrar padrões significativos. Oversampling não pode ser usado aqui porque os preços Alto, Baixo e Fechado dependem do horário de início e término da barra - barras reamostradas produziriam padrões muito diferentes. Então Alice tem que usar o máximo período de simulação possível, que é de 2002, quando o euro foi introduzido como substituto para as moedas européias. (Se os dados de preço de um determinado ano não estiverem incluídos no programa Zorro, eles podem ser baixados automaticamente do servidor intermediário ou com o pacote de preços históricos da página de download do Zorro). Pela mesma razão, Alice usa poucos ciclos WFO para obter grandes períodos de treinamento. O sinalizador REGRAS é necessário para gerar padrões de preços com a função de aviso. TESTNOW executa um teste automaticamente após o treinamento - isso salva um clique no botão ao experimentar diferentes métodos de busca de padrões. A próxima parte do código se comporta de maneira diferente no treinamento e no modo de teste ou negociação: O trem é verdadeiro no modo Treinar. Neste modo, o flag HEDGING é definido, 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 negociação após adviseLong / adviseShort fechariam antecipadamente as posições opostas e, assim, atribuíriam valores de lucro / perda incorretos aos padrões. TimeExit limita a duração de uma negociação, neste caso para 5 barras. Assim, o lucro ou a perda de uma negociação é sempre determinado após 5 barras e atribuído ao padrão que existia quando a negociação foi inserida. A próxima parte do código é executada quando o trem não é verdadeiro, ou seja, no teste ou no modo de comércio: 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 no caso de um choque de preços - e uma saída cronometrada após 10 barras. A saída cronometrada é usada por causa do método de previsão. Ele usa negociações de 5 barras, portanto, seu 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 terá perdido qualquer correlação com o padrão de preços de 10 barras atrás. Manter o comércio aberto não faz mais sentido. Geralmente é melhor limitar o tempo de troca com um método à direita, por exemplo, com o TrailStep. mas aqui uma saída cronometrada é usada para simplificar. Agora, que lucro podemos obter com os padrões aprendidos da máquina de negociação? Clique em Trem. Dependendo da velocidade do PC, o Zorro precisará de alguns segundos para percorrer os cinco ciclos da WFO e encontrar cerca de 100 padrões lucrativos em cada ciclo. Clique em Resultado para a curva de patrimônio: embora o lucro anual de cerca de 90 não pareça muito impressionante, os padrões de preços nos dão uma curva de capital ascendente relativamente estável e resultados muito simétricos para negociações longas e curtas. No entanto, há um método para mais do que duplicar o lucro anual da negociação de ações de preço - e esse método é perigoso. Bem lidar com isso amanhã. Membro Comercial Registrado em Set 2012 141 Postagens Ok, agora vamos ver o que podemos fazer para tornar este lucrativo sistema de negociação de ação de preço ainda mais lucrativo. Uma maneira poderia ser eliminar a lacuna do fim de semana. Quando um padrão de preço lucrativo aparece durante a semana e leva a uma negociação a ser registrada na sexta-feira, o fim de semana é entre o padrão e o resultado da negociação. Isso pode estragar o poder preditivo do padrão ou torná-lo, pelo menos, menos preditivo do que os padrões que precedem imediatamente as negociações. Vamos modificar o script e evitar negociações de sexta-feira: if (adviseLong (PATTERN2,0, priceHigh (2), priceLow (2), priceClose (2), priceHigh (1), priceLow (1), priceClose (1), priceHigh (1 ), priceLow (1), priceClose (1), priceAlta (0), priceLow (0), priceFechar (0)) gt 30 e dow () SEXTA-FEIRA) enterLong () if (adviseShort (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 capital agora parece definitivamente mais agradável, e igualmente melhor é o lucro anual de 200. Melhorar um sistema desta maneira representa um perigo - especialmente quando a hora, a data ou critérios ad hoc semelhantes são usados ​​para condições adicionais de entrada. Quem pode dizer que o melhor lucro não é apenas por acaso, um resultado de overfitting? Claro, nós damos uma razão racional para não entrar em negociações na sexta-feira. Contudo tal razão encontra-se rapidamente em retrospectiva. O script de ação de preço só funciona melhor quando a negociação de sexta-feira é impedida, e supomos que isso se deve à diferença do fim de semana. Mas poderíamos usar um argumento semelhante para não negociar na segunda-feira. Prevenir as negociações de segunda-feira, no entanto, não melhora a curva de capital. Por que não? Ninguém pode realmente dizer. Alguns traders acreditam que um determinado ativo só deve ser negociado durante suas principais horas de mercado, porque então o volume de negociação é maior e há menos outliers. Consequentemente, eles negociam o GBP / USD apenas durante o horário comercial da Bolsa de Valores de Londres. Outros traders acreditam que um ativo só deve ser negociado fora de suas principais horas de mercado, porque os mercados são menos eficazes. Eles trocam o GBP / USD apenas quando a noite é em Londres. Algumas estratégias funcionam melhor com o primeiro método, algumas com o outro - e, consequentemente, seus autores às vezes deram a primeira e às vezes a outra explicação. Qual é o certo? Quanto mais você desenvolver estratégias, mais você perceberá que teorizar sobre o comportamento do mercado é fútil. Apenas a performance do teste é importante. Mas existem muitas armadilhas que levam a resultados overfitting e over-optimistic. Você não pode sempre 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 Padrões diários de velas podem ter poder de previsão sob certas circunstâncias. 9658 A função advise gera regras de negociação com algoritmos de aprendizado de máquina. 9658 O teste fora da amostra é obrigatório para estratégias baseadas em IA. O 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ã vamos começar 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 nos fóruns de traders. Um script robótico fraudulento funciona de uma forma muito diferente do que uma estratégia comercial normal. A parte menos importante do script é o algoritmo do sinal de negociação. A maioria dos robôs usa aqui uma estratégia simples baseada em indicadores, como os sistemas encontrados em fóruns de traders. O desenvolvedor do robô geralmente sabe que não vai gerar lucro, mas isso não importa por razões que logo se tornarão claras. Alice decidiu por uma abordagem ainda mais simples - esta é sua primeira versão (taxa: 44.000): A estratégia entra em uma negociação aleatória em qualquer barra. A função aleatória irá, em 50 de todos os casos, retornar um número que seja maior que 0, portanto, desencadeando uma negociação longa, caso contrário, ele acionará uma negociação curta. Se a negociação não tivesse custo, essa estratégia tinha uma expectativa de zero. Um clique no teste, no entanto, revela uma perda média de cerca de 3 pips por negociação. 3 pips são apenas o spread de corretores simulados, 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 manipulá-lo. O primeiro passo é configurar alguns parâmetros do sistema e atender à demanda de Bobs da taxa de 95 vitórias: O robô deve operar uma vez por dia, então Alice precisa de um período de 1440 minutos. Backtest is restricted to simulate the year 2012 - the robot must work for one year only, so a longer backtest is not required. It also uses no lookback period, as theres no indicator or other function that would need any price history. Therefore, this is the parameter setup: BarPeriod 1440 StartDate 2012 NumYears 1 LookBack 0 The next lines set a stop loss at 200 pips distance from the current price, and a profit target at 10 pips distance: Stop 200PIP TakeProfit 10PIP This way the profit target will be hit 20 times earlier than the stop loss - meaning that it will be normally hit 20 times more often. From 20 trades, 19 will be won and only one will be lost - this is the 95 accuracy that the robot need for matching Bobs advertisement. However, for this Alice must make sure that any trade ends with hitting either the stop loss or the profit target. Any other exit would spoil the 95. An other exit happens when entering a trade in reverse direction, which automatically closes the current trade. One method to prevent this would be setting Zorros HEDGING flag. Hedging however is not allowed to US citizens, who are the main buyers of robots. For not losing the US market, Alice prevents trade reversal by only entering a new trade when no trade is open: if(NumOpenTotal 0) if(random() gt 0) enterLong() else enterShort() The predefined variable NumOpenTotal is the current number of open trades. A click on Test reveals that the current script version has indeed about 95 win rate. Of course this does not improve its profitability. Although 19 out of 20 trades are won, the loss from the 20th eats all the profits from the 19 winners before. The only effect of the high win rate is now a strange sawtooth pattern in the equity curve: We can see that sequences of winning 1-day trades cause parts of the equity curve to raise linearly up to the point where a trade is not hitting the profit target at the same day. This trade will stay open for a longer time, possibly hit its stop loss, and spoil the equity curve. Profit-wise the system is no better than the version before. But Bob wants 100 pips profit per day. Assuming 250 trading days per year, that means an annual return of at least 25,000 pips - enough to arouse expectation of great wealth and sell lots of robots. Can Alice adjust the script to generate 100 daily pips - real profit, from live trading - and this with an obviously unprofitable strategy Yes, she can. Its the magic of statistics, into which well look tomorrow. Commercial Member Joined Sep 2012 141 Posts Ok, lets find out how to make a profit with random trading. The average loss of a random trade is the spread or commission. Thus, one trade per day and 3 pips spread will produce a 750 pips average loss per year. This does not mean that every random trader will get 750 pips loss by the end of the year. Some might end up with a larger loss, some even with a profit. Lets give 3000 traders some initial capital and the task to enter random trades, one trade per day, for one year. At the end of the year well put together their results in a statistics chart. It will look like this: This profit distribution chart can be generated with the script described below. It runs 3000 1-year simulation cycles of Alices first random trading strategy. The x axis of the chart displays the profit or loss in pips at the end of the year. The y axis shows the number of traders that got that particular profit or loss. We can see that the largest group - about 130 traders - had 500 pips loss after a year. There are also some unfortunate traders with more than 7000 pips loss, but on the other hand, far on the right side of the chart, a few made more than 7000 pips profit No doubt, those guys are considering themselves genius traders and are bragging with their success on trader forums. This profit distribution is a Gauss Normal Distribution - the famous quotBell Curvequot. It looks a little shaky because 3000 samples are not enough for a perfect bell. When running the simulation with many more traders, the curve will get more regular, but the script will need more time to run. The peak of the bell curve is at -750 - the average loss to be expected with 3 pips spread per trade. You can generate this profit distribution charts with the following script: Alices strategy is now called as an external function strategy1 - thats not really necessary, but makes it easier to experiment with different strategies. Some commands in the script are new. Were using oversampling to run the one-year simulation many times: Oversampling is normally used for increasing the number of trades in a simulation. Here the purpose is just to repeat the simulation 3000 times, one simulation cycle per trader. EXITRUN is a Zorro status flag that is set on the last run of every cycle, at the end of the year. is(EXITRUN) then becomes true and the following lines are executed: int Step 250 int Result floor((WinLongWinShort-LossLong-LossShort) / PIPCost / Step) WinLongWinShort-LossLong-LossShor t is the result of the current simulation cycle. We can not use WinTotal-LossTotal as in workshop 6, because the ..Total values are summed up over all cycles. We divide the result by PIPCost for converting it to pips. We divide it further by 250 (the Step variable) for distributing the results among 250 pips wide bars. If a result is 1 pip or 249 pips does not matter - both contribute to the same bar. The floor function converts the resulting value to an integer that we can plot in a chart. For this the plotBar function is used: This draws a bar in a graph named quotProfitquot at chart position Result40 . The chart always begins at position 0, so the 40 has the effect to shift it to the right and allow negative results to be also visible. The x axis value belonging to that bar is StepResult . We had divided the result by 250 for the distribution among bars, so this multiplication lets the bars pip value appear on the x axis below the bar. The 1 is the height of the bar. The height is summed up ( SUM ), so the bar height increased by 1 for every cycle whose result matches the bars pip value. BARS tells the plotBar function to plot bars instead of a line, and LBL2 tells it to print only every 2nd value on the x axis - otherwise it would be hard to read. The last parameter, RED . gives the color of the bar. You can see that the resulting chart above also debunks a widespread myth in the trader scene. It is a quotknown factquot that 95 of all private traders lose all their money already in the first year. Not true - at least not with random trading. You can estimate from the profit distribution that only about 55 lose money at all (the sum of the red bars with negative profit), while 45 end their first year with a profit. Of course, most of those lucky 45 will then lose in one of the following years when they continue trading - but it would take 5 years until 95 have lost their money Tomorrow well see how Alice can manipulate this profit distribution for ending the year with 25,000 pips profit. What happens to the profit distribution when Alice uses her stop and profit targets for getting the 95 win rate Just edit the script posted above and replace the strategy1() call with strategy2() . which is the stop/takeprofit version: The resulting profit distribution: The bell peak is still at -750 pips, but the distribution is now much more narrow and a little distorted towards the left side. Restricting trades with stop and profit targets eliminates large wins and large losses. This puts upper and lower limits to the annual result, thus squeezing the bell from both sides. With 10 pips profit target, no trader can earn more than 1750 pips per year even in the unlikely case that all trades are won. However, Alice needs an annual result of at least 25,000 pips. She can do nothing about the average 750 pips loss. But she can manipulate the profit distribution curve in a way that a large number of traders end up with 25,000 pips. For this, Alice just adds 3 more lines to her strategy: var ProfitGoal 100BarPIPCost var ProfitCurrent WinLongWinShort-LossLong-LossShort Lots clamp((ProfitGoal-ProfitCurrent) / (7PIPCost), 1, 200) This is a martingale system. Such systems are used, more or less hidden, in most robots. At first Alice determines a profit goal. She needs 100 pips per day. A day is equivalent to a bar, so at any bar the accumulated profit should be 100 pips times the bar number. This is multiplied with PIPCost for getting the result in account currency instead of pips, and stored in the ProfitGoal variable. The current profit is then calculated in the next line and stored in the ProfitCurrent variable. The third line is the martingale. The lot size is set dependent on how much the current profit deviates from the profit goal. If were far below our goal, we need a huge lot size to catch up. The number of Lots is calculated just so that the next winning trade reaches the profit goal. For this, the profit difference is divided by the expected profit per lot. The profit per lot of a winning trade is 10 pips profit target minus 3 pips spread. The result, 7 pips, is again multiplied with PIPCost for converting it to account currency. The clamp function limits Lots between 1 and 200. We need at least 1 lot per trade, and we dont want to exceed 200 lots for not being too obvious or risking crazy losses. When analyzing robot strategies, one can notice such a martingale system from telltale peaks in the lot size. For this reason, robots or signal providers often increase not the number of lots, but the number of trades, which is less suspicious. If you select the modified strategy script and click Test repeatedly, every click will now generate a different equity curve. Most look like this: But surprisingly many look like this: This is just the perfect equity curve that Bob wanted for his robot. Its even a little too perfect - its straight slope comes from the ProfitGoal variable that just linearly increases with the bar number. For really selling the robot, Alice had to modify the profit goal formula for letting the curve appear more bumpy and realistic. We leave that as an exercise to the reader. Lets now copy the modified strategy in our profit distribution script, for determining the profit distribution (change Step to 2500 for getting a larger scale): This distribution does not resemble a bell curve anymore. Although the average loss is still at -750 pips, the distribution got an extremely long left tail (the high bar at the left end just represents the sum of all bars that dont fit on the chart) and a sharp peak at the right in the 25,000..30,000 pips profit area. From our 3000 traders, about 1100 will earn more than 25,000 pips with this robot Sadly, about 1600 traders will suffer losses, some even extreme losses in excess of 200,000 pips. But we hope a merciful margin call saves them early. The profit distribution chart is a little misleading. In fact the year wont end with 1100 lucky traders. Many of them will have bitten the dust before, because their equity curves, although reaching the 25,000 pips goal at the end, would go through extreme drawdowns inbetween and wipe out their account. Lets see how many traders will encounter no margin call and reach the end goal smoothly. 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.

Comments