[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 43

 
sergeev:

Negociar em um determinado momento


1
Mega4alik 03.08.2011 17:34

Como escrever um EA que abre um acordo em um determinado segundo?

Não consigo pensar em nada além de começar, mas só abre quando o preço muda, e eu preciso dele em um segundo

E se neste segundo houver uma breve interrupção da conexão? E este fenômeno é muito comum em todos os corretores.

if(TimeHour(prevtime)===1 && TimeMinute(prevtime)==1 && TimeSeconds(prevtime)==1)
{
função de ordem em aberto
}

prevtime=TimeCurrent();

Você tem que fazer o loop de todo o início:


int start()
{
while(!IsStopped())
{

RefreshRates();

todas as operações

}

}

 
demlin:
...Ctrl+Alt+M usado para colar código, mas não está funcionando. A SRC não pode encontrá-lo, desculpe, por favor.
Como fazer um post, inserir código de programa, imagem, vídeo
 
 

demlin, ou seja, a segunda condição será cumprida em qualquer caso?



 
if (x2==x1) return(y1);
else
return((y2-y1)/(x2-x1)*(x-x1)+y1);}
 
nuan:

é o objetivo disso - calcular o valor de
 
demlin você está tentando devolver um valor primeiro
return(y1);
потом сразу другое
return((y2-y1)/(x2-x1)*(x-x1)+y1);
а смысл у1 возвращать
 
nuan:
Você estátentando devolver um valor primeiro

y1 é devolvido se x1=x2, ou seja, há apenas um ponto. Se houver dois pontos e x1 não for igual a x2, então o cálculo é feito.

A função é boa, eu a testei separadamente fora do loop - ela funciona corretamente.

 
nuan:

O que você não entende? Não confunda o homem:

double EquationDirect(double x1, double y1, double x2, double y2, double x) 
{
  if (x2==x1) return(y1);              // Если х2 равно х1, то вычислять ничего не нужно, а просто вернуть значение y1
  return((y2-y1)/(x2-x1)*(x-x1)+y1);   // а тут вычисления нужны (х2 не равно х1), вычисляем значение по формуле уравнения прямой и возвращаем его
}

Isso é mais claro?

 
demlin:

y1 é devolvido se x1=x2, ou seja, há apenas um ponto. Se houver dois pontos e x1 não for igual a x2, então o cálculo é feito.

A função é boa, testei-a separadamente fora do laço - funciona corretamente

Dê-me novamente o fragmento de código indicador onde você quer colocar tudo isso. Mas... Você não precisa aumentar o buffer - você precisa deslocar o ponteiro para a célula buffer onde você quer colocar o valor.