Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 936

 
AlexeyVik:
Non controllato, ma cosa ti impedisce di controllarlo da solo? Hai solo bisogno di salvare il modello con tutti gli indicatori sotto il nome dell'EA e poi quando avvii l'EA nel tester tutti gli indicatori saranno caricati e probabilmente funzioneranno correttamente. Ma è possibile che prendano i valori dalle schede "Trade" e "Account history".
L'ho provato. Non ancora. Proverò di nuovo.
 
kosmos0975:
Provato. Non si può ancora vedere. Ci proverò di nuovo.
È davvero necessario fare un tale casino con gli indicatori? Non sarebbe più facile mettere tutto nell'Expert Advisor?
 
AlexeyVik:
È davvero necessario fare una tale distorsione degli indicatori? Non sarebbe più semplice spingere tutto nell'Expert Advisor?

Nel corso del tempo, l'Expert Advisor si appesantirà con condizioni aggiuntive per il corretto funzionamento e diventerà inflessibile.

(Forse, è una perversione. Noi russi non cerchiamo vie facili:)

 
Buon pomeriggio!
Come si può definire "Il mercato è chiuso" in EA?
 
abeiks:
Buongiorno!
Come si può definire "Il mercato è chiuso" in Expert Advisor?

Perché vorresti farlo? Se il mercato è chiuso, non ci saranno tick e quindi l'Expert Advisor non funzionerà.

Ma se ne hai davvero bisogno, prova questo.

MarketInfo(Symbol(), MODE_TRADEALLOWED);

Se il mercato è aperto, restituisce 1. Se il mercato è chiuso, dovrebbe restituire 0).

 

Ecco il punto - ho bisogno di determinare il valore minimo e massimo del prezzo delle ultime 100 barre, per esempio, e poi fissare il rialzo/declino quando il prezzo scende/sale, così posso disegnare un modello di inversione come 1 2 3. Non riesco a capire la differenza tra le funzioni ArrayMaximum e iHighest. Se ho capito bene, il risultato dei loro calcoli sarà solo l'indice della barra massima nell'intervallo specificato dell'array? È necessario usare l'operatore for quando si lavora con gli array per i calcoli, come nell'esempio della domanda 26 del libro di testo? Ho cambiato questo codice con il seguente

//-------------------------------------------------------------------- //multiprice.mq4 // Progettato per essere usato come esempio nel manuale MQL4. //-------------------------------------------------------------------- extern int Quant_Bars=100; // Numero di barre //-------------------------------------------------------------------- int start() // Funzione speciale start { int i; // Numero di barre double Minimum=Bid, // Prezzo minimo Maximum=Bid; // Prezzo massimo for(i=0;i<=Quant_Bars-1;i++) // Da zero (!) a .) if (Low[i]< Minimum) // Se < noto Minimum=Low[i]; //allora sarà Min if (High[i]> Maximum) // Se > noto Maximum=High[i]; //allora sarà Max double Level_1, // Signal level 1 Level_2, // Signal level 2 Price; // Current price Level_1=Minimum; // Set the minimum level Level_2=Maximum; // Set the maximum level Price=Bid;                                  // Richiesta di prezzo if (Prezzo<Livello_1) { // Controllo della condizione complessa Alert("Si è formato un pattern di vendita"); } if (Prezzo<Livello_2) { // Controllo della condizione complessa Alert("Si è formato un pattern di acquisto"); // Report } return; } //-------------------------------------------------------------------- Ma in qualche modo produce un pattern di acquisto su ogni tick, mentre dovrebbe segnalare solo quando è cambiato il minimo o il massimo.  



 
silachara:

Perché vorresti farlo? Se il mercato è chiuso, non ci saranno tick e quindi l'Expert Advisor non funzionerà.

Ma se ne hai davvero bisogno, prova questo.

Se il mercato è aperto, restituisce 1. Se il mercato è chiuso, dovrebbe restituire 0).

Grazie!
Per informazioni. Ho bisogno di calcolare il tempo tra i tick.
Io uso OnTimer().
 
Deniskaaa:

Ecco il punto - ho bisogno di determinare il valore minimo e massimo del prezzo delle ultime 100 barre, per esempio, e poi fissare il rialzo/declino quando il prezzo scende/sale, così posso disegnare un modello di inversione come 1 2 3. Non riesco a capire la differenza tra le funzioni ArrayMaximum e iHighest. Se ho capito bene, il risultato dei loro calcoli sarà solo l'indice della barra massima nell'intervallo specificato dell'array? I calcoli richiedono l'uso dell'istruzione for quando si lavora con gli array, come nel Problema 26 del libro di testo? Ho cambiato questo codice con il seguente




Se vuoi fare trading in base a questi segnali, non dovresti. Se imparate a programmare, scrivete correttamente.

doppio

   Level_1, // livello del segnale 1 Level_2, // livello del segnale 2 Price; // prezzo corrente
in alto.
for(i=0;i<=Quant_Bars-1;i++) sostituire con for(i=0;i<Quant_Bars; i++)
{
	 if (Low[i]< Minimum) // Se < noto 	 Minimum=Low[i]; // allora sarà min 	 if (High[i]> Maximum) // Se > noto 	 Maximum=High[i]; // allora sarà max
}
parentesi graffe aggiunte.
se (Prezzo<Livello_2) cambia il segno se (Prezzo > Livello_2) sopra la cima
 
kosmos0975:

Se vuoi fare trading su questi segnali, non farlo. Se imparate a programmare, scrivete correttamente.


Grazie per la vostra risposta.
 

Ha iniziato a imparare a lavorare con i file. Mi sono imbattuto nel termine maniglia. La domanda è sorta dopo aver scritto il codice:

int filehandle;
filehandle=FileOpen("news.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);
filehandle=FileOpen("news150901.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);

Dopo aver aperto il primo file news.csv, il programma imposta la variabile filehandle a 1. Successivamente, il programma ha aperto il secondo file news150901.csv e ha impostato la variabile filehandle a 2. Si scopre che il programma è ora lasciato con un valore di handle solo dall'apertura del secondo file. In altre parole, ho ucciso il valore dell'handle del primo file aperto. Cioè posso solo accedere ai dati/contenuti e chiudere il secondo file? Usare una variabile per memorizzare l'handle del file aperto è un errore? È un errore usare una variabile per memorizzare l'handle del file aperto?

Motivazione: