Wednesday 23 May 2018

Forex trading php script


Programas de Automação de Comércio Forex Investimento de Alto Risco Aviso: Negociar divisas estrangeiras e / ou contratos por diferenças na margem acarreta um alto nível de risco, e pode não ser adequado para todos os investidores. Existe a possibilidade de você sustentar uma perda além dos seus fundos depositados e, portanto, você não deve especular com capital que não pode perder. Antes de decidir negociar os produtos oferecidos pela FXCM, você deve considerar cuidadosamente seus objetivos, situação financeira, necessidades e nível de experiência. Você deve estar ciente de todos os riscos associados à negociação na margem. A FXCM fornece conselhos gerais que não levam em conta seus objetivos, situação financeira ou necessidades. O conteúdo deste site não deve ser interpretado como um conselho pessoal. A FXCM recomenda que você busque orientação de um consultor financeiro separado. Por favor clique aqui para ler o aviso de risco completo. A FXCM é uma corretora registrada da Mercados de Comércio Exterior e Comércio Exterior da Comissão de Futuros com a Comissão de Negociação de Futuros de Commodities e é membro da National Futures Association. NFA 0308179 A Forex Capital Markets, LLC (FXCM LLC) é uma subsidiária operacional dentro do grupo de empresas FXCM (coletivamente, o Grupo FXCM). Todas as referências neste site a FXCM referem-se ao Grupo FXCM. Observe que as informações contidas neste site são destinadas apenas a clientes de varejo, e certas representações aqui contidas podem não ser aplicáveis ​​a Participantes de Contrato Elegíveis (ou seja, clientes institucionais), conforme definido na Seccão 1 (a) (12) da Merck Exchange Act. Cópia dos direitos de autor 2016 Forex Capital Markets. Todos os direitos reservados. 55 Water St. 50th Floor, Nova York, NY 10041 USAAutomated Trading Parte 3: O roteiro do robô de 100 pips por dia O curso de negociação automatizado finalmente foi concluído 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ô comercial 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 Alto, Baixo e Fechado das três últimas 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 depois do 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ço 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 este 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 negociam 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 de 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. O backtest é restrito para simular o ano de 2012 - o robô deve funcionar por apenas um ano, portanto, um backtest mais longo não é necessário. Ele também não usa nenhum período de lookback, já que não há nenhum indicador ou outra função que precise de qualquer histórico de preços. Portanto, esta é a configuração de parâmetro: BarPeriod 1440 StartDate 2012 NumYears 1 LookBack 0 As próximas linhas definem um stop loss a 200 pips de distância do preço atual e uma meta de lucro a 10 pips de distância: Stop 200PIP TakeProfit 10PIP Desta forma, a meta de lucro será atingido 20 vezes mais cedo que o stop loss - o que significa que será normalmente atingido 20 vezes mais vezes. De 20 negociações, 19 serão ganhas e apenas uma será perdida - esta é a precisão de 95 que o robô precisa para combinar o anúncio de Bobs. No entanto, para isso, Alice deve certificar-se de que qualquer negociação termine atingindo a perda de parada ou a meta de lucro. Qualquer outra saída estragaria a 95. Uma outra saída ocorre ao entrar em uma negociação na direção reversa, que fecha automaticamente a negociação atual. Um método para evitar isso seria definir o sinalizador ZORROS HEDGING. No entanto, a cobertura não é permitida aos cidadãos americanos, que são os principais compradores de robôs. Para não perder o mercado dos EUA, Alice impede a inversão de negociação inserindo apenas uma nova negociação quando não houver negociação aberta: if (NumOpenTotal 0) if (aleatório () gt 0) enterLong () else enterShort () A variável pré-definida 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 de taxa de vitória. Claro que isso não melhora sua lucratividade. Apesar de 19 dos 20 comércios terem sido ganhos, a perda do dia 20 consome todos os lucros dos 19 vencedores anteriores. O único efeito da alta taxa de ganho é agora um estranho padrão dente de serra na curva de capital: Podemos ver que as sequências de vencer transações de 1 dia fazem com que partes da curva de capital aumentem linearmente até o ponto em que uma negociação não está atingindo a curva. meta de lucro no mesmo dia. Este comércio permanecerá aberto por mais tempo, possivelmente atingirá seu stop loss e prejudicará a curva de capital. Em termos de lucro, o sistema não é melhor do que a versão anterior. Mas Bob quer 100 pips de lucro por dia. Assumindo 250 dias de negociação por ano, isso significa um retorno anual de pelo menos 25.000 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, de negociação ao vivo - e isso com uma estratégia obviamente não lucrativa? Sim, ela pode. É a magia da estatística, em que bem olhe amanhã. Membro Comercial Registrado em Set 2012 141 Postagens Ok, vamos descobrir como fazer um lucro com negociação aleatória. A perda média de um comércio aleatório é o spread ou comissão. Assim, um comércio por dia e um spread de 3 pips produzirão uma perda média de 750 pips por ano. Isso não significa que cada negociador aleatório terá uma perda de 750 pips até o final do ano. Alguns podem acabar com uma perda maior, alguns até com lucro. Vamos dar a 3.000 traders algum capital inicial e a tarefa de entrar em negociações aleatórias, uma negociação por dia, durante um ano. No final do ano, reunimos 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. Ele executa 3.000 ciclos de simulação de 1 ano da primeira estratégia de negociação aleatória da 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 operadores que obtiveram esse lucro ou prejuízo específico. Podemos ver que o maior grupo - cerca de 130 traders - teve uma perda de 500 pips após um ano. Há também alguns comerciantes infelizes com mais de 7000 pips de perda, mas por outro lado, muito no lado direito do gráfico, alguns fizeram mais de 7000 pips de lucro Sem dúvida, esses caras estão se considerando comerciantes geniais e estão se gabando com seu sucesso em fóruns de trader. Esta distribuição de lucros é uma Distribuição Normal de Gauss - a famosa "Curva de Bell". Parece um pouco instável porque 3000 amostras não são suficientes para um sino perfeito. Ao executar a simulação com muitos mais operadores, a curva ficará mais regular, mas o script precisará de mais tempo para ser executado. O pico da curva do sino está em -750 - a perda média esperada com 3 pips espalhados por comércio. Você pode gerar esses gráficos de distribuição de lucro com o seguinte script: A estratégia Alices agora é chamada como uma estratégia de função externa1 - isso não é realmente necessário, mas facilita a experiência com diferentes estratégias. Alguns comandos no script são novos. Estava usando oversampling para executar a simulação de um ano muitas vezes: Oversampling é normalmente usado para aumentar o número de negociações em uma simulação. Aqui o objetivo é apenas repetir a simulação 3000 vezes, um ciclo de simulação por profissional. EXITRUN é um sinalizador de status do Zorro que é definido na última execução de cada ciclo, no final do ano. (EXITRUN) torna-se true e as seguintes linhas são executadas: int Step 250 int Resultado floor ((WinLongWinShort-LossLong-LossShort) / PIPCost / Step) WinLongWinShort-LossLong-LossShor t é o resultado do ciclo de simulação atual. Não podemos usar o WinTotal-LossTotal como no workshop 6, porque os valores totais são somados 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 as barras de 250 pips de largura. Se um resultado é 1 pip ou 249 pips não importa - ambos contribuem para a mesma barra. A função floor converte o valor resultante em um inteiro que podemos plotar em um gráfico. Para isso, a função plotBar é usada: Isso desenha uma barra em um grafo 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 os resultados negativos também sejam visíveis. O valor do eixo x que pertence a essa barra é StepResult. Nós dividimos o resultado por 250 para a distribuição entre as barras, então essa 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 é somada (SUM), portanto, a altura da barra aumentou em 1 para cada ciclo cujo resultado corresponda ao valor de pip de barras. BARS diz à função plotBar para plotar barras ao invés de uma linha, e LBL2 diz para imprimir somente a cada 2º valor no eixo x - caso contrário, seria difícil de ler. O último parâmetro, RED. dá a cor da barra. Você pode ver que o gráfico acima também desmascara um mito generalizado na cena do trader. É um "fato conhecido" que 95 de todos os operadores 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 pela distribuição de lucros que apenas cerca de 55 pessoas perdem dinheiro (a soma das barras vermelhas com lucro negativo), enquanto 45 terminam seu primeiro ano com lucro. É claro que a maioria dos sortudos 45 perderá em um dos anos seguintes quando eles continuarem negociando - mas levaria 5 anos até que 95 perdessem seu dinheiro. Amanhã, bem veremos como Alice pode manipular essa distribuição de lucros para terminar o ano com 25.000. pips lucro. O que acontece com a distribuição de lucros quando Alice usa suas metas de parada e lucro para obter a taxa de 95 vitórias Basta editar o script postado acima e substituir a chamada strategy1 () por strategy2 (). que é a versão stop / takeprofit: 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 parada e lucro elimina grandes ganhos e grandes perdas. Isso coloca limites superiores e inferiores para o resultado anual, apertando assim o sino de ambos os lados. Com uma meta de lucro de 10 pips, nenhum trader pode ganhar mais do que 1750 pips por ano, mesmo no caso improvável de todos os negócios serem ganhos. No entanto, Alice precisa de um resultado anual de pelo menos 25.000 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 traders acabe com 25.000 pips. Para isso, Alice adiciona apenas mais três linhas à 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. No começo, Alice determina uma meta de lucro. Ela precisa de 100 pips por dia. Um dia equivale a uma barra, portanto, em qualquer barra, o lucro acumulado deve ser de 100 pips vezes o número da barra. Isso é multiplicado pelo 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 é o martingale. O tamanho do lote é definido de acordo com o quanto o lucro atual se desvia da meta de lucro. Se estivéssemos muito abaixo do nosso objetivo, precisamos de um tamanho enorme para recuperar o atraso. O número de lotes é calculado apenas para que a próxima negociação vencedora atinja a meta de lucro. Para isso, a diferença de lucro é dividida pelo lucro esperado por lote. O lucro por lote de uma negociação vencedora é de 10 pips, meta de lucro menos 3 pips de spread. O resultado, 7 pips, é novamente multiplicado pelo PIPCost para convertê-lo em moeda da conta. A função clamp limita os lotes entre 1 e 200. Precisamos de pelo menos 1 lote por negociação, e não queremos exceder 200 lotes por não sermos tão óbvios ou estarmos arriscando perdas loucas. Ao analisar as estratégias do robô, pode-se notar um sistema de martingale desse tipo, a partir de picos indicadores no tamanho do lote. Por essa razão, robôs ou provedores de sinal geralmente aumentam não o número de lotes, mas o número de negociações, que é menos suspeito. Se você selecionar o script de estratégia modificada e clicar em Testar repetidamente, cada clique gerará uma curva de patrimônio diferente. A maioria se parece com isso: mas, surpreendentemente, muitos se parecem com isso: essa é a curva de capital perfeita que Bob queria para seu robô. É até mesmo um pouco perfeito demais - sua inclinação reta 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 da meta de lucro para deixar a curva parecer mais acidentada e realista. Deixamos isso como um exercício para o leitor. Vamos agora copiar a estratégia modificada em nosso script de distribuição de lucro, para determinar a distribuição de lucro (mudar para 2500 para obter uma escala maior): Esta distribuição não se parece mais com uma curva de sino. Embora a perda média ainda esteja em -750 pips, a distribuição tem uma cauda esquerda extremamente longa (a barra alta na extremidade esquerda representa apenas a soma de todas as barras que não se encaixam na tabela) e um pico acentuado à direita na 25.000 a 30.000 pips de área de lucro. Dos nossos 3000 comerciantes, cerca de 1100 ganharão mais de 25.000 pips com este robô. Infelizmente, cerca de 1600 comerciantes sofrerão perdas, algumas até perdas extremas em excesso de 200.000 pips. Mas esperamos que uma chamada de margem misericordiosa os salve cedo. O gráfico de distribuição de lucros é um pouco enganador. Na verdade, o ano não terminará com 1100 comerciantes sortudos. Muitos deles já terão mordido a poeira antes, porque suas curvas de eqüidade, apesar de atingirem a meta de 25.000 pips no final, passariam por extremos extremos entre eles e acabariam com sua conta. Vamos ver quantos operadores não encontrarão nenhuma chamada de margem e atingirão o objetivo final sem problemas. Para isso, edite o script novamente e modifique a condição de entrada comercial de if (NumOpenTotal 0 e ProfitCurrent gt -250) Cada comerciante irá abster-se de novas negociações quando sua perda exceder 250. Isso muda a distribuição de lucros notavelmente: cerca de 500 traders agora deram no caminho, visível no pico alto da barra de -5000 pips que representa a perda de 250 na conta do lote de micro simulado. A perda pode ser maior quando a última negociação perdida tem um tamanho alto de lote - é por isso que muitas barras estão até além de -5000 pips. De qualquer forma, 600 traders ainda atingiram o objetivo final de 25.000 pips - e isso com negociações totalmente aleatórias. Então, Alice tem agora um script que realmente gera mais de 25.000 pips por ano. Há um pequeno problema - só funciona para 20 (600 de 3000) de seus usuários. A maioria dos 80 restantes também ganhará lucros nos primeiros meses devido ao sistema de martingale e à alta taxa de vitórias, mas terá perdido todo o seu dinheiro até o final do ano. Bob felizmente não mencionará isso em seu anúncio de robô - mas ele precisa de outra coisa. Para vender o robô, pelo menos uma dessas 600 curvas de patrimônio lucrativas deve ser verificada em uma conta real por um serviço de verificação comercial. Para isso, Bob investirá 10.000. Não, como você poderia pensar, por subornar o serviço para confirmar uma curva falsa. Não, eles são certamente honestos e não aceitam subornos. Os 10.000 são usados ​​de uma maneira diferente, que descrevem bem amanhã. Um esquema de pirâmide é um modelo de negócio insustentável que envolve pagamento ou serviços promissores aos participantes, principalmente para inscrever outras pessoas no esquema, em vez de fornecer qualquer investimento real. ou venda de produtos ou serviços ao público. Como o marketing multinível, os esquemas de pirâmide dependem do recrutamento de pessoas para se tornarem distribuidores de um produto ou serviço. Como o MLM, o esquema de pirâmide oferece a oportunidade de ganhar dinheiro ao inscrever mais recrutas. 36399.00 ndash 361,599.00 36199.00 ndash 36799.00 Descrição do Produto Nosso Script de Plano de Mercado de Forex da MLM atende a qualquer tipo de conceito de negócio de MLM. Nós projetamos nosso script da forma mais perfeita possível, testado para ser livre de erros, fácil de implantar, seguro e com o máximo de funções em um pacote muito fácil de usar. Além disso, com 8 anos de experiência desenvolvemos o aplicativo que qualquer um pode gerenciar sem qualquer suporte técnico com administração de energia. informação adicional

No comments:

Post a Comment