Sim, no início, meu erro mais comum até agora não é colocar um ponto-e-vírgula onde ele deveria estar. Eu simplesmente esqueço de fazer isso. Então eu sento e penso, o que o programa não gosta nesta linha? Agora eu tenho um problema com a chamada de função externa. O exemplo aqui é 'Order Management - It's Easy'. Primeiro temos o Expert Advisor, depois a função (na qual estou realmente interessado), e depois o Expert Advisor com esta função plugada. Eu tentei fazer isso com meu próprio exemplo, mas não funcionou. Depois tentei os exemplos, descritos no artigo, e falhei novamente. Salvei a função e sou especialista em uma pasta. Ao compilar um Expert Advisor, o erro 'OneOrderControl.mq4' - não pode abrir o arquivo do programa D:\Program Files\MetaTrader 4 Ukrsotsbank\Test.mq4 (3, 1). Eu não entendo qual é o problema até agora.
Climber: Eu tentei usar meu próprio exemplo, mas falhei. Depois usei os exemplos do artigo e falhei novamente. Eu salvei a função e o Expert Advisor na mesma pasta.
O arquivo de inclusão (OneOrderControl.mq4) deve constar do diretório de especialistas\incluindo
Se a variável Mu menos a variável UD multiplicada pelo preço do ponto for maior ou igual a Ask e ao mesmo tempo a variável _OrdersTotal não for igual a 1, então à variável Opn_B é atribuído o valor verdadeiro. Ou seja, somente se estas duas condições forem atendidas é que a variável Opn_B recebe o valor verdadeiro. E se for colocada uma vírgula em vez de &&, então a verdade é atribuída quando pelo menos uma das condições é cumprida.
Se a variável Mu menos a variável UD multiplicada pelo preço do ponto for mais ou igual a Ask e ao mesmo tempo a variável _OrdersTotal não for igual a 1, então à variável Opn_B é atribuído o valor verdadeiro. Ou seja, somente se estas duas condições forem atendidas é que a variável Opn_B recebe o valor verdadeiro. E se for colocada uma vírgula em vez de &&, então a verdade é atribuída quando pelo menos uma das condições é cumprida.
Isto é correto em geral.
Mas a expressão especificada no cabeçalho da declaração if() é booleana, não implica a possibilidade de "vírgula". A fim de implementar a segunda opção que você descreve, é necessário colocar ||| (OR lógico) em vez de && (AND lógico). Neste caso, a expressão inteira no cabeçalho (entre parênteses) será verdadeira se pelo menos uma das expressões separadas por ||| for verdadeira.
O uso de parênteses é permitido. Os parênteses têm maior prioridade nos cálculos (como os cálculos aritméticos normais).
Renat: No outro dia lançamos a versão beta do livro online de Sergei Kovalev(SK.) sobre programação MQL4. https://book.mql4.com/ru
Por enquanto só funciona a versão russa, mas tentaremos traduzi-la para inglês e chinês. Se você tiver algum comentário sobre o livro, por favor, informe-nos.
Eu tentei usar meu próprio exemplo, mas falhei. Depois usei os exemplos do artigo e falhei novamente. Eu salvei a função e o Expert Advisor na mesma pasta.
Obrigado. Agora descobrindo como descobrir o preço máximo nas últimas 40 barras.
Agora descobrindo como descobrir o preço máximo nas últimas 40 barras.
Ver Tarefa 26 no Tutorial - Variáveis - Arrays.
Agora descobrindo como descobrir o preço máximo nas últimas 40 barras.
Ver Tarefa 26 no Tutorial - Variáveis - Arrays.
Se a variável Mu menos a variável UD multiplicada pelo preço do ponto for maior ou igual a Ask e ao mesmo tempo a variável _OrdersTotal não for igual a 1, então à variável Opn_B é atribuído o valor verdadeiro. Ou seja, somente se estas duas condições forem atendidas é que a variável Opn_B recebe o valor verdadeiro. E se for colocada uma vírgula em vez de &&, então a verdade é atribuída quando pelo menos uma das condições é cumprida.
Estou lendo corretamente a condição de declaração?
Se a variável Mu menos a variável UD multiplicada pelo preço do ponto for mais ou igual a Ask e ao mesmo tempo a variável _OrdersTotal não for igual a 1, então à variável Opn_B é atribuído o valor verdadeiro. Ou seja, somente se estas duas condições forem atendidas é que a variável Opn_B recebe o valor verdadeiro. E se for colocada uma vírgula em vez de &&, então a verdade é atribuída quando pelo menos uma das condições é cumprida.
Isto é correto em geral.
Mas a expressão especificada no cabeçalho da declaração if() é booleana, não implica a possibilidade de "vírgula". A fim de implementar a segunda opção que você descreve, é necessário colocar ||| (OR lógico) em vez de && (AND lógico). Neste caso, a expressão inteira no cabeçalho (entre parênteses) será verdadeira se pelo menos uma das expressões separadas por ||| for verdadeira.
O uso de parênteses é permitido. Os parênteses têm maior prioridade nos cálculos (como os cálculos aritméticos normais).
No outro dia lançamos a versão beta do livro online de Sergei Kovalev(SK.) sobre programação MQL4.
https://book.mql4.com/ru
Por enquanto só funciona a versão russa, mas tentaremos traduzi-la para inglês e chinês.
Se você tiver algum comentário sobre o livro, por favor, informe-nos.
Tenho dois computadores diferentes e navegadores diferentes, mas as imagens em https://book.mql4.com/ru/metaeditor/compose não funcionam.
Em dois computadores diferentes e com navegadores diferentes, as imagens em https://book.mql4.com/ru/metaeditor/compose não estão aparecendo.