Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 121
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
Escreva pelo menos um bloco e mostre-o. O próximo passo é sugerir isso aqui.
Em matrizes: aqui declarei 4 matrizes em nível global:
Depois os zerei na função de abertura de posição:
Como preenchê-los agora? No exemplo com o qual estou tentando fazer isso, uma variável adicional é aplicada, mas eu não entendo como usá-la:
Embora não esteja bem claro porque preciso de todas estas matrizes quando posso obter os valores do bilhete, tipo de posição, preço aberto e tempo aberto com a função correspondente.
Em matrizes: aqui declarei 4 matrizes em nível global:
Em seguida, eu os zerei na função de abertura de posição:
Como preenchê-los agora? O exemplo que estou tentando usar aplica uma variável adicional, mas eu não entendo como usá-la:
Embora não esteja bem claro por que todas estas matrizes, quando consigo obter os valores do bilhete, tipo de posição, preço aberto e tempo aberto com a função correspondente.
Tente escrever a partir do zero, emitindo todos os dados intermediários usando Alert(. Por exemplo
E se você pegar o exemplo de alguém, pegue-o completamente e estude-o. Quem sabe o que o autor do exemplo está usando arrays para
Em matrizes: aqui declarei 4 matrizes em nível global:
Use uma variedade de estruturas. O acesso será muito mais fácil. Aqui está uma variante com uma matriz estática. É mais fácil de entender. Mas eu mesmo utilizo matrizes dinâmicas. Mas o código vai ficar um pouco maior com eles.
Depois os zerei na função de abertura de posição:
Não, você não o fez. Porque são declaradas matrizes dinâmicas que têm tamanho zero por padrão. Portanto, neste caso, estas quatro linhas de código não fazem nada.
Agora, como preenchê-los? O exemplo que estou tentando usar tem uma variável adicional, mas eu não entendo como usá-la:
A seguir - um ciclo de pedidos é organizado, no qual cada "próprio" pedido é armazenado em uma matriz:
Embora, não tenho bem certeza para que servem todas essas matrizes, quando posso obter os valores do bilhete, tipo de posição, preço aberto e tempo aberto usando a função correspondente.
É muito mais rápido e conveniente trabalhar com matrizes, uma vez que, em geral, nem todas as ordens presentes na conta precisam ser processadas por esta EA em particular. E como resultado, economizaremos muito esforço e dinheiro.
Além disso, eu mencionei acima é um caso geral. O universalismo nem sempre é necessário, é claro. Normalmente, tais matrizes são criadas com base nas exigências de uma estratégia. Por exemplo, podemos dividir os pedidos por tipo imediatamente: Comprar, Vender, ComprarStop, VenderStop, ComprarLimit, VenderLimit. Então, precisaremos de quatro matrizes desse tipo. Mas então não precisaremos passar por toda a lista de pedidos abertos novamente quando tomarmos decisões comerciais. Só precisamos saber o número de pedidos de um determinado tipo e consultar a matriz necessária.
Há mais uma coisa importante a considerar: mudar o conjunto de pedidos durante o processamento de um tick. Pode muito bem acontecer que uma lista de pedidos tenha sido recebida na entrada da OnTick, e outra em algum lugar no meio. Isto levará a um erro na operação do programa que é difícil de ser capturado. E o conjunto de ordens que já foi formado ao entrar no OnTick não mudará (a menos, é claro, que você mesmo mude durante a execução do programa).
string s=FileReadString(F1); // Ler string do arquivo de texto
StringSplit(s, ","," , a); // Elementos de corda separados por vírgula em uma matriz
datatime T1=StrToTime(a[4]); // Além disso, a transformação ...
int ord=StrToInteger(a[8]);
double Price=StrToDouble(a[12]);
Obrigado, exatamente o que eu queria.
A seguir, há 5 produtos fabricados
Lançamos uma leitura de alerta (qualquer)
por exemplo, nível "200".
Quando o alerta dispara, algo abre a pose, algo se apaga, algo faz outras coisas. Quero implementar um mecanismo para dar um sinal desta forma
Z.U.
Terminei o que eu queria, posso enviá-lo para revisão. Galpões perfeitamente. Mas é proibido afixar aqui.
Por exemplo, é possível dividir os pedidos por tipo de uma só vez: Compra, Venda, BuyStop, SellStop, BuyLimit, SellLimit. Então, precisaremos de quatro matrizes desse tipo. Mas então não precisaremos passar por toda a lista de pedidos abertos novamente quando tomarmos decisões comerciais. Só precisamos saber o número de pedidos de um determinado tipo e consultar a matriz necessária.
Isso é exatamente o que eu preciso, ou melhor, só paraComprar e Vender. O principal para minha estratégia simples é não deixar que as posições abertas interfiram umas com as outras para ver as condições de fechamento. Talvez, podemos prescindir de arrays? Eu não os entendo: como criá-los, como abordá-los - estou no escuro. Talvez minha situação se torne mais clara para você na captura de tela:
Parece que tudo no código é simples e funciona claramente, mas este é o único caso de incompreensão.
Isto é exatamente o que eu preciso, ou melhor, apenas paraComprar e Vender. Para minha estratégia simples, o mais importante é que as posições abertas não interfiram nas condições de fechamento um do outro. Talvez possamos passar sem matrizes? Eu não os entendo: como criá-los, como abordá-los - estou no escuro. Talvez minha situação se torne mais clara para você na captura de tela:
Parece que tudo no código é simples e funciona claramente, mas este é o único caso de incompreensão.
Naturalmente, na mais simples (e média complexidade) sem arrays é mais conveniente. Mas quando se chega ao ponto de usar centenas de pedidos - então...
Poderia ser a razão da minha situação que o registro escreve: 2018.01.25 20:22:12 2018_WPR14_AMarkets EURUSD,M5: OrderClose error 138 e repete solidamente para
2018.01.26 16:38:12 2018_WPR14_AMarkets EURUSD,M5: Alerta: Total de pedidos = 3 ? Na captura de tela você pode ver que este período captura duas condições de fechamento da VENDA.
E os sinais para abrir uma posição são acionados por uma combinação de vários indicadores e fechados por um indicador. E eles não trabalham com tanta freqüência: pode ficar em silêncio por alguns dias durante cinco minutos. Por exemplo, desde 1º de fevereiro deste ano, apenas 14 posições foram acionadas.
Poderia ser a razão da minha situação que o registro escreve: 2018.01.25 20:22:12 2018_WPR14_AMarkets EURUSD,M5: OrderClose error 138 e repete solidamente para
Qual é a sua situação? Você está dizendo que o terminal está fazendo uma entrada de registro que está causando o erro? e o que significa 138 ? você sabe onde procurar? Como você conseguiu isso é um erro muito raro. O que você vê na imagem da tela é metade da batalha. Como explicar isto ao Consultor Especialista? Você tem que escrever alguma condição matemática - ao invés de ver a captura de tela, o Consultor Especialista opera com números
Você está dizendo que o terminal faz uma entrada de registro, o que causa o erro? ... O que significa 138? Você sabe onde procurar?
Não, eu estou dizendo que o testador falha neste intervalo da história, o que impede que os sinais funcionem corretamente. Porque as solicitações não podem continuar por 24 horas.
Não, o que eu quero dizer é que há uma falha no testador neste ponto da história, o que impede que os sinais funcionem corretamente. Porque as solicitações não podem continuar por 24 horas.
Exigências no testador? Essa é a primeira vez que ouço. O testador é o ideal - ele nem sequer tem escorregamento
...algo está chutando o indicador - tendência para cima. Vou comprar ... Entendi... Embora não seja suficiente eu queria mudar a TP para cima - já funcionou...
Então defina uma EA que, se ela fizer isso, então sairá e continuará no próximo tick. E experimente na demonstração