Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 640
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Olá camaradas!
O MT5 tem ferramentas tão maravilhosas e muito úteis "Impulse Elliott Wave" e "Corrigir Elliott Wave".
A pergunta é: Posso integrar estas ferramentas do MT5 no MT4?
Eu negocio no MT4. Não é muito conveniente mudar para o MT5 para análise.
Ou: Quais são as outras maneiras de resolver o problema?
Boa tarde, o idioma tem um parâmetro de mercado como MarketInfo(Symbol(), MODE_TICKVALUE). Você pode descrever em termos gerais como este valor é calculado?
Este é o valor da mudança mínima de preço (1 pip) na moeda do depósito a 1,00 lote! O cálculo é muito fácil: 1,00(lote)/1,36030(cotação atual de Euro) = 0,7351 em Euro.
Este é o valor da mudança mínima de preço (1 pip) na moeda do depósito a 1,00 lote! Calculado muito simplesmente: 1,00(lote)/1,36030(cotação atual do Euro) = 0,7351 em Euro.
Exceto que um pedido via marketinfo retorna de alguma forma 10 para todos os pares, exceto pares de ienes ))))
De onde você tirou esta fórmula?
exceto que uma consulta através do marketinfo retorna de alguma forma 10 para todos os pares, exceto pares de ienes ))))
De onde você tirou esta fórmula?
Eu mesmo faço todas as fórmulas e agora as tirei do meu gráfico.
E esta é da Doki:
MODE_TICKVALUE.
16
Tamanho da mudança mínima do preço do símbolo na moeda do depósito
Os cálculos não são compartilhados.
Eu mesmo faço todas as fórmulas e agora as obtive de minha tabela.
E isto é das Docas:
MODE_TICKVALUE
16
Tamanho da alteração do preço mínimo do instrumento na moeda do depósito
Os cálculos não são compartilhados.
Embora por 1 eurodólar o lote 1 pip custe realmente 10 dólares, então não há problema.
E os cálculos não devem ser compartilhados somente com aqueles que têm vergonha de mostrá-los.![](https://c.mql5.com/mql4/forum/2014/06/biggrin.gif)
Neste caso a fórmula deve ser correta - MODE_TICKVALUE = MODE_LOTSIZE * MODE_TICKSIZE - para Euro, a fórmula para cruzes e Yen é um pouco diferente
Para ser honesto, ainda não descobri como aplicá-lo. Falta um milímetro, é uma pena parar quando está quase pronto.
Tarefa, não escreva preço para array se o tempo do objeto(2º parâmetro+3600sec>current)||(1º parâmetro tempo - 2º parâmetro tempo)<3600sec )
Por que emular um erro?
Um erro é sinalizar que, por alguma razão relacionada às limitações/falhas do sistema, o algoritmo não conseguiu executar e obter um resultado com algumas (naturalmente limitadas, mas - ) garantias. A função FillAndPrint() mostra de forma eloqüente o que significa uma situação de erro e o que não significa. Quando ocorre um erro, ele não tenta sequer imprimir o resultado. Se não houver erro, o resultado pode ser confiável. É assim que a lógica "erro/ nenhum erro" deve ser construída.
Mas aqui precisamos modificar o algoritmo: também precisamos aplicar um filtro adicional.
É assim que deve ser feito:
Primeiro "filtramos" por tipos de objetos e parâmetros, selecionando apenas os objetos necessários de todos os disponíveis, e depois aplicamos um filtro adicional. É mais ou menos como uma pessoa o faria. Isso é o que uma pessoa faria, certo?
Para cada uma dessas pequenas subtarefas, precisamos de uma função separada.
Os números não devem estar em expressões, exceto em casos muito especiais, por exemplo, se for necessário dobrar, e esta duplicação está na natureza do algoritmo. Então o número 2 pode ser usado diretamente em expressões. E em outros casos muito raros como este.
Em outros casos, a mnemônica deve ser utilizada. Primeiro, eles melhoram muito a compreensão do que está acontecendo em um determinado lugar e, portanto, ajudam a reduzir a probabilidade de se cometer um erro. Em segundo lugar, o valor em si é fixado em um lugar e é fácil mudá-lo se necessário, e será impossível cometer um erro em comparação com o caso em que o número é usado repetidamente no algoritmo, e sem usar a mnemônica tem que corrigir os números em vários lugares no algoritmo.
Resultado da corrida:
Não é encontrado um único objeto. Aumentar os valores de ambos os mnemônicos 10 vezes para 36000 (10 horas), e executar novamente:
Uma tendência já "passou" a filtragem. Agora restauramos o valor da primeira mnemônica para 3600 e a executamos:
Podemos ver que agora ambas as linhas de tendência têm uma filtragem "passada". A propósito, recomendo depurar todos os ramos (partes) do programa de tal forma, e não apenas um ramo.
Para ajudá-los de alguma forma a formalizá-lo, tentarei explicar desta forma. Um programa é aparentemente como um plano.
Cada item principal do plano pode ser decomposto em itens de um subplano menor. Os mais pequenos em ainda menores. Os pontos dos menores sub-planos são executados diretamente.
Cada plano, sub-plano e até mesmo os pontos dos menores sub-planos correspondem às funções do programa. Os itens nos menores sub-planos correspondem a funções "finais" que apenas chamam funções do sistema, ou mesmo não as chamam de modo algum, por exemplo, AddValue() ou DiffInSecs() são exemplos na discussão acima. Os itens do subplano acima correspondem às funções que chamam as funções que implementam os itens do subplano abaixo. Nos discutidos acima, estes são MassTrendNumber(), AddValueIfFound(), AddValueIfFiltered(). Funções de "baixo nível" não devem chamar funções de "alto nível", e funções de "alto nível" basicamente não devem saltar vários níveis abaixo, ou seja, só devem chamar funções basicamente no nível abaixo. Esta regra é muito mais estrita para "baixo nível" do que para "alto nível".
Tente construir seus programas, organizando as ações neles como (curtas) funções ligadas por este tipo de estrutura em árvore, no sentido de quem chama quem.
Este programa tem uma árvore degenerada: um ramo que "ramifica" várias vezes. E "ramos" não em dois pequenos ramos, mas em um só. Mas o ponto que as funções de "alto nível" chamam consistentemente de "baixo nível" pode ser visto. Nesta modificação, inseri mais um nível nesta estrutura, outro "ramo não ramificado" - AddValueIfFiltered().
https://www.mql5.com/ru/forum/152102 Eutenho uma pergunta
Tudo está correto! Com uma citação de 4 dígitos era sempre 1, e comuma citação de 5 dígitos é agora 10, porque há 10 vezes mais pips (e mais rasos). E o valor de um tick min. deve ser calculado a partir do preço atual!
Tenho agora 4 dígitos, no ewoldollar a 1 ponto do lote 1 custa $10 e sempre foi assim. Para os cruzamentos o custo será de 8 a 16, a fórmula é um pouco mais complicada lá.
Por exemplo, para o mercado da libra esterlina, a taxa de câmbio libra-dólar = 1,6984, ou seja, 1 ponto da libra esterlina vale 1 libra, multiplicado pelo valor do ponto libra-dólar, que é sempre 10,0 (100000 * 0,0001 = 10,0 ou 100000 * 0,00010 = 10,0 - o que quiserem).
Todos estes cálculos estão corretos somente se sua conta estiver em dólares:
Neste caso, para xUSD (EURUSD, GBPUSD etc.) tickvalue = lote*ponto = 100000*0,0001 = 10,0
para USDx (USDCHF, USDJPY etc.) tickvalue = lote*ponto/Bid = 100000*0.01/101.93 = 9.8107
para xUSD/yUSD (EURGBP) tickvalue = Bid(yUSD)*lot*point = 1,6980*100000*0,0001 = 16,98
para cruzamentos xUSD/USDy (EURJPY) tickvalue = lote*ponto/Bid(USDy) = 100000*0.01/101.91=9.8126
Tenho agora 4 dígitos, no ewoldollar a 1 ponto do lote 1 custa $10 e sempre o fez. Para os cruzamentos o custo será de 8 a 16, a fórmula é um pouco mais complicada lá.
Por exemplo, para o mercado da libra esterlina, a taxa de câmbio de evodollar = 1,3604, a taxa de câmbio libra-dólar = 1,6984, ou seja, 1 pip da libra esterlina vale 1 libra, multiplicado pelo valor em pontos da libra esterlina, que é sempre 10,0 (100000*0,0001 = 10,0 ou 100000*0,00010 = 10,0 - o que quiserem).
O meu é simples e prático! E na época em que havia uma citação de 4 dígitos, eu ainda não tinha escrito programas, portanto, não posso julgar. :)
Boa noite!