[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 346

 
desculpas
 
Stepan241 >> :

No início do roteiro você escreve

#property show_inputs

Lote duplo externo=0,1

Depois disso, quando o roteiro for anexado à janela do símbolo, aparecerá uma caixa de diálogo.

Eu entendo. Mas não é disso que eu preciso. Com estes comandos, aparecerá uma caixa de diálogo - com configurações gerais da EA e configurações atuais do script, e eu perguntei se havia uma função que pudesse ser usada para sair SOMENTE com as configurações do script de uma só vez.

 
Você pode me dizer como fazer para que todas as ordens abertas fechem no horário especificado?
 
JackaLrus писал(а) >>

Eu entendo. Mas não é disso que eu preciso. Com estes comandos aparecerá uma caixa de diálogo - com configurações gerais da EA e configurações de script atuais, e eu perguntei se não existe tal função, que poderia ser usada para sair SOMENTE com configurações de script de uma só vez.

Somente MetaEditor então.

 
vik-777 >> :
Você poderia aconselhar como fechar todas as ordens abertas em um determinado momento?

se (HourTime[0]=12)_CloseAllOrder

Veja a função _CloseAllOrder na página anterior ou na página anterior

 
Stepan241 >> :

se (HourTime[0]=12)_CloseAllOrder

para a própria função _CloseAllOrder, ver última página ou a página anterior

Obrigado, a função é muito útil

 

Caros Especialistas,

Por favor, informe qual é a razão deste resultado:

resumo:

int start()
{
//----
double c;
int q;
c=0.3/0.1;
q=c;
Print("c=",c," q=",q);
//----
return(0);
}

imprime "c=3 q=2"

pergunta: como conseguir dois de três?

a coisa é, se eu substituir 0,3 por 0,4 ou qualquer outra fração, ele resolve o problema como pretendido

por exemplo

int start()
{
//----
double c,v;
int q,w;
c=0.3/0.1;
v=0.4/0.1;
q=c;
w=v;
Print("c=",c," q=",q," v=",v," w=",w);
//----
return(0);
}

"c=3 q=2 v=4 w=4"

Pergunta: como conseguir dois de três?

tentar compilar, talvez meu computador não possa contar (só bobagem...)

 
mukata >> :

Caros Especialistas,

Por favor, informe qual é a razão deste resultado:

resumo:

int start()
{
//----
double c;
int q;
c=0.3/0.1;
q=c;
Print("c=",c," q=",q);
//----
return(0);
}

imprime "c=3 q=2"

pergunta: como conseguir dois de três?

a coisa é, se eu substituir 0,3 por 0,4 ou qualquer outra fração, ele resolve o problema como pretendido

por exemplo

int start()
{
//----
double c,v;
int q,w;
c=0.3/0.1;
v=0.4/0.1;
q=c;
w=v;
Print("c=",c," q=",q," v=",v," w=",w);
//----
return(0);
}

"c=3 q=2 v=4 w=4"

Pergunta: como conseguir dois de três?

Tente compilá-lo, talvez meu computador não saiba calcular (é bobagem...)


Não é bobagem, apenas um erro de arredondamento comum quando se trabalha com números reais.

No primeiro caso, por exemplo, c igual a 2,999999999, a saída é arredondada, ou seja, 3, mas ao atribuir a um tipo inteiro a parte fracionária é descartada.

 
splxgf >> :

Isto não é um disparate, erros de arredondamento comuns quando se trata de números reais.

No primeiro caso, por exemplo, c é igual a 2,9999999999999.

como 2.9999999999 pode ser 2.9999? 0,3/0,1=3 exatamente, não é como se eu estivesse dividindo 1 por 3 e deveria ser 0,33333...

mas quando se atribui a um tipo inteiro, a parte fracionária é descartada.

A um tipo inteiro é atribuído um valor c, c obviamente igual a três, sem nenhuma parte fracionada. Não há nada a descartar...

A resposta é 100% errada.

alguma outra opção?

 
mukata >> :


Eu não vejo como 2.9999 pode ser 2.9999? 0,3/0,1=3 mesmo, não é como se eu estivesse dividindo 1 por 3 e deveria ser 0,33333...


Isto só parece ser exato, enquanto o último pedaço pode assumir valores diferentes. I.e. 2.9999, 3 ou 3.00000001


Para se livrar de tais mal-entendidos, a MQL tem a função NormalizeDouble()