Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1266
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
Buon tempo a tutti voi!
Ho una domanda sulla funzione ResultDeal() nella classe CTrade.
Il fatto è che nello Strategy Tester questa funzione restituisce il trade ticket senza alcun problema, ma quando si lancia l'EA sul Chart restituisce sempre "zero", nonostante il fatto che la funzione ResultRetcode() restituisca sempre "TRADE_RETCODE_DONE".
Codice di esempio:
Registro di esecuzione nel Tester:
Registro delle esecuzioni sul grafico:
Cosa sto facendo di sbagliato? Come posso ottenere un biglietto commerciale in tempo reale?
E la seconda domanda (di minore importanza), perché subito dopo l'esecuzione di un trade la funzione PositionsTotal() restituisce "zero"? E mostra dati affidabili con il prossimo tick. È possibile ottenere subito queste informazioni?
Buon tempo a tutti voi!
Ho una domanda sulla funzione ResultDeal() nella classe CTrade.
Il fatto è che nello Strategy Tester questa funzione restituisce il trade ticket senza alcun problema, ma quando si lancia l'EA sul Chart restituisce sempre "zero", nonostante il fatto che la funzione ResultRetcode() restituisca sempre "TRADE_RETCODE_DONE".
Codice di esempio:
Registro di esecuzione nel Tester:
Registro delle esecuzioni sul grafico:
Cosa sto facendo di sbagliato? Come posso ottenere un biglietto commerciale in tempo reale?
E la seconda domanda (di minore importanza), perché subito dopo l'esecuzione di un trade la funzione PositionsTotal() restituisce "zero"? E mostra dati affidabili con il prossimo tick. È possibile ottenere subito queste informazioni?
Hmm... improvvisamente i dati di cui ho bisogno in tempo reale sono restituiti dalla funzione ResultOrder() della stessa classeCTrade, anche se non ho usato ordini pendenti...
La domanda è la stessa: cosa sto sbagliando?
C'è una macro come questa.
Io lo uso così.
Warning"Warnig сработал. ");
Domanda: cosa deve essere corretto nella definizione della macro per poterla utilizzare in questo modo?
Warning("Warnig сработал. ");
cioè con una parentesi tra Warning e "Warnig lavorato. "Cercato di usare una parentesi nella definizione della macro
ma il compilatore non mi permette di usare una parentesi.
Hmm... Improvvisamente, la funzione ResultOrder() della stessa classeCTrade restituisce i dati di cui ho bisogno in tempo reale, anche se non ho usato ordini pendenti...
La domanda è la stessa: cosa sto sbagliando?
Basta capire il sistema di ordini di MT5, ordine - commercio - posizione.
ResultOrder è l'ordine di apertura. La posizione sarà con POSITION_IDENTIFIER uguale al biglietto di questo ordine.
Tutti gli accordi possono essere trovati nella storia attraverso l'identificatore di posizione. Non confondere con il biglietto della posizione, può cambiare, e l'identificatore è costante.
s.s. Il tester è diverso in quanto non c'è ritardo nell'esecuzione dell'ordine e l'affare viene creato immediatamente. Nella vita reale, il tempo passa e al momento di creare con successo un ordine non c'è ancora un accordo, deve essere catturato negli eventi OnTradeC'è una macro come questa.
Io lo uso così.
Domanda: cosa deve essere corretto nella definizione della macro per poterla utilizzare in questo modo?
cioè con una parentesi tra Warning e "Warnig lavorato. "Cercato di usare una parentesi nella definizione della macro
ma il compilatore non ti permette di usare una parentesi.
vuoi usare una forma parametrica, ma hai specificato una forma non parametrica. dovrebbe andare così
Non mi sono spiegato bene. Cominciamo dall'inizio. Ora sto usando la macro in questo modo:
Warning,"Warnig сработал. i=",i);
Ecco la macro stessa:
Nella chiamata macro tra "Warning," e ");" Un numero arbitrario di parametri di tipi arbitrari. Tutto questo si ottiene ricaricando ripetutamente la funzioneWrite.
Domanda. Cosa devo correggere nella macro per poterla chiamare così:
Warning("Warnig сработал. i=",i);
Non mi sono spiegato bene. Cominciamo dall'inizio. Ora sto usando la macro in questo modo:
Ecco la macro stessa:
Nella chiamata macro tra "Warning," e ");" Un numero arbitrario di parametri di tipi arbitrari. Tutto questo si ottiene ricaricando ripetutamente la funzioneWrite.
Domanda. Cosa dovrebbe essere corretto nella macro per permettere la sua chiamata in questo modo:
Risposta: anche ricaricare la macro più volte)
Ma è meglio usare l'operatore + per le stringhe e convertire tutto in stringhe, allora non hai bisogno di una versione di funzione (e macro) con molti parametri
Basta capire il sistema di ordini di MT5, ordine - commercio - posizione.
ResultOrder è l'ordine di apertura. La posizione sarà con POSITION_IDENTIFIER uguale al biglietto di questo ordine.
Tutti gli accordi possono essere trovati nella storia attraverso l'identificatore di posizione. Non confondere con il biglietto della posizione, può cambiare, e l'identificatore è costante.
s.w. Il tester è diverso in quanto non c'è ritardo nell'esecuzione dell'ordine e subito nasce un affare. Nel commercio reale il tempo passa e al momento del successo dell'esecuzione non c'è ancora un accordo, deve essere catturato negli eventi OnTrade.Ciao, come posso accedere alle proprietà dell'indicatore da un EA? Per esempio voglio cambiare il colore della linea da un EA se conosco la maniglia dell'indicatore. L'ho cercato, ma non l'ho trovato, forse sto cercando troppo?
Un indicatore per questo deve avere un parametro di colore in ingresso. Cioè, deve essere un indicatore personalizzato.