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

 
Ho aggiunto variabili di tipo int, in cui ho messo datetime convertito esplicitamente, e ha funzionato. Ma ora ho bisogno che il risultato del rapporto sia inferiore a 1, cioè
formula MathMin(Time1-Time2,Time2-Time3)/MathMax(Time1-Time2,Time2-Time3)
ma ha iniziato a dare di nuovo 0, anche se separatamente è corretto
 
Roman Sharanov:
Ho aggiunto variabili di tipo int, in cui ho messo datetime convertito esplicitamente, e ha funzionato. Ma ora ho bisogno che il risultato del rapporto sia inferiore a 1, cioè
formula MathMin(Time1-Time2,Time2-Time3)/MathMax(Time1-Time2,Time2-Time3)
ma ha iniziato a dare di nuovo 0, anche se separatamente è corretto
(double)MathMin(Time1-Time2,Time2-Time3)/(double)MathMax(Time1-Time2,Time2-Time3)
 
Roman Sharanov:

Ho scritto che ho già provato in questo modo, niente

la variabile ricevente deve anche essere doppia

 
Grande, ora dà sempre 1
MathMin e MathMax danno lo stesso valore anche se i loro argomenti sono diversi
 
Roman Sharanov:

Per favore, come trovare il rapporto tra 2 timeframes? (abbiamo bisogno del rapporto di barre tra 2 periodi)
L'ho scritto così ma dà 0. Tempo1>Tempo>Tempo3 sempre

Ho provato senza conversione esplicita del tipo, e (doppio) ho provato a scrivere

E con un esempio si può spiegare cosa c'è in ingresso e cosa dovrebbe esserci in uscita. Ho già riletto più volte tutti i consigli e le domande, ma ancora non riesco a capire da dove si parte e a cosa si deve arrivare.

Per esempio questo codice

#define  PRINT(A) ::Print(#A + " = " + (string)(A));
/********************Script program start function*******************/
void OnStart()
{
 datetime t1 = TimeCurrent(), t2 = TimeCurrent()-PeriodSeconds(PERIOD_M1)*7, t3 = TimeCurrent()-PeriodSeconds(PERIOD_M15);
 PRINT(t1-t2);
 PRINT(t1-t3);
 PRINT(double(t1-t2)/double(t1-t3));
 PRINT((t1-t2)/double(t1-t3));
 PRINT(double(t1-t2)/(t1-t3));
}/*******************************************************************/

dà questo risultato

2018.02.04 15:41:35.922 00 EURUSD,H1: double(t1-t2)/(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: (t1-t2)/double(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: double(t1-t2)/double(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: t1-t3 = 900
2018.02.04 15:41:35.922 00 EURUSD,H1: t1-t2 = 420
 
Alexey Viktorov:

E con un esempio, puoi spiegare qual è l'input e quale dovrebbe essere l'output. Ho già letto più volte tutti i consigli e le domande, ma non ho ancora capito da cosa si parte e a cosa si dovrebbe arrivare.

Per esempio questo codice

dà questo risultato

Sì, tranne che dà 0 o 1, ma ho risolto con una condizione if else, ma almeno funziona

 
Roman Sharanov:

Sì, tranne che dà 0 o 1, ma ho risolto con una condizione if else, ma almeno funziona

Dice che dovrebbe produrre un risultato come il doppio

e qui

E anche dopo il mio esempio.... le parole non sono sufficienti.

Che cosa ha a che fare con il "se"? Questo è un operatore condizionale e non dipende in alcun modo dal tipo di valori nelle condizioni.

Può fare 1 solo se numeratore e denominatore sono uguali. Ma non può MAI essere 0.

 

Buona giornata a tutti voi.

Puoi dirmi per favore come sbarazzarmi dell'enorme

di meta-editori nel computer.

Ho 7 terminali installati e ognuno trascina con sé un meta-editor.

7.0 impazzisce quando si cerca di aprire un file mq dal menu contestuale

Li apre periodicamente in diversi meta-editori, il che mi fa sentire molto a disagio.

Forse qualcuno sa come risolvere questo problema?

Vorrei avere solo 1 meta editor configurato.

Grazie in anticipo.

 
Northwest:

Buona giornata a tutti voi.

Potete dirmi per favore come sbarazzarmi dell'enorme

di meta-editori nel computer.

Ho 7 terminali installati e ognuno trascina con sé un meta-editor.

7.0 impazzisce quando si cerca di aprire un file mq dal menu contestuale

li apre periodicamente in diversi meta-editori, il che lo rende emotivamente sgradevole.

Qualcuno può sapere come risolvere questo problema?

Vorrei avere solo 1 meta editor configurato.

Grazie in anticipo.

Ho risolto questo problema per me con"link simbolico/etichetta" alla cartella MQL. Come tale, ho tolto la cartella principale dalla directory del programma, ho creato un collegamento ad essa e ho cancellato queste directory, sostituendole con un collegamento. Ora ho lo stesso set di Expert Advisors/indicatori/script in qualsiasi terminale. E l'apertura di qualsiasi maetaditor porta agli stessi file.

Naturalmente, per MQL4/5 le directory principali sono diverse.

 
Konstantin Nikitin:

Ho risolto questo problema con un"link simbolico/etichetta" alla cartella MQL. Come tale, ho tolto la cartella principale dalla directory del programma, ho creato un collegamento ad essa e ho cancellato le directory, sostituendole con un collegamento. Ora ho lo stesso set di Expert Advisors/indicatori/script in qualsiasi terminale. E l'apertura di qualsiasi maetaditor porta agli stessi file.

Naturalmente, le directory principali sono diverse per MQL4/5.

Grazie per il consiglio.

Ma sarebbe auspicabile per me vedere solo "i miei EA e indicatori" in diversi terminali.

Cioè, le cartelle MQL devono essere "proprie".

Questo suggerisce il metodo della forza bruta: dovrei strappare i file del meta-editor dalle distribuzioni installate.

Lascia solo uno di loro. E poi usare il pulitore del registro per rimuovere i percorsi dei file inesistenti.

Ma non so se funzionerà o meno. Vorrei che fosse senza conseguenze.