Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1016

 
Oleh Fedorov:

Olá.

Ninguém vai dizer nada sobre o posto Bilder?

Talvez faça sentido colocá-lo em um novo fio, para que mais pessoas o vejam? Em caso afirmativo, peça aos moderadores para afixar... Ou criar um você mesmo?

Sim, criar um tópico separado. Basta tentar escolher a seção correta do fórum na qual criar o tópico.

 

Uma palavra de conselho, por favor, elementar. Arrays.

Eu estou estudando e não entendo.

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  OrderSend(Symbol(),OP_BUYSTOP,0.01,tick[1,2],3,0,0,"bs2",0,0,clrBlue); 
}

Eu não recebo erros durante a compilação, mas quando a executo no terminal, isso me dá um erro crítico.

Por que quando o comentário do valor dotick[1,1] é impresso, ele arredonda o número para 4 casas decimais.

Por que não só é incapaz de calcular corretamente o valor dotick[1,2] como também se recusa a copiar dados da célula dotick[1,1] (tick[1,2]=tick[1,1];).

E por último, por que, ao criar uma ordem, se ao invés de valor de preço eu citar uma célula de array onde este preço é armazenadocarrapato[1,2], ele considera esta variável como 2 valores de uma só vez. (há um valor de escorregamento saltando nas dicas)

 
Gilmor:

Uma palavra de conselho, por favor, elementar. Arrays.

Eu estou estudando e não entendo.

Eu não recebo erros durante a compilação, mas recebo um erro crítico quando o executo no terminal.

Por que quando o comentário do valor dotick[1,1] é impresso, ele arredonda o número para 4 casas decimais.

Por que não só é incapaz de calcular corretamente o valor dotick[1,2] como também se recusa a copiar dados da célula dotick[1,1] (tick[1,2]=tick[1,1];).

E por último, por que, ao criar uma ordem, se ao invés de valor de preço eu citar uma célula de array onde este preço é armazenadocarrapato[1,2], ele considera esta variável como 2 valores de uma só vez. (há um valor de escorregamento saltando nas dicas)

Porque nos parâmetros da função OrderSend, como em todas as outras funções, a vírgula desempenha um papel. Assim que uma vírgula aparece no texto, ela é tratada como um separador para os valores recebidos. Faça tique [1][2][3]

 
Alexey Viktorov:

Porque nos parâmetros da função OrderSend, como em todas as outras funções, a vírgula desempenha um papel. Assim que uma vírgula aparece no texto, ela é tratada como um separador para os valores recebidos. Faça tique [1][2][3]

Obrigado. Talvez você possa responder as outras perguntas também? :)
 
Gilmor:
Obrigado. Talvez você possa responder algumas outras perguntas também? :)

Você pode responder à pergunta carne(2,55=367,12)

 
Alexey Viktorov:

Você pode responder à pergunta carne(2,55=367,12)

Entendi.

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  }
double tick[2,2];

Criou um conjunto de 2 células na linha superior, 2 células na linha inferior.

void OnTick()
  {
  tick[1,1] = Ask;
 Comment (tick[1,1])

Resultado. O preço no gráfico é 0,84478, mas o comentário no topo mostra 0,8448 ???? Por que ele arredondou para 4 casas decimais?

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = tick[1,1];
  }

Seguindo a lógica de escrever para uma célula, copio os dados da célula 1 da matriz, para a célula 2 da mesma matriz. O resultado é um erro crítico.

Por quê?

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  }

Queremos acrescentar à célula 2 da matriz o valor do preço futuro para a ordem pendente. Em outras palavras, queremos adicionar 100 pontos ao preço Ask e depois especificar esta célula do array no parâmetro de preço ao fazer o pedido. Mas ao executar este comando, obtemos novamente o mesmo erro.


Por quê?

 
Gilmor:

Seguindo a lógica de escrever para uma célula, copio os dados da célula 1 da matriz, para a célula 2 da mesma matriz. O resultado é um erro crítico.

Por quê?

porque você não entende o que são arrays, se você leu a ajuda, e não funcionou, vamos "por nossos dedos".

é uma declaração de matriz

double tick[2,2];

que diz ao compilador para reservar "4 células de memória" --> 2x2

e o acesso ao elemento mais baixo tem índice 0, ou seja, no seu caso, otick da matriz[2,2], só terá estes elementos da matriz

tick[0,0]tick[0,1]tick[0,1

tick[1,0]tick[1,1]tick[1,1]

há 4 elementos na matriz, certo? .... mas o índice mais jovem da matriz tem o número 0, e não como você gostaria (ou como você se acostumou durante o cálculo verbal) a partir do número 1


e, conseqüentemente, o elemento mais alto da matriz terá o número: tamanho da matriz menos 1

se você tiver excedido as dimensões da matriz, você terá um erro crítico de execução - sua captura de tela, ou seja, para otick da matriz[2,2] não existe tal elemento de matriz comtick numérico[2,2].

 

Bem, pelo menos eu admito ser um principiante :)

Obrigado.

Bem, a coisa "nos dedos" é um hábito. "Em seus dedos", é mais fácil de entender. E se eu explicasse isso a alguém que é um zero total nesta língua, teria que usar meus dedos dos pés para esclarecê-lo =))

 
Gilmor:

Bem, pelo menos eu admito ser um principiante :)

Obrigado.

Bem, a coisa "nos dedos" é um hábito. "Em seus dedos", é mais fácil de entender. E se eu explicasse isso a alguém que é um zero nesta língua, eu teria que usar meus dedos dos pés para esclarecê-lo =))

Um iniciante não é uma vergonha, quanto mais o ramo é temático - para iniciantes, e este é um dos poucos fóruns onde você pode obter uma resposta rápida à sua pergunta ;)

bem, além disso, leia o início da ajudahttps://docs.mql4.com/ru/basis/variables

 
Igor Makanu:

não é vergonha para um novato, especialmente porque este é um dos poucos fóruns onde você pode obter uma resposta rápida à sua pergunta ;)

e, além disso, leia o início da ajudahttps://docs.mql4.com/ru/basis/variables

Obrigado.
Razão: