Auto-aprendizagem da linguagem MQL5 a partir do zero - página 23

 
Aliaksandr Hryshyn:

Você começou com o pé errado. Você entende tudo o que está no código? Todos os operadores, palavras-chave?

Verifique a pergunta sobre o código:

O que significam estas linhas?

Esses foram meus comentários sobre o roteiro:

/* Seguindo em frente. Após enviar os pedidos ao servidor comercial, precisamos saber se uma ordem pendente foi definida
ou não. Para isso, vamos usar a função OrderSend que foi projetada para operações comerciais
, enviando pedidos ao servidor comercial. Se o envio de um pedido para
falhar (um ponto de exclamação na frente de qualquer função indica um resultado negativo de sua execução
), então emitimos uma mensagem com um código de erro no seguinte formato: "OrderSend error %d"
e GetLastError(). Vamos entender o que é "OrderSend error %d" e o que é GetLastError().
Note que "OrderSend error %d" está entre aspas duplas. Isto significa que
imprimirá o texto com a tradução literal "OrderSend error %d". Agora vamos entender o que significa
%d. Na seção PrintFormat da Referência MQL5, encontramos: "Se uma cadeia de formatos for seguida por mais parâmetros,
, esta cadeia deve conter especificações de formato que definam o formato de saída desses parâmetros.
Uma especificação de formato começa sempre com um sinal de porcentagem (%)". O que é um d? Na mesma seção
logo abaixo encontramos: "Tipo d - especifica o número mínimo de dígitos a serem emitidos. Se o número de dígitos em
for menor do que a precisão especificada, o valor de saída é acolchoado com zeros à esquerda.
O valor de saída não é truncado se o número de dígitos a serem emitidos for maior do que a precisão especificada. Com isto
que resolvemos, agora precisamos entender o que é GetLastError(). Novamente procurando no livro de referência: "GetLastError()
retorna o conteúdo da variável de sistema _LastError, ou seja, a variável na qual
é armazenado o valor do último erro que ocorreu durante a execução do programa mql5.

Cumprimentos, Vladimir.

 
MrBrooklin:

Portanto, ainda não descobri e há trabalho a ser feito.

Cumprimentos, Vladimir.

Novamente, comece com a descrição do que seu código faz. Este roteiro coloca o SL e TP nas posições. Como não sabemos se eles estão lá, assumimos que as posições estão lá, e que existem ambas (conta hedge). A condição de colocar paradas fará sempre uma verdadeira.... Portanto, é assim. Trabalhar através do código até o final. ))))

E tente entender cada linha do código. Desde o início.

 
Реter Konow:
Esta condição não é de todo necessária ali. Que papel ele desempenha? Você pode explicar?

Eu queria estabelecer uma condição oculta para definir ordens de Stop de Compra e Stop de Venda pendentes.

Cumprimentos, Vladimir.

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
MrBrooklin:

Checado mais algumas vezes - o compilador não dá nada.

Cumprimentos, Vladimir.

E por que deveria produzir algo? Você não conhece macros, não sabe como trabalhar com eles, mas os usa, então espera algum erro ou pelo menos um aviso deles. Se você tivesse pelo menos uma vez lançado seu roteiro na demonstração e o tivesse executado em todos os modos, você teria visto que ele não funcionou. Mas você vai mais longe. Você adiciona um stop-loss, take-profit, e na margem eles dizem: "Pare a máquina!

 
Valeriy Yastremskiy:

Novamente, comece descrevendo o que seu código faz. Este roteiro coloca um SL e TP nas posições que você colocou. Como não sabemos se eles estão lá, assumimos que as posições estão lá, e que existem ambas (conta de cobertura). A condição de colocar paradas fará sempre uma verdadeira.... Portanto, é assim. Trabalhar através do código até o final. ))))

E tente entender cada linha do código. Desde o início.

Obrigado pela dica de verificar se há alguma vaga em aberto no início.

Cumprimentos, Vladimir.

 
MrBrooklin:

Eu queria estabelecer uma condição oculta para definir ordens de Stop de Compra e Stop de Venda pendentes.

Atenciosamente, Vladimir.

Diga-me, escrever uma macro para isso é a única maneira de estabelecer tal condição? As condições, como eu as entendo, são estabelecidas apenas por macros? Ou você pode fazê-lo de alguma outra forma? E se existe outra maneira, por que você escolheu esta macro? Deve ter havido alguma necessidade? Mas o que foi?

 
MrBrooklin:

Obrigado pela dica de verificar primeiro se há alguma vaga em aberto.

Cumprimentos, Vladimir.

Não tente nem mesmo agora. É muito cedo para fazer isso. É muito cedo. Você vai ficar mole, vai ficar cansado, e vai desistir de tudo. Volte para o livro didático e problemas simples.
 
Vasiliy Sokolov:

Escrever uma macro para isto é a única maneira de estabelecer esta condição? Pelo que entendi, as condições são estabelecidas apenas por macros? Ou existe alguma outra maneira? E se existe outra maneira, por que você escolheu a macro? Deve ter havido alguma necessidade? Mas o que foi?

Não, não havia necessidade, simplesmente encontrei #define ao estudar modificadores e decidi experimentá-lo no roteiro.

Atenciosamente, Vladimir.

 
MrBrooklin:

Eu queria estabelecer uma condição oculta para definir ordens de Stop de Compra e Stop de Venda pendentes.

Cumprimentos, Vladimir.

O que significa "condição oculta"? Este tipo de condições não existe na programação.
 
Vasiliy Sokolov:

... Se você executasse seu roteiro em uma demonstração por uma vez e o executasse em todos os modos, você veria que não funciona. Mas você está dando um passo adiante. Você adiciona um stop loss e tira lucro, e a costa já está gritando: "Pare o carro"!

Vasiliy, eu dirigi o roteiro mais de uma vez e todos os modos funcionam, ou seja, eu coloquei duas ordens pendentes Buy Stop e Sell Stop na distância que especifiquei. O Stop Loss e Take Profit também são definidos na distância necessária. Os pedidos funcionam. Eu gostaria de anexar aqui uma imagem de tela.

Cumprimentos, Vladimir.


Razão: