Errori, bug, domande - pagina 2021
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
Giocare l'insetto
Il risultato è il seguente
Riavviare.
CioèSYMBOL_TRADE_TICK_VALUE restituisce degli zeri alla prima esecuzione se Sleep() non è usato;
HI A proposito del simbolo invisibile in Market Watch. Se provate ad aprire il grafico USDJPY (premete Enter e inserite "USDJPY") prima dell'inizio dello script, non funzionerà. Se dopo aver eseguito lo script funziona. Anche se il Market Watch non è cambiato.
Giocare l'insetto
Il risultato è il seguente
Riavviare.
CioèSYMBOL_TRADE_TICK_VALUE restituisce degli zeri alla prima esecuzione se Sleep() non è usato;
HI A proposito del simbolo invisibile in Market Watch. Se provate ad aprire il grafico USDJPY (premete Enter e inserite "USDJPY") prima dell'inizio dello script, non funzionerà. Se dopo aver eseguito lo script funziona. Anche se il Market Watch non è cambiato.
Aggiungete questo ciclo all'inizio dello script
E vedere quanti simboli vengono stampati.
Alla prima esecuzione, l'accesso a AUDJPY aggiunge solo AUDUSD e USDJPY alla panoramica del mercato e solo alla seconda chiamata attraverso queste coppie ottiene la proprietà del simbolo. Questo è ciò che causa il problema con OrderCalcMargin nel mio caso.
È stato scritto molte volte. Non lo correggono per qualche motivo.
Ciao a tutti!
Aiuto per un principiante, per favore.
Viene eseguita la funzione per trovare il prezzo massimo. Come è possibile calcolare e restituire al codice il NUMERO DI BARRE con un certo prezzo massimo?
Aggiungete un ciclo come questo all'inizio dello script
E vedere quanti caratteri vengono stampati.
Alla prima esecuzione, l'accesso a AUDJPY aggiunge solo AUDUSD e USDJPY alla panoramica del mercato e solo alla seconda chiamata attraverso queste coppie ottiene la proprietà del simbolo. Questo è ciò che causa il problema con OrderCalcMargin nel mio caso.
Credo che si troverà il modo di farlo.
Ho ricevuto la risposta dal Service Desk. Lo aggiusteranno.
Grazie.
Per quanto riguarda il bug "intorno" a OrderCalcMargin() ha fatto un'applicazione al SR
È difficile essere sicuri quando c'è unacontraddizione diretta nella guida di MQL4/5:
...Ricordate che i parametri vengono passati all'indietro nella funzione, cioè l'ultimo parametro viene calcolato e passato per primo, poi il penultimo, e così via. Il parametro che viene prima dopo la parentesi di apertura viene calcolato e passato a sua volta.
.. .Si noti che l'ordine delle espressioni x1,..., xn è garantito.
Qual è la contraddizione? All'indietro, tutto qui. Non c'è nessuna dichiarazione contraria.
- Queste due raccomandazioni sono in sezioni separate della guida.
Quando si legge sotto
"Chiamare una funzione con argomenti x1, x2,..., xn"
l'ordine delle espressioni x1,....,xn è garantito, a quale ordine stai pensando?
Sull'ordine x1,...,xn o sull'ordine xn,....,x1 ?
- Queste due raccomandazioni sono in sezioni separate della guida.
Quando si legge sotto
"Chiamare una funzione con argomenti x1, x2,..., xn"
l'ordine delle espressioni x1,....,xn è garantito, a quale ordine state pensando?
L'ordine x1,...,xn o l'ordine xn,....,x1 ?
Sì, hai ragione, è confuso.
Tuttavia, penso che sia una cattiva pratica stabilire la logica del proprio algoritmo su un particolare ordine di argomenti in ogni caso. Tanto più quando questi calcoli da destra a sinistra confondono la comprensione del codice. Ecco perché se volete applicarlo, dovreste farlo solo in alcuni posti non critici come le stampe.
L'ordine di calcolo delle espressioni in Print() è da destra a sinistra. Più o meno... Ciao... L'ho anche controllato prima :)
MQL5 Reference\Base del linguaggio\Operazionied espressioni\Altre operazioni
Chiamata di funzione con argomenti x1, x2,..., xn
Si noti che l'ordine delle espressioni x1,..., xn è garantito.
Dimostra ancora una volta l'utilità della parola chiave C++ inline (c'era un'opinione qui che è presumibilmente obsoleta).
Tra l'altro, inline significa effettivamente che il programmatore si rifiuta di usare l'ordine di calcolo dei parametri della funzione e se il compilatore decide di rendere una funzione inline, il compilatore può usare l'ordine di calcolo in avanti come più efficiente (l'ordine di calcolo inverso è ovviamente efficiente solo per le funzioni richiamabili).
Allo stesso tempo, se il compilatore decide di incorporare una funzione non inline, dovrebbe usare l'ordine (generale) inverso di valutazione, anche se questo porta a una perdita di efficienza (perché il programmatore ha assunto questo ordine senza aver dichiarato la funzione inline)
inline sarebbe anche appropriato in MQL, dove l'ordine di calcolo non può essere controllato esplicitamente