[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 122

 
Fduch писал(а) >>

A proposito, OrdersTotal() restituisce un numero di tipo int. E gli int possono prendere dei valori:

Cioè teoricamente il numero massimo di odori: 2147483647

Grazie per la tua risposta imparziale!!!

 

Per favore aiutatemi, non riesco a capire, è scritto nel libro che questo codice funziona:

//--------------------------------------------------------------------
// Book_expert_33.mq4
// Inteso come esempio nel tutorial MQL4.
//--------------------------------------------------------------------
int Count=0; // variabile globale.
//--------------------------------------------------------------------
int init() // Special init()
{
Alert ("The init() function worked at start"); // Message
return; // Exit init()
}
} //--------------------------------------------------------------------
int start() // Special init()
{
double Price=Bid; // Local variable.
Count++; // Contatore di tick
Alert("New tick ",Count," Price = ",Price);// Messaggio
return; // Exit start()
}
//--------------------------------------------------------------------
int deinit() // Funzione speciale deinit()
{
Alert ("Deinit() triggered during upload"); // Messaggio
return; // Exit deinit()
}
//--------------------------------------------------------------------

Non scrivo i prezzi per i nuovi tick, la funzione scatta all'avvio e allo scarico.



 
Si prega di consigliare al non programmatore dove e come inserire Sleep(1200000) per avere un ritardo di 10 minuti dopo la chiusura dell'ordine.
File:
1_1.rar  26 kb
 
v43 писал(а) >>
Si prega di consigliare un non programmatore dove e come inserire Sleep(1200000) per avere un ritardo di 10 minuti dopo la chiusura dell'ordine, ne ho davvero bisogno.

Per favore - metti il codice attraverso il bouton SRC - è impossibile da leggere in questo modo.

Per un intervallo così lungo è meglio non farlo tramite Sleep, ma aspettare un tale tick quando questo tempo è passato - come:

   static datetime DontCloseBefore = 0;
   //....
   
   OrderSend(....);
   DontCloseBefore = TimeCurrent() + 10*60; //10 minutes
   //....
   
   if( DontCloseBefore!=0)
   {
      if(TimeCurrent()> DontCloseBefore) && ( some other conditions - like existing order))
      {
         DontCloseBefore = 0; //important - reset the state engine
         OrderClose(...);
      }
   }
Se DontCloseBefore == 0 allora niente, se c'è un ritardo, allora bisogna aspettare che il tempo corrente diventi più lungo di quello prescritto in DontCloseBefore, azzerare DontCloseBefore e chiudere
 

Qualcuno sa se esiste un comando per scoprire se un certo indicatore è aperto nella finestra, per esempio MA(20) ?

Grazie!

 
chief2000 >> :

Qualcuno sa se esiste un comando per scoprire se un certo indicatore è aperto nella finestra, per esempio MA(20) ?

Grazie!



int WindowFind( nome stringa)
Restituisce il numero della sottofinestra del grafico che contiene l'indicatore con il nome specificato, se viene trovato, altrimenti viene restituito -1.
WindowFind() restituisce -1 se l'indicatore personalizzato cerca se stesso durante init().
 
 
keekkenen >> :


int WindowFind( nome stringa)
Restituisce il numero della sottofinestra del grafico che contiene l'indicatore con il nome specificato, se trovato, altrimenti restituisce -1.
WindowFind() restituisce -1 se l'indicatore personalizzato cerca se stesso durante init ().

Vedo che è necessario un chiarimento:

il mio obiettivo è quello di verificare se MA è in esecuzione, se sì, scoprire con quale Periodo. Come risultato ho bisogno di ottenere "20" se c'è MA(20).

Per questo, possiamo usare WindowFind() con un ciclo for, ma non voglio sprecare risorse del computer poiché

questo controllo dovrebbe essere fatto solo una volta all'inizio (WindowFind() init() non funziona?).

 

Per favore. Qualcuno scriva un semplice EA:

- Aprire l'acquisto.

- Take=20, Stop Loss=20;

- quando la chiusura si attiva, apriamo di nuovo una posizione Buy con esattamente gli stessi parametri (take=20; stop=20).

-Se scatta lo Stop Loss, apriamo un Sell con esattamente gli stessi parametri (take=20; stop=20), e così via.

Si può fare lo stesso, ma prima apriamo una posizione Sell invece di una Buy.

Come remunerazione simbolica per il lavoro posso passare un conto di 5grn. (Se gli operatori ucraini).

 

Perché l'esecuzione di MA(20) nella finestra principale

 WindowFind("MA(20)")

restituisce "-1" ?