[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 43

 
sergeev:

Affare ad una certa ora


1
Mega4alik 03.08.2011 17:34

Come posso scrivere un EA che apre un affare ad un certo secondo?

Non riesco a pensare ad altro che ad avviare, ma si apre solo quando il prezzo cambia, e ho bisogno che si apra in un secondo

E se in questo secondo ci fosse una breve interruzione della connessione? E questo fenomeno è molto comune in tutti i broker.

if(TimeHour(prevtime)==1 && TimeMinute(prevtime)==1 && TimeSeconds(prevtime)==1)
{
funzione di apertura dell'ordine
}

prevtime=TimeCurrent();

Devi mettere in loop tutto l'inizio:


int start()
{
mentre(!IsStopped())
{

RefreshRates();

tutte le operazioni

}

}

 
demlin:
...Ctrl+Alt+M usato per incollare il codice, ma non funziona. L'SRC non riesce a trovarlo, scusate, per favore.
Come fare un post, inserire codice di programma, immagine, video
 
 

demlin cioè la seconda condizione sarà soddisfatta in ogni caso?



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

è il punto di esso - per calcolare il valore di
 
demlin stai cercando di restituire prima un valore
return(y1);
потом сразу другое
return((y2-y1)/(x2-x1)*(x-x1)+y1);
а смысл у1 возвращать
 
nuan:
Stai cercandodi restituire prima un valore

y1 viene restituito se x1=x2, cioè c'è un solo punto. Se ci sono due punti e x1 non è uguale a x2, allora il calcolo è fatto.

La funzione va bene, l'ho testata separatamente fuori dal ciclo - funziona correttamente.

 
nuan:

Cos'è che non capisci? Non confondere l'uomo:

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), вычисляем значение по формуле уравнения прямой и возвращаем его
}

È più chiaro?

 
demlin:

y1 viene restituito se x1=x2, cioè c'è un solo punto. Se ci sono due punti e x1 non è uguale a x2, allora il calcolo è fatto.

La funzione va bene, l'ho testata separatamente fuori dal ciclo - funziona correttamente

Dammi di nuovo il frammento di codice dell'indicatore dove vuoi mettere tutto questo. Ma... Non avete bisogno di aumentare il buffer - dovete spostare il puntatore alla cella del buffer dove volete mettere il valore.