Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1243
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Non ho la minima voglia di andare su Google o leggere, quindi ho aperto il file D:\1.txt
Qual è il modo migliore per farlo nell'indicatore, per avviare il timer 1s o in OnCalculate per confrontare il tempo (secondi)
<1sec, uscire
o ci sono altre opzioni di lavoro?
necessità di aggiornare HistorySelect per il mese + lavoro con gli oggetti
o in OnCalculate confrontare il tempo (secondi)
<1sec, uscita
Il problema è con il datetime: non può essere meno di un secondo.
confrontare almeno i millisecondi
cosa è meglio fare nell'indicatore, per avviare un timer 1s o in OnCalculate per confrontare il tempo (secondi)
non è importante dove farlo, l'unica cosa che OnCalculate è legato ai tick - non ci sarà nessun tick e quindi non ci sarà nessuna chiamata OnCalculate
è necessario aggiornare HistorySelect per un mese + lavorare con gli oggetti
HistorySelect è veloce, ma quando si va a spostare o creare oggetti, ci possono essere dei ritardi, se gli oggetti superano i 1000 +
e voi modificherete questi oggetti ogni secondo
(inserisci il tuo codice e le insidie appariranno ))))
un secondo è sufficiente per me e meno spesso finché non arriva il tick
per me visualizzare le operazioni sul grafico + il risultato dell'operazione su barre, e alcune informazioni semi-statiche come la tendenza globale
può prezzo guardare il cambiamento da
o il tempo della seconda opzione
Per favore, ditemelo!
Come posso confrontare il simbolo del grafico attuale con quello che mi serve?
Ho bisogno che il programma apra un ordine su AUD/USD, quindi apre l'ordine (funziona correttamente). Tuttavia, il programma cerca di aprire l'ordine su altri grafici aperti(il robot è in esecuzione su diverse coppie di valute) e restituisce un errore di prezzo per le altre coppie di valute dove l'Expert Advisor è in esecuzione. Devo fare un confronto e se Symbol() == è uguale al simbolo su cui l'ordine dovrebbe essere aperto, allora lo apriamo e se no, usciamo. Non ho trovato da nessuna parte come impostare il nome del simbolo dal terminale e fare il confronto.
Per favore, ditemelo!
Come posso confrontare il simbolo del grafico attuale con quello che mi serve?
Ho bisogno che il programma apra un ordine su AUD/USD, quindi apre l'ordine (funziona correttamente). Tuttavia, il programma cerca di aprire l'ordine su altri grafici aperti(il robot è in esecuzione su diverse coppie di valute) e restituisce un errore di prezzo per le altre coppie di valute dove l'Expert Advisor è in esecuzione. Devo fare un confronto e se Symbol() == è uguale al simbolo su cui l'ordine dovrebbe essere aperto, allora lo apriamo e se no, usciamo. Non ho trovato da nessuna parte come impostare il nome del simbolo dal terminale e fare il confronto.
C'è un esempio di come ottenere i prezzi giusti alla fine.
Grazie, ma non ho bisogno dei prezzi giusti. I prezzi vanno bene. Ho bisogno che l'EA non apra un ordine se la coppia di valute alla quale l'ordine viene aperto non è la stessa del grafico aperto corrente al quale il robot è collegato. Forse possiamo implementare questo aprendo un nuovo grafico con un timeframe, aprire un ordine desiderato in esso e poi chiudere il grafico.
No, non funziona così.
Il mio programma accede al grafico corrente, gli assegna il nome dello strumento corrente e lo sigilla in una variabile, poi confronta il valore di questa variabile con il simbolo corrente sul grafico. In realtà lo confronta con se stesso)))) Ho bisogno di convertire in qualche modo Sympol() in qualsiasi valore con cui qualsiasi altra variabile può essere confrontata. Per esempio:
AUDUSD;
(Simbolo() == AUDUSD)
In qualche modo sono riuscito a farlo - mentre mi rallegravo e cambiavo tutto correttamente - non funziona più niente))
No, non funziona così.
Il mio programma accede al grafico corrente, gli assegna il nome dello strumento corrente e lo sigilla in una variabile, poi confronta il valore di questa variabile con il simbolo corrente sul grafico. In realtà lo confronta con se stesso)))) Ho bisogno di convertire in qualche modo Sympol() in qualsiasi valore con cui qualsiasi altra variabile può essere confrontata. Per esempio:
AUDUSD;
(Simbolo() == AUDUSD)
In qualche modo sono riuscito a farlo - mentre mi divertivo e cambiavo tutto correttamente - non funziona niente))
stringa AUDUSD = "AUDUSD";
Almeno così.
No, non funziona così.
Il mio programma accede al grafico corrente, gli assegna il nome dello strumento corrente e lo sigilla in una variabile, poi confronta il valore di questa variabile con il simbolo corrente sul grafico. In realtà lo confronta con se stesso)))) Ho bisogno di convertire in qualche modo Sympol() in qualsiasi valore con cui qualsiasi altra variabile può essere confrontata. Per esempio:
AUDUSD;
(Simbolo() == AUDUSD)
L'ho fatto in qualche modo, e mentre mi rallegravo e cambiavo tutto, non funzionava più niente))
L'Expert Advisor, lo script, l'indicatore non si applicano, ma lavorano nella finestra corrente. E le variabili globali di diverse finestre / grafici non si sovrappongono. Pertanto, dovrebbe funzionare)
string AUDUSD; // Questa è una variabile di testo, che inizialmente è vuota, cioè uguale a ""
(Symbol() == AUDUSD) // questa stringa non ha niente a che fare con la variabile AUDUSD.
Ma i criteri di apertura degli ordini non dovrebbero essere gli stessi per diversi strumenti/finestre. Se sono uguali, si apriranno effettivamente in tutte le finestre.