Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 125

 
MosheDayan:
circa 25 persone. Per esempio: 14.02.2017 EURUSD 1,0630

Sfortunatamente, non vedo nemmeno una soluzione a questo problema puramente con mql.

Solo creare un modello di lettera con i nomi di tutti gli amici e la posta

 
MosheDayan:
circa 25 persone. Per esempio: 14.02.2017 EURUSD 1,0630
Bisogna trasmettere esattamente i livelli? Non sarebbe meglio creare un segnale e trasmetterlo?
 

Salve.

Ho ucciso tutta la sera, ma non riuscivo a capire il motivo, per favore aiutatemi. L'indicatore dovrebbe visualizzare i dati sullo schermo come un segno di testo, ma quando avvio il terminale non succede, il segno appare solo quando cambio il timeframe, poi funziona bene sui tick.

L'esempio è semplificato il più possibile, ma l'essenza non cambia:

int a=AccountInfoInteger(ACCOUNT_LEVERAGE);

intb=1000/a; // poi stampa b sullo schermo

Usando il metodo dell'eliminazione, ho concluso che questo funziona solo se sostituisco la divisione con qualsiasi altra operazione, o se assegno una qualsiasi costante alla variabile "a".

Ho provato a usare ChartRedraw(), ho giocato con i tipi interi e doppi, ho provato MathRound() e molto di più, niente ha funzionato.

È tutto strano.

 
Fam:

Salve.

Ho ucciso tutta la sera, ma non riuscivo a capire il motivo, per favore aiutatemi. L'indicatore dovrebbe visualizzare i dati sullo schermo come un segno di testo, ma quando avvio il terminale non succede, il segno appare solo quando cambio il timeframe, poi funziona bene sui tick.

L'esempio è semplificato il più possibile, ma l'essenza non cambia:

int a=AccountInfoInteger(ACCOUNT_LEVERAGE);

intb=1000/a; // poi stampa b sullo schermo

Usando il metodo dell'eliminazione, ho concluso che questo funziona solo se sostituisco la divisione con qualsiasi altra operazione, o se assegno una qualsiasi costante alla variabile "a".

Ho provato a usare ChartRedraw(), ho giocato con i tipi interi e doppi, ho provato MathRound() e molto di più, niente ha funzionato.

È tutto strano.

Allora, qual è il problema con la moltiplicazione invece della divisione?

intb=a*0,001;

Ed è anche importante dove esattamente nel codice fare i calcoli. Spero che non sia nell'inite o a livello globale? Potresti anche dividere per zero ;)

 
Fam:

Salve.

Ho ucciso tutta la sera, ma non riuscivo a capire il motivo, per favore aiutatemi. L'indicatore dovrebbe visualizzare i dati sullo schermo come un segno di testo, ma quando avvio il terminale non succede, il segno appare solo quando cambio il timeframe, poi funziona bene sui tick.

L'esempio è semplificato il più possibile, ma l'essenza non cambia:

int a=AccountInfoInteger(ACCOUNT_LEVERAGE);

intb=1000/a; // poi stampa b sullo schermo

Usando il metodo dell'eliminazione, ho concluso che questo funziona solo se sostituisco la divisione con qualsiasi altra operazione, o se assegno una qualsiasi costante alla variabile "a".

Ho provato a usare ChartRedraw(), ho giocato con i tipi interi e doppi, ho provato MathRound() e molto di più, niente ha funzionato.

È tutto strano.

E se guardate il diario, troverete l'errore critico "divisione per 0" lì
 
Vitalie Postolache:

Allora qual è il problema nel rifare la moltiplicazione invece della divisione?

intb=a*0,001;

Ed è anche importante dove esattamente nel codice fare i calcoli. Spero che non sia nell'inite o a livello globale? Potresti anche dividere per zero ;)

Non funzionerà, in realtà è una variabile invece di 1000. Il calcolo è inOnCalculate.
 
Vitalie Postolache:
I livelli devono essere trasmessi esattamente? Non sarebbe meglio creare un segnale e trasmetterlo?
Li mando anche su Whatsapp al gruppo. Volevo solo rendere la loro vita più facile... aprire il grafico e il mio livello è già lì. Puoi dirmi di più sul segnale, è tramite MT o una terza parte?
 
Alexey Viktorov:
E se si guarda nel log, si può trovare un errore critico "divisione per 0" lì

Il diario di bordo dice infatti: zero divide. Ora vado a controllare.

Non capisco da dove viene lo 0? Nessun dato daAccountInfoInteger(ACCOUNT_LEVERAGE) durante l'inizializzazione? E perché il marchio non appare nei tick successivi?

 
MosheDayan:
Li mando anche su Whatsapp al gruppo. Volevo solo rendergli la vita più facile... aprire il grafico e il mio livello è già lì. Puoi dirmi di più sul segnale, è di MT o di una terza parte?
È pubblico:)
 
Fam:

Il diario di bordo dice infatti: zero divide. Ora vado a controllare.

Non capisco da dove viene lo 0? Nessun dato daAccountInfoInteger(ACCOUNT_LEVERAGE) durante l'inizializzazione? E perché il marchio non appare nei tick successivi?

Perché il programma ha ricevuto un errore critico e non viene eseguito ulteriormente.

Forse, alcune società di intermediazione non passano la leva? Anche se non l'ho visto in forex...