[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 180
Quando se trabalha com números do tipo duplo, quando se precisa atribuir algum valor a uma variável (por exemplo, zero), autores diferentes têm ortografias diferentes. Por exemplo, a=0; ou a=0,0; ou a=0,0000; Existe alguma diferença em termos de operação correta do programa?
Este pedaço de código está funcionando bem desde recentemente...agora um erro ERR_OFF_QUOTES é devolvido. Favor observar que o erro é devolvido pela OrderDelete, mesmo que o número do bilhete seja inserido manualmente. Alguém pode esclarecer a situação? Obrigado.
Quando se trabalha com números do tipo duplo, quando se precisa atribuir algum valor a uma variável (por exemplo, zero), autores diferentes têm formas diferentes de escrevê-la. Por exemplo, a=0; ou a=0,0; ou a=0,0000; Existe alguma diferença em termos de operação correta do programa?
Não, não há regra. Mas pessoalmente, prefiro escrever valores duplos constantes usando um ponto.
Por exemplo:
if ( a == 1.0 )
{}
// ...
b = 3.0;
Primeiro, uma rápida olhada no texto mostra que o tipo de valor é o dobro.
int start() { int pre12; { if(PRICE_CLOSE>PRICE_OPEN) pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,"",Bid-100*Point,Ask+100*Point,CLR_NONE); } retornar;
}
Ou seja, se a vela está subindo, ela se abre.
Tudo se compila. Mas nada acontece durante o teste. Isto é, não faz nenhum pedido. Por favor, basta apontar o dedo para o erro.
Que candelabro é o candelabro atual na tabela? O candelabro do dia anterior? O candelabro da semana anterior? Se for o candelabro do dia anterior, por exemplo... pareceria assim
if(iOpen(NULL,1440,1)<iClose(NULL,1440,1)) a ajuda iOpen/iClose descreve claramente tudo
int start() { int pre12; { if(PREÇO_CLOSE>PREÇO_OPEN) pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,"",Bid-100*Point,Ask+100*Point,CLR_NONE); } retornar;
}
Isto é, como pretendido, se a vela está subindo, ela se abre.
Tudo se compila. Mas nada acontece durante o teste. Isto é, não faz nenhum pedido. Faça um buraco no erro, por favor...
A questão é que PRICE_CLOSE e PRICE_OPEN são constantes, não funções e não conjuntos de séries temporais. Para obter os valores dos preços de abertura e fechamento dos castiçais, precisamos nos referir a funções(iOpen e iClose) ou conjuntos de séries de tempo(Open e Close).
Para saber mais, leia o tutorial, por exemplo, esta seção explica as variáveis pré-definidas (que incluem as séries de tempo que você deseja, Abrir e Fechar).
Quando se trabalha com números do tipo duplo, quando se precisa atribuir algum valor a uma variável (por exemplo, zero), autores diferentes têm ortografias diferentes. Por exemplo, a=0; ou a=0,0; ou a=0,0000; Há alguma diferença em termos de operação correta do programa?
Eu entendo que no caso de
double a = 1;
O compilador toma "1" como um valor do tipo int e a conversão do tipo é realizada (int para tipo duplo alvo).
E em caso de:
double a = 1.0
ou (não há diferença)
double a = 1.0000
o compilador vê "1.(xxxx)" como um valor do tipo duplo e a conversão do tipo não é realizada.
P.S.: Graças ao PapaYozh pelo exemplo. Os pensamentos acima vieram depois disso.
Acho que é mais fácil para o compilador quando ele não cita os tipos muitas vezes. Ou talvez haja linhas com tipos "não convertidos" no ex4 também? Isso significa que o desempenho está diminuindo? Embora o compilador seja suposto otimizar o código.
Deixe que os programadores mais experientes da MQL4 me corrijam.
Este código funcionou bem até recentemente...agora o erro ERR_OFF_QUOTES é devolvido. Favor observar que o erro é devolvido pela OrderDelete, mesmo que o número do bilhete esteja escrito à mão. Alguém pode esclarecer a situação? Obrigado.
Talvez esteja no nível de congelamento. Talvez algo esteja errado com a conta e o corretor tenha interrompido o fluxo devido a transações freqüentes na conta.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Quando se trabalha com números do tipo duplo, quando se precisa atribuir algum valor a uma variável (por exemplo, zero), autores diferentes têm ortografias diferentes. Por exemplo, a=0; ou a=0,0; ou a=0,0000; Existe alguma diferença em termos de operação correta do programa?
se ((OrderSymbol()==Symbol()) && ((OrderMagicNumber()==44) ||| (OrderMagicNumber()==55)) && (ticket==0)){
OrderDelete(OrderTicket());
int err1=GetLastError();
Imprimir(err1);}
Este pedaço de código está funcionando bem desde recentemente...agora um erro ERR_OFF_QUOTES é devolvido. Favor observar que o erro é devolvido pela OrderDelete, mesmo que o número do bilhete seja inserido manualmente. Alguém pode esclarecer a situação? Obrigado.
Quando se trabalha com números do tipo duplo, quando se precisa atribuir algum valor a uma variável (por exemplo, zero), autores diferentes têm formas diferentes de escrevê-la. Por exemplo, a=0; ou a=0,0; ou a=0,0000; Existe alguma diferença em termos de operação correta do programa?
Não, não há regra. Mas pessoalmente, prefiro escrever valores duplos constantes usando um ponto.
Por exemplo:
Primeiro, uma rápida olhada no texto mostra que o tipo de valor é o dobro.
Em segundo lugar, evita alguns erros. Compare:
Por favor, ajude. Não quer executar o código:
int start()
{
int pre12;
{
if(PREÇO_CLOSE>PREÇO_OPEN)
pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,"",Bid-100*Point,Ask+100*Point,CLR_NONE);
}
retornar;
}
Isto é, como pretendido, se a vela estiver ascendente - aberta.
Tudo se compila. Mas nada acontece durante o teste. Isto é, não faz nenhum pedido. Faça um buraco no erro, por favor...
Por favor, ajude. O código não quer executar:
int start()
{
int pre12;
{
if(PRICE_CLOSE>PRICE_OPEN)
pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,"",Bid-100*Point,Ask+100*Point,CLR_NONE);
}
retornar;
}
Ou seja, se a vela está subindo, ela se abre.
Tudo se compila. Mas nada acontece durante o teste. Isto é, não faz nenhum pedido. Por favor, basta apontar o dedo para o erro.
Que candelabro é o candelabro atual na tabela? O candelabro do dia anterior? O candelabro da semana anterior? Se for o candelabro do dia anterior, por exemplo... pareceria assim
if(iOpen(NULL,1440,1)<iClose(NULL,1440,1)) a ajuda iOpen/iClose descreve claramente tudo
Por favor, ajude. Não quer executar o código:
int start()
{
int pre12;
{
if(PREÇO_CLOSE>PREÇO_OPEN)
pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,"",Bid-100*Point,Ask+100*Point,CLR_NONE);
}
retornar;
}
Isto é, como pretendido, se a vela está subindo, ela se abre.
Tudo se compila. Mas nada acontece durante o teste. Isto é, não faz nenhum pedido. Faça um buraco no erro, por favor...
A questão é que PRICE_CLOSE e PRICE_OPEN são constantes, não funções e não conjuntos de séries temporais. Para obter os valores dos preços de abertura e fechamento dos castiçais, precisamos nos referir a funções(iOpen e iClose) ou conjuntos de séries de tempo(Open e Close).
Para saber mais, leia o tutorial, por exemplo, esta seção explica as variáveis pré-definidas (que incluem as séries de tempo que você deseja, Abrir e Fechar).
Quando se trabalha com números do tipo duplo, quando se precisa atribuir algum valor a uma variável (por exemplo, zero), autores diferentes têm ortografias diferentes. Por exemplo, a=0; ou a=0,0; ou a=0,0000; Há alguma diferença em termos de operação correta do programa?
Eu entendo que no caso de
O compilador toma "1" como um valor do tipo int e a conversão do tipo é realizada (int para tipo duplo alvo).
E em caso de:
ou (não há diferença)
o compilador vê "1.(xxxx)" como um valor do tipo duplo e a conversão do tipo não é realizada.
P.S.: Graças ao PapaYozh pelo exemplo. Os pensamentos acima vieram depois disso.
Acho que é mais fácil para o compilador quando ele não cita os tipos muitas vezes. Ou talvez haja linhas com tipos "não convertidos" no ex4 também? Isso significa que o desempenho está diminuindo? Embora o compilador seja suposto otimizar o código.
Deixe que os programadores mais experientes da MQL4 me corrijam.
Obrigado pelas mega respostas. Leitura, escavação.
Este código funcionou bem até recentemente...agora o erro ERR_OFF_QUOTES é devolvido. Favor observar que o erro é devolvido pela OrderDelete, mesmo que o número do bilhete esteja escrito à mão. Alguém pode esclarecer a situação? Obrigado.