Wednesday 16 October 2019

Código mt4 instaforex 5 dígito


Estou atualmente tentando encontrar a maneira mais à prova de erros para detectar se precisamos de 1 ou 10 como multiplicador de pip. O que foi acima foi minha primeira Ideia, simplesmente olhando quantos dígitos o EURUSD tem. Há corretores onde este símbolo é chamado de EURUSDm ou EURUSDiam ou outros absurdos engraçados adicionados por corretores sem outra razão além de quebrar nosso código e também há nomes de símbolos que não possuem exatamente 6 caracteres, como GOLD ou GOLDm, por exemplo, e o acima pode NÃO lide com isso. Alguém tem um algoritmo ainda mais sofisticado para encontrar os dígitos corretos. Eu acho que isso tudo se resume ao problema de primeiro encontrar como exatamente o nome do símbolo do EURUSD é e, em seguida, o resto é fácil. Existe, por exemplo, uma maneira fácil de enumerar todos os símbolos disponíveis, para que eu possa procurar um nome que contenha ou comece com quotEURUSDquot. Normalmente, verifico-o apenas uma vez na seção init: Normalmente, verifico-o apenas uma vez na seção init: seu código não é infalível , Existem símbolos com 1 ou 2 (ouro) ou outros números de dígitos. Eu encontrei uma maneira melhor (ainda preciso testá-lo com alguns corretores mais). Ele lê symbols. raw na pasta de histórico para encontrar o nome de eurusd e depois use o MarketInfo (). Era um código para uma única moeda. Se você quiser usar seu EA para várias moedas, você deve calculá-lo para cada caso separadamente. 7bit: Eu encontrei uma maneira melhor (ainda preciso testá-lo com alguns corretores mais). Ele lê symbols. raw na pasta de histórico para encontrar o nome do eurusd e, em seguida, use MarketInfo (). Isso iria quebrar se alguma vez mudar o arquivo symbols. raw (e pode não funcionar com versões mais antigas do MT4. Embora isso não seja provavelmente um problema ). Eu uso um método o mesmo que Rogers e isso não me causou um problema ainda. Isso funcionará para a maioria das eventualidades. Se você encontrar um que não se encaixa no futuro, basta atravessar essa ponte quando você a encontrar. WHRoeder: Você está apenas repetindo o mesmo que eu já encontrei insuficiente. Usar a variável Digits sozinho não ajuda o problema (o problema definido é eu na primeira publicação), uma vez que não leva em consideração qual o símbolo que está sendo executado atualmente e quantos dígitos esse símbolo deve ter. Pode haver qualquer quantidade de dígitos de 0 a 5 em alguns pares exóticos, não apenas 5 ou 3 vs 4 ou 2. Se fosse tão simples, não abri esse segmento. Portanto, agora estou usando apenas os dígitos de eurusd, não importa em que par é executado. Encontrar o nome real de eurusd foi o maior problema, e até agora o método symbols. raw parece ser o mais simples e mais confiável. Cloudbreaker: se você encontrar um que não se encaixa no futuro, então basta atravessar a ponte quando você encontrá-lo. Estou tentando escrever um código infalível que não vai quebrar. Escrevendo (conscientemente) código de buggy e aguarde até que ele quebre antes de corrigi-lo, não se enquadra na minha filosofia de como o desenvolvimento de software deve ser feito. 7bit escreveu gtgt Estou tentando escrever código infalível que não vai quebrar. Escrevendo (conscientemente) código de buggy e aguarde até que ele quebre antes de corrigi-lo, não se enquadra na minha filosofia de como o desenvolvimento de software deve ser feito. Eu não diria que o código acima foi buggy - ele simplesmente tem. Limitações, das quais os usuários estão bem cientes A beleza da filosofia é que ele pode ser executado de forma assíncrona com praticidade :) - BB - Não é apenas um simples (talvez não tão simples em termos de matemática) questão de resolver o que um ponto é relativo Um preço determinado e, em seguida, decidir qual é o dígito em comparação com os dígitos do preço. Uma maneira simples de conseguir isso pode levar um preço adicionar um ponto e compará-lo com seu preço multiplicador se seu resultado não for o mesmo aumentar o seu mutiplicador em Um loop até que eles correspondam. Blog Forex 6 dígitos Forex Quotes e MetaTrader Expert Advisors 19 de março de 2008 por Andriy Moraru Muitos corretores de Forex começaram a oferecer cotações de Forex de 6 dígitos para o terminal MetaTrader 4 recentemente. Tem muitos benefícios para os comerciantes de escalação e abre muitas novas possibilidades comerciais para outros. Mas parece haver um problema com quase todos os consultores especializados que são aplicados na plataforma MetaTrader 4, que usa citações Forex de 6 dígitos em vez do formato mais convencional de 5 dígitos. Como os conselheiros mais experientes usam a variável quotPointquot para pips para denominar stop-loss e take-profit, há dois grandes problemas com as citações de 6 dígitos. Primeiro, os valores de stop-loss e take-profit têm chances muito fortes de aproximar-se do preço atual do par144 e o MT4 gerará um erro 130, se quiserem fechar. Em segundo lugar, toda a estratégia incorporada na EA atribuída deixará de funcionar corretamente, porque todos os lucros e perdas provavelmente serão divididos por 10. Let146s olhem o exemplo a seguir. Com uma taxa de 5 dígitos, a taxa EURUSD é de 1.5703 e um ponto no MetaTrader 4 é 0.0001 151 um pip convencional para par EURUSD. Nosso consultor especial adota o EURUSD, definindo stop-loss em 20 pips 151 1.5683 e obtém lucro em 40 pips 151 1.5743. Tudo corre bem e ganhamos 40 pips quando a taxa atinge 1.5743. Mas para uma citação de 6 dígitos, as coisas são completamente diferentes. Por exemplo. A taxa acima pode ter sido 1.57032 e um ponto em seu MT4 teria sido 0.00001 151 dez vezes menor que o pip convencional para EURUSD. O mesmo consultor especialista teria definido o stop-loss em 1.57012 e lucrativo em 1.57072. Não só 99 dos corretores não permitiriam um ajuste tão próximo da perda e do lucro, mas, se permitido, essa posição não seria muito racional e, claro, não seria de acordo com as regras iniciais da estratégia. Então, como corrigir esse problema sem reescrever completamente o consultor especialista e, claro, sem mudar um corretor (para um com as citações de 5 dígitos) Primeiro, eu gostaria de lhe dizer que todos os conselheiros especialistas do MetaTrader que são apresentados no meu site foram Já modificado para trabalhar com as citações de 5 e 6 dígitos. Em segundo lugar, aqui está a maneira de fazer com que qualquer EA funcione corretamente com aspas de 6 dígitos: Abra o. mq4 do consultor especialista que deseja alterar no Editor MQL. Adicione uma nova declaração de variável global (deve estar no início do código, juntamente com outras declarações de variáveis): ponte duplo Adicione o seguinte código à função init () do EA. Esta função geralmente está presente em todas as EAs (contém várias rotinas de inicialização), mas se ele não estiver lá, crie-o e inclua este código: Verifique o número de dígitos não convencionais se (Ponto 0.00001) Pointe 0.0001 6 dígitos outro se (Ponto 0.001) Poin 0,01 3 dígitos (para pares baseados em ienes) else Poin Point Normal Substitua todas as ocorrências adicionais de quotPoint132 no código com 147Poin132 (exceto aqueles na função init ()). Isso mudará a variável MT4 do sistema 147Point132 para nossa variável declarada 147Poinquot, que agora contém o valor padrão de 5 dígitos de pip. Isso é tudo. Compile e você está pronto para executá-lo nas citações de 6 dígitos no MetaTrader. Claro, ainda funcionará com citações padrão de 5 dígitos também. Posts Relacionados: 7 Responses to 82206 Digit Forex Quotes e MetaTrader Expert Advisors8221 Você pode entrar em contato comigo para resolver um problema com esse erro. Eu fiz o que você publica aqui, mas não estou obtendo resultados, talvez não esteja fazendo isso bem. Jose, what8217s seu problema Hey, obrigado, legal e rápido. O primeiro e único tutorial sobre isso quando eu googled8230Gracias você. Alex. Obrigado por este Andrei, quando eu o instalar na minha EA, recebo a seguinte lista de erros quando eu compilar: 8216if8217 821 ponto-e-vírgula esperado C: Arquivos de ProgramasMetaTrader 4expertsindicatorsVegas Currency 60 Min Test. mq4 (39, 1) Isto é para a primeira instância De 8220if8221 na função init () e então eu obtive isso para a expressão 8282double Poin8217: 8216Poin8217 8211 expressão no alcance global não permitida C: Program FilesMetaTrader 4expertsindicatorsVegas Currency 60 Min Test. mq4 (39, 23) Quando tento carregar esse indicador De qualquer forma, ele não aparece mais como um indicador personalizado para carregar em um gráfico, devido aos erros I8217m adivinhando. Todos os insights são apreciados, reparei o problema depois de um pequeno diagnóstico, obrigado Andrei por publicar isso, fiquei preso um pouco por esse assunto. Tenho um problema, tenho um especialista que funciona na plataforma MT4 com 5 dígitos. Mas depois não funciona com 6 dígitos e o tempo todo envia o erro no: 136. Não usei o ponto na fonte do programa e eu uso Ask e Bid para abrir e encomendar. Quando eu li, pergunte e mandei através do comando Alert, achei que era de 5 dígitos e não sei por que o preço não era de 6 dígitos. Você poderia ajudar-me a resolver este problema? O erro 136 significa que não há preços fornecidos pelo corretor. Tente reiniciar sua plataforma. Tente também adicionar RefreshRates () antes de obter Ask e Bid no seu código. Deixe uma resposta

No comments:

Post a Comment