Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1446
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
1. Se la maniglia della base non viene ricevuta, non è necessario chiudere la base.
2. Se viene ricevuto INVALID_HANDLE, perché continuare l'esecuzione del programma? Credo che in questo caso sia meglio interrompere, restituire
Ora sto cercando ripetutamente di aprire e chiudere un database inesistente e non riesco a ottenere la stampa dell'errore. Penso che questa stampa arrivi al momento della creazione di query alla base, che non è stato possibile aprire.
Creerò un Expert Advisor di prova minimo che aggiornerà il record nel database ogni secondo. Eseguitelo su 10 coppie e tutto sarà chiaro. Lo posterò qui.
Interessante. Aspetto...
Interessante. Aspetterò...
Ecco un esperto. Crea una base (se non esiste già) e ci scrive l'ora corrente una volta al secondo.
Non c'è Print() nel codice.
L'ho eseguito su 10 coppie e ha dato errori:
Per ottenere un errore è necessario chiudere e riavviare MT5, quindi tutti gli EA iniziano a lavorare in modo sincrono.
Sarebbe opportuno:
1. Capire come eliminare questo errore.
2. Inventare un meccanismo di template che si metta in coda nel caso in cui la base non sia disponibile.
Ho risolto il punto 2 aggiungendo Sleep() con tempo casuale, ma sembra una stampella.
AGGIORNAMENTO: horicaricato il file, il primo aveva un errore.
Ecco un esperto. Crea una base (se non esiste già) e vi scrive l'ora corrente una volta al secondo.
Non c'è Print() nel codice.
L'ho eseguito su 10 coppie e si sono verificati degli errori:
Per ottenere un errore è necessario chiudere e riavviare MT5, quindi tutti gli Expert Advisor iniziano a lavorare in modo sincrono.
Sarebbe opportuno:
1. Capire come eliminare questo errore.
2. Inventare un meccanismo di template che si metta in coda in caso di indisponibilità della base.
Ho risolto il punto 2 aggiungendo Sleep() con tempo casuale, ma sembra una stampella.
AGGIORNAMENTO: horicaricato il file, il primo aveva un errore.
Ahimè, le mie conoscenze non sono sufficienti. Solo abbastanza per rendermi conto che viene stampato un errore.
DatabaseExecute(db, sql);
Non c'è la possibilità di verificare la disponibilità prima di creare una query.
Il database si apre, ma non è possibile creare una query.
log del terminale
log del terminale
Ho immaginato di aver acceso i log, ma non riesco a calcolare il lotto. Non capisco perché non vuole calcolare il reale?
Ho indovinato che ho acceso i log, ma non riesce a calcolare il lotto. Non capisco perché non vuole calcolare in reale?
Non ci sono log, quindi le ipotesi possono essere molte di più.
Come opzione, quando si fa trading sugli incroci, se nella panoramica del mercato non è selezionata la coppia con la valuta del deposito, non si fa trading.
Ad esempio, se facciamo trading su EURJPY e depositiamo la valuta USD, nella panoramica del mercato devono essere presenti EURUSD e USDJPY.
Non ci sono registri, quindi le ipotesi potrebbero essere molte di più.
Come opzione, quando si fa trading sugli incroci, se la coppia con la valuta di deposito non è selezionata nella panoramica del mercato, non verrà scambiata.
Ad esempio, se facciamo trading su EURJPY, con valuta di deposito USD, nella panoramica del mercato devono essere presenti EURUSD e USDJPY.
Conto in USD pro cent, trading XAUUSD
Ciao a tutti. Non riesco a disegnare una freccia sulla prima barra utilizzando i buffer in MQL5.
In MQL4, faccio quanto segue:
Dichiaro una variabile globale double XX[];
scrivere in init:
SetIndexBuffer(0,XX);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,108);
In Oncalculate scrivo:
XX[1]=High[1]; ottengo una freccia disegnata sulla candela 1. e questo è tutto.
Faccio lo stesso in MQL5:
Dichiaro una variabile globale double XX[];
scrivere in init:
SetIndexBuffer(0,XX,INDICATOR_DATA);
PlotIndexSetInteger(0,PLOT_ARROW,108);
In Oncalculate scrivo:
XX[1]=iHigh[1]; - non viene disegnato
XX[1]=iHigh(Symbol(),PERIOD_CURRENT,1); - anch'esso non viene disegnato.
Naturalmente, anche nell'intestazione è specificato:
#proprietà indicator_buffers 1
#proprietà indicator_plots 1
#proprietà indicator_type1 DRAW_ARROW
#proprietà indicator_color1 clrGreen
#proprietà indicator_width1 1
Cosa sto facendo di sbagliato, per favore ditemi !!!!