Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1229
![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
Meu entendimento é que é como uma verificação periódica da disponibilidade. (Há EURUSD? e há uma ordem com a magia especificada?) Se alguma das condições estiver faltando, abrimos uma posição. Somente se ambas as condições forem cumpridas, abrimos uma posição.
Em seguida, somos questionados na etapa 2. Suponha que tenhamos um pedido aberto manualmente. Então atendemos à primeira condição (temos o mesmo símbolo) e não atenderemos à segunda condição, já que esta ordem não contém magia. E se uma das condições não corresponder, então o código deve abrir o pedido. Isto é exatamente o que o código faz. Mas no próximo tick, abre o terceiro, quarto e quinto pedidos.....
Por que abre uma terceira encomenda?
Mas há dois pedidos que atendem a ambas as condições no total. Deve haver um cheque (mudança para retornar(0)), não uma abertura. e não a abertura.
Boa noite a todos! Você pode me dizer se você pode escrever um código em mql5 que desenhará uma linha no gráfico (figura anexa) e registrar todas as coordenadas dessa linha no arquivo? Se você quiser traçar uma linha e preenchê-la com as coordenadas, então você precisa fazer um traçado simples da linha.
Tudo está na documentação.
Tudo está na documentação.
Obrigado pela dica, talvez você possa me ajudar a construir um destes de graça, é claro.
Obrigado pela dica, mas talvez você possa me ajudar a construir uma dessas coisas, não de graça, é claro.
Não de graça - isso é para você)))
Meu entendimento é que é como uma verificação periódica da disponibilidade. (Há EURUSD? e há uma ordem com a magia especificada?) Se alguma das condições estiver faltando, abrimos uma posição. Somente se ambas as condições forem cumpridas, abrimos uma posição.
Em seguida, somos questionados na etapa 2. Suponha que tenhamos um pedido aberto manualmente. Então atendemos à primeira condição (temos o mesmo símbolo) e não atenderemos à segunda condição, já que esta ordem não contém magia. E se uma das condições não corresponder, então o código deve abrir o pedido. Isto é exatamente o que o código faz. Mas no próximo tick, abre o terceiro, quarto e quinto pedidos.....
Por que abre uma terceira encomenda?
Mas há dois pedidos que atendem a ambas as condições no total. Deve haver um cheque (mudança para retornar(0)), não uma abertura. mas não a abertura.
== - se for igual != - se não for igual. Continuidade - iteração de fim de loop e início de uma nova iteração de loop. Quebra - terminação do ciclo e transição para o próximo operador após o ciclo, retorno - terminação da função, no seu caso Onstart e à espera de um novo tick. E se um pedido com seu magik estiver aberto, ele deve terminar a função e sair para esperar por um novo tick.
Pergunta, se você deseja abrir um pedido na janela atual, por que você precisa especificar a ferramenta explicitamente, ou você deseja abrir pedidos a partir da janela de outra ferramenta? Também não está claro quantos pedidos você quer abrir. De acordo com seu código, somente uma ordem pode ser aberta e somente após o seu fechamento, a segunda será aberta. Você tem um mágico e uma ferramenta de janela aberta. Além disso, as condições de abertura do pedido são verificadas para o instrumento atual e não para o Eurobucks.
== - se for igual != - se não for igual. Kontinue - termina a iteração de loop e inicia uma nova iteração de loop. Intervalo - termina o loop e vai para o próximo operador que segue o loop, volta - termina a função, no seu caso OnStart e espera por um novo tick. E se um pedido com seu magik estiver aberto, ele deve terminar a função e sair para esperar por um novo tick.
Pergunta, se você deseja abrir um pedido na janela atual, por que você precisa especificar a ferramenta explicitamente, ou você deseja abrir pedidos a partir da janela de outra ferramenta? Também não está claro quantos pedidos você quer abrir. De acordo com seu código, somente uma ordem pode ser aberta e somente após o seu fechamento, a segunda será aberta. Você tem um mágico e uma ferramenta de janela aberta. Além disso, as condições de abertura do pedido são verificadas para o instrumento atual e não para o Eurobucks.
- Sim, eu quero abrir na janela atual;
- Um pedido. O próximo pedido não é aberto até que o pedido anterior seja fechado.
"Também, as condições de abertura do pedido são verificadas para o instrumento atual e não para o Eurobucks" - então ?
- Sim, eu quero abrir na janela atual;
- Um pedido. O próximo pedido não é aberto até que o pedido anterior seja fechado.
"Também as condições de abertura do pedido são verificadas para o instrumento atual e não para o Eurobucks" - então ?
E o que então, por exemplo, você tem uma janela aberta não Eurobucks, mas o Eurofunt, você compara o símbolo do pedido selecionado com Eurobucks, se for verdade, então no Eurobucks há um pedido, e se nosso magik, então retornado da função OnStart, e se não, então nós estabelecemos um pedido no Eurobucks, mas Kloz, High, Asc, Bid, você terá um erro ao abrir pedidos, porque Bid e Asc para estes instuents são diferentes. E Symbol() devolverá o símbolo da janela atual e nenhum erro ocorrerá.
Você pode usar um modelo do meta editor, há um Novo botão na parte superior esquerda. A função OnStart ainda é usada, mas não está correta, e OnStart é para scripts. O modelo certo.
Código correto. Seu comentário de pedido está faltando e o mágico não está contabilizado em seu código. Nos avisos à nota da linha de abertura Conversão implícita de um número em um fio!!!
há muitos erros em seu exemplo
deveria haver:
aqui os preços não são normalizados OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-SL*Point,Bid+TP*Point,"My order",MagicNumber,0,clrGreen);
Aqui não entendo a lógica por que a saída do OnTick() é necessária se a condição é falsa.
talvez, devemos continuar com o laçoe simplesmente calcular quantos pedidos existem
Seu exemplo é muito simples na lógica e seria difícil modificá-lo para outras tarefas... talvez ele gostasse de acrescentar o trailing