paladin800: Sto scrivendo un Expert Advisor multivaluta dove nei parametri di input imposto il nome dello strumento, come la stringa Symbol0="EURUSD". Se scrivo il nome sbagliato, lo scambio non va. La mia domanda è: esiste una tale funzione che confronta i nomi degli strumenti con quelli offerti dal broker?
paladin800: Domanda: c'è una funzione che confronta il nome dello strumento con gli strumenti forniti dal broker.
La questione è cosa volete vedere nell'output. Fondamentalmente, qualsiasi funzione standard che utilizza un nome simbolico di uno strumento come uno dei suoi parametri, "confronta" il nome specificato dall'utente con i nomi degli strumenti del broker. E c'è anche un errore ERR_MARKET_UNKNOWN_SYMBOL (4301) per tali funzioni.
Yedelkin: La questione è cosa volete vedere nell'output. Fondamentalmente, qualsiasi funzione standard che utilizza un nome simbolico di strumento come uno dei suoi parametri, "confronta" il nome specificato dall'utente con i nomi degli strumenti del broker. E c'è anche un errore ERR_MARKET_UNKNOWN_SYMBOL (4301) per tali funzioni.
Fondamentalmente, sì, quando la maniglia dell'indicatore viene cercata per un simbolo che non esiste, viene generato l'errore. In genere, a questo punto posso emettere un messaggio di errore nei parametri di input dell'avviso.
paladin800: Fondamentalmente sì, quando la maniglia dell'indicatore viene poi cercata per un simbolo che non esiste, viene generato un errore. In generale, a questo punto posso emettere un messaggio di errore nei parametri di input dell'avviso.
Potete scrivere la vostra mini-funzione, che controllerà la correttezza dei parametri delle stringhe. Usa qualcosa come SymbolSelect(...,true) o SymbolInfoString(...,SYMBOL_DESCRIPTION, ...) con controllo degli errori. Cioè, implementare un controllo "indipendente", come ha detto Carlson.
Sto cercando di fare un indicatore di raccolta tick per un'ulteriore elaborazione e visualizzazione. MT5 AlpariUK Version 5.0 Build 756 L' indicatore di prova stampa i valori attuali BID, ASK, LAST, VOLUME, tick_volume durante l'elaborazione suCalculate.
Sembra che onCalculate sia attivato due volte per tick la maggior parte delle volte, e tick_volume non ha nulla a che fare con il volume dei tick. Viene riportato a 1 quando si passa a un nuovo periodo. Lo stesso valore può essere ripetuto 1, 2, 3 volte.
Per controllare, ho eseguito l'EA che stampa i tick e il suo indicatore allo stesso tempo.
Domanda: perché il segno di spunta è duplicato e come me ne libero?
Se onCalculate è attivato non solo da un cambiamento di prezzo, ma anche per qualche altra ragione, allora come possiamo determinare il motivo del passaggio a opCalculate? E dove sono tutte le ragioni per l'attivazione di onCalculate?
Cosa sto sbagliando con il volume di Tick?
Mi manca qualcosa?
Un'altra domanda - il tempo sul mio computer è un po' in ritardo. La differenza in due giorni era di 4 secondi. In che direzione cercare una soluzione?
lazarev-d-m: Gioco di parole - entrambe le situazioni hanno un compratore, entrambe le situazioni hanno un venditore, a seconda di quale posizione guardare
Ahhhh, capito!
Quando chiedo "Compra da me" è un'offerta di acquisto!
E quando dico "Vendi a me", è un'offerta di vendita!
Sto iniziando a imparare l'OOP. Domanda per gli esperti - è possibile mettere la classe alla fine del codice di Expert Advisor (così come le funzioni),
Sto iniziando a imparare l'OOP. Domanda per gli esperti - è possibile mettere la classe alla fine del codice di Expert Advisor (così come le funzioni),
e non per collegare la classe al codice come:
Non sarà una classe ma solo una funzione, spostata al di fuori del codice del programma (a proposito, la uso al posto di OOP, la trovo più conveniente).
Sto scrivendo un Expert Advisor multivaluta dove nei parametri di input imposto il nome dello strumento, come la stringa Symbol0="EURUSD". Se scrivo il nome sbagliato, lo scambio non va. La mia domanda è: esiste una tale funzione che confronta i nomi degli strumenti con quelli offerti dal broker?
La questione è cosa volete vedere nell'output. Fondamentalmente, qualsiasi funzione standard che utilizza un nome simbolico di strumento come uno dei suoi parametri, "confronta" il nome specificato dall'utente con i nomi degli strumenti del broker. E c'è anche un errore ERR_MARKET_UNKNOWN_SYMBOL (4301) per tali funzioni.
Sto cercando di fare un indicatore di raccolta tick per un'ulteriore elaborazione e visualizzazione. MT5 AlpariUK Version 5.0 Build 756
L' indicatore di prova stampa i valori attuali BID, ASK, LAST, VOLUME, tick_volume durante l'elaborazione suCalculate.
Risultato:
2013.03.03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.680 Ask=93.689 Prezzo=93.680000 Volume=1000000 Tick volume=5
2013.03.03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.680 Ask=93.689 Price=93.680000 Volume=1000000 Tick volume=4
2013.03.03 03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.681 Ask=93.691 Price=93.68100000 Volume=3000000 Tick volume=4
2013.03.03.03 19:45:59 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:03 Bid=93.681 Ask=93.691 Price=93.68100000 Volume=3000000 Tick volume=4
2013.03.03 19:45:58 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:02 Bid=93.682 Ask=93.691 Price=93.68200000 Volume=2000000 Tick volume=3
2013.03.03 19:45:58 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:02 Bid=93.682 Ask=93.691 Price=93.68200000 Volume=2000000 Tick volume=3
201303.03.03 19:45:57 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:01 Bid=93.683 Ask=93.693 Prezzo=93.68300000 Volume=1000000 Tick volume=2
2013.03.03 19:45:57 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:01 Bid=93.683 Ask=93.693 Price=93.68300000 Volume=1000000 Tick volume=1
2013.03.03 03 19:45:56 PM TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:00 Bid=93.689 Ask=93.696 Price=93.68900000 Volume=570000 Tick volume=1
2013.03.03.03 19:45:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:46:00 Bid=93.689 Ask=93.696 Price=93.68900000 Volume=570000 Tick volume=1
2013.03.03 19:45:55 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:59 Bid=93.685 Ask=93.695 Price=93.68500000 Volume=1800000 Tick volume=53
2013.03.03 19:45:54 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:58 Bid=93.685 Ask=93.695 Prezzo=93.68500000 Volume=1700000 Tick volume=52
201303.03.03 19:45:54 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:58 Bid=93.685 Ask=93.695 Price=93.68500000 Volume=1500000 Tick volume=51
2013.03.03 19:45:54 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:58 Bid=93.685 Ask=93.695 Price=93.68500000 Volume=1500000 Tick volume=51
2013.03.03 19:45:53 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:57 Bid=93.685 Ask=93.693 Price=93.68500000 Volume=500000 Tick volume=50
201303.03.03 19:45:52 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:56 Bid=93.685 Ask=93.693 Price=93.68500000 Volume=400000 Tick volume=49
2013.03.03 19:45:52 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:56 Bid=93.685 Ask=93.693 Price=93.68500000 Volume=200000 Tick volume=48
2013.03.03 19:45:52 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:56 Bid=93.685 Ask=93.693 Price=93.68500000 Volume=200000 Tick volume=48
201303.03.03 19:45:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:55 Bid=93.685 Ask=93.691 Price=93.68500000 Volume=200000 Tick volume=47
2013.03.03 19:45:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:55 Bid=93.685 Ask=93.691 Price=93.68500000 Volume=1000000 Tick volume=46
2013.03.03 19:45:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:55 Bid=93.685 Ask=93.691 Price=93.68500000 Volume=1000000 Tick volume=46
201303.03.03 19:45:50 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:54 Bid=93.680 Ask=93.691 Price=93.68000000 Volume=1000000 Tick volume=45
2013.03.03 19:45:50 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:54 Bid=93.680 Ask=93.691 Prezzo=93.680000 Volume=1000000 Tick volume=45
2013.0303 19:45:48 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:45:52 Bid=93.682 Ask=93.691 Price=93.68200000 Volume=1000000 Tick volume=44
Sembra che onCalculate sia attivato due volte per tick la maggior parte delle volte, e tick_volume non ha nulla a che fare con il volume dei tick. Viene riportato a 1 quando si passa a un nuovo periodo. Lo stesso valore può essere ripetuto 1, 2, 3 volte.
Per controllare, ho eseguito l'EA che stampa i tick e il suo indicatore allo stesso tempo.
Risultato:
2013.03.03 19:51:56 Ticks (USDJPY,M1) 2013.03.03 19:51:56 93.684 93.677
2013.03.03.03 19:51:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:52:00 Bid=93.677 Ask=93.684 Prezzo=93.67700000 Volume=1000000 Tick volume=2
2013.0303 19:51:56 PM TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:52:00 Bid=93.677 Ask=93.684 Prezzo=93.67700000 Volume=1000000 Tick volume=2
2013.03.03 19:51:56 Ticks (USDJPY,M1) 2013.03.03.03 19:51:56 93.683 93.674
2013.03.03 19:51:56 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:52:00 Bid=93.674 Ask=93.683 Price=93.67400000 Volume=3000000 Tick volume=1
2013.03.03 19:51:56 TestTickCollector (USDJPY,M1) Server Time=201303.04 02:52:00 Bid=93.674 Ask=93.683 Price=93.67400000 Volume=3000000 Tick volume=1
201303.03.03 19:51:55 Ticks (USDJPY,M1) 2013.03.03 19:51:55 93. 682 93.674
2013.03.03 19:51:55 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:59 Bid=93.674 Ask=93.682 Price=93.67400000 Volume=3000000 Tick volume=37
2013.03.03 19:51:55 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:59 Bid=93.674 Ask=93.682 Prezzo=93.67400000 Volume=3000000 Tick volume=37
2013.03.03 19:51:51:51 Ticks (USDJPY,M1) 2013.03.03.03 19:51:51 93.680 93.670
2013.03.03 19:51:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:55 Bid=93.670 Ask=93.680 Price=93.67000000 Volume=1000000 Tick volume=36
2013.03.03 19:51:51 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:55 Bid=93.670 Ask=93.680 Price=93.67000000 Volume=1000000 Tick volume=36
2013.03.03 19:51:50 Ticks (USDJPY,M1) 2013.03.03 2013 19:51:50 93.678 93.669
2013.03.03 19:51:50 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:54 Bid=93.669 Ask=93.678 Prezzo=93.66900000 Volume=3500000 Tick volume=35
201303.03.03 19:51:49 Ticks (USDJPY,M1) 2013.03.03 19:51:49 93. 678 93.669
2013.03.03 19:51:49 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:53 Bid=93.669 Ask=93.678 Price=93.66900000 Volume=3000000 Tick volume=34
2013.03.03 19:51:49 PM TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:53 Bid=93.669 Ask=93.678 Prezzo=93.66900000 Volume=3000000 Tick volume=34
2013.03.03 19:51:46 Ticks (USDJPY,M1) 2013.03.03.03 19:51:46 93.680 93.672
2013.03.03 19:51:46 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:50 Bid=93.672 Ask=93.680 Price=93.67200000 Volume=1000000 Tick volume=33
2013.03.03 19:51:46 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:50 Bid=93.672 Ask=93.680 Prezzo=93.67200000 Volume=1000000 Tick volume=33
201303.03.03 19:51:44 Ticks (USDJPY,M1) 2013.03.03 19:51:44 93.681 93.672
2013.03.03 19:51:44 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:48 Bid=93.672 Ask=93.681 Prezzo=93.67200000 Volume=1000000 Tick volume=32
2013.03 03.03 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:48 Bid=93.672 Ask=93.681 Price=93.67200000 Volume=1000000 Tick volume=32
2013.03.03 19:51:44 Ticks (USDJPY,M1) 2013.03.03 2013 19:51:44 93.683 93.673
2013.03.03 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.03.04 02:51:48 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick volume=31
2013.03.03 19:51:44 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:48 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick volume=30
2013.03.03.03 19:51:42 Ticks (USDJPY,M1) 2013.03.03 19:51:42 93.683 93.674
2013.03.0303 19:51:42 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:46 Bid=93.674 Ask=93.683 Price=93.67400000 Volume=3000000 Tick volume=30
2013.03.03 19:51:42 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:46 Bid=93.674 Ask=93.683 Prezzo=93.67400000 Volume=3000000 Tick volume=30
2013.03.03 19:51:41 Ticks (USDJPY,M1) 2013.03.03.03 19:51:41 93.683 93.673
2013.03.03 19:51:41 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:45 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick volume=29
201303.03.03 19:51:41 GMT TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:45 Bid=93.673 Ask=93.683 Price=93.67300000 Volume=1000000 Tick volume=29
2013.03.0303 03 19:51:40 Ticks (USDJPY,M1) 2013.03.03 19:51:40 93.682 93.673
2013.03.03 19:51:40 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:44 Bid=93.673 Ask=93.682 Prezzo=93.67300000 Volume=1000000 Tick volume=28
2013.03.03 19:51:40 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:44 Bid=93.673 Ask=93.682 Price=93.67300000 Volume=1000000 Tick volume=28
2013.03.03 19:51:39 Ticks (USDJPY,M1) 2013.03.03 2013 19:51:39 93.681 93.671
2013.03.03 19:51:39 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:43 Bid=93.671 Ask=93.681 Price=93.67100000 Volume=40000 Tick volume=27
201303.03.03 19:51:38 Ticks (USDJPY,M1) 2013.03.03 19:51:38 93. 681 93.671
2013.03.03 19:51:38 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:42 Bid=93.671 Ask=93.681 Price=93.67100000 Volume=6000000 Tick volume=26
2013.03.03 19:51:38 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:42 Bid=93.671 Ask=93.681 Prezzo=93.67100000 Volume=60000 Tick volume=26
2013.03.03 19:51:37 Ticks (USDJPY,M1) 2013.03.03.03 19:51:37 93.682 93.674
2013.03.03 19:51:37 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:41 Bid=93.674 Ask=93.682 Price=93.67400000 Volume=1000000 Tick volume=25
2013.03.03 19:51:37 TestTickCollector (USDJPY,M1) Server Time=2013.03.04 02:51:41 Bid=93.674 Ask=93.682 Prezzo=93.67400000 Volume=1000000 Tick volume=24
Domanda: perché il segno di spunta è duplicato e come me ne libero?
Se onCalculate è attivato non solo da un cambiamento di prezzo, ma anche per qualche altra ragione, allora come possiamo determinare il motivo del passaggio a opCalculate? E dove sono tutte le ragioni per l'attivazione di onCalculate?
Cosa sto sbagliando con il volume di Tick?
Mi manca qualcosa?
Un'altra domanda - il tempo sul mio computer è un po' in ritardo. La differenza in due giorni era di 4 secondi. In che direzione cercare una soluzione?
Grazie a tutti.
Un'altra domanda per lo stimato pubblico:
Nella documentazione su https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants#enum_symbol_info_integer
stati:
SYMBOL_BID Offerta - migliore offerta di vendita
SYMBOL_ASK Chiedi - migliore offerta di acquisto
Per come la vedo io, Bid è la migliore offerta diacquisto e Ask è la migliore offerta di vendita.
Ecco cosa ha risposto ServiceDeskQuesto significa
SYMBOL_BID Bid - la migliore offerta di vendita (il miglior prezzo a cui puoi vendere)
SYMBOL_ASK Ask - best buy offer (il miglior prezzo che puoi ottenere in questo momento)
Ecco una discussione: chi ha ragione?
Un'altra domanda per lo stimato pubblico:
Nella documentazione su https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants#enum_symbol_info_integer
stati:
SYMBOL_BID Offerta - migliore offerta di vendita
SYMBOL_ASK Chiedi - migliore offerta di acquisto
Per come la vedo io, Bid è la migliore offerta diacquisto e Ask è la migliore offerta di vendita.
Ecco cosa ha risposto ServiceDeskMZen
SYMBOL_BID Bid - la migliore offerta di vendita (il miglior prezzo a cui puoi vendere)
SYMBOL_ASK Ask - la migliore offerta di acquisto (il miglior prezzo che puoi ottenere in questo momento)
Sto discutendo: chi ha ragione?
Gioco di parole - entrambe le situazioni hanno un compratore, entrambe le situazioni hanno un venditore, a seconda di quale posizione guardare
Ahhhh, capito!
Quando chiedo "Compra da me" è un'offerta di acquisto!
E quando dico "Vendi a me", è un'offerta di vendita!
LOL!
Sto iniziando a imparare l'OOP. Domanda per gli esperti - è possibile mettere la classe alla fine del codice di Expert Advisor (così come le funzioni),
e non per collegare la classe al codice come:
#include <Trade\Trade.mqh>Sto iniziando a imparare l'OOP. Domanda per gli esperti - è possibile mettere la classe alla fine del codice di Expert Advisor (così come le funzioni),
e non per collegare la classe al codice come: