Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 141

 
forexman77:

Grazie mille! Funziona.

Spiegare la logica di mql5. In mql4, l'int Hour() è usato per determinare il tempo in ore. In mql5, non c'è questa costante, per quanto ho capito.

1. Come fa il programma a riconoscere che stiamo chiedendo il tempo in ore? Suppongo daMqlDateTime?

2. Per aggiungere il tempo corrente in minuti al tempo corrente in ore, cioè per scoprire il tempo corrente in minuti, la costruzione sarebbe come questa

1. Sì

2. Giusto.

 

Secondo giorno di rielaborazione dell'EA da mql4 a mql5.

1. Ho bisogno di trovare il tempo di apertura della barra giornaliera in secondi dal 01.01.1970. Ho trovato la funzione sul forum:

//--- переменные для указания параметров функции
int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
Alert(tp[0]);

Non sono sicuro se la funzione trova il tempo dell'ultima o della prima barra.

L'ora viene visualizzata come inizio della giornata di trading, sotto forma di data e ora.

Ho trovato la funzione StringToTime; sembra fare ciò di cui ho bisogno ma ho provato diverse combinazioni e ora mi sento come uno scimpanzé che non riesce a capire quale pulsante premere per aprire la porta della mela.

3. Non ho le funzioni iBarShift, iLow, iLowest in mql5. Potreste per favore consigliarmi come trovare il minimo giornaliero per un certo periodo di tempo o quali funzioni inmql5 dovrebbero essere usate per risolvere questo problema?

Документация по MQL5: Преобразование данных / StringToTime
Документация по MQL5: Преобразование данных / StringToTime
  • www.mql5.com
Преобразование данных / StringToTime - Документация по MQL5
 
forexman77:

Secondo giorno di rielaborazione dell'EA da mql4 a mql5.

1. Ho bisogno di trovare il tempo di apertura della barra giornaliera in secondi dal 01.01.1970. Ho trovato la funzione sul forum:

2. Ho trovato la funzione StringToTime e sembra fare quello che mi serve, ma ho provato diverse combinazioni e ora mi sento come uno scimpanzé che non sa quale pulsante premere per aprire la porta della mela.

Non ho funzioni iBarShift, iLow, iLowest in mql5. Potete dirmi come trovare il minimo su un certo periodo di tempo ogni giorno, o quali funzioni inmql5 dovrei usare per risolvere questo problema?

1,2. Si prega di leggere qui.

3. leggere qui.

 
DC2008:

1,2. Leggi qui.

3. Leggi qui.

Sulla seconda domanda. Rileggete tutto su datetime. "Il tipo datetime è destinato a memorizzare la data e l'ora come il numero di secondi trascorsi dal 01 gennaio 1970".

Perché allora quando si chiama l'allarme dice: 2013.10.02 00:00:00, non il numero di secondi.

 
forexman77:

Sulla seconda domanda. Rileggete tutto su datetime. "Il tipo datetime è destinato a memorizzare la data e l'ora come il numero di secondi trascorsi dal 01 gennaio 1970".

Perché allora quando l'allarme viene chiamato visualizza: 2013.10.02 00:00:00 e non il numero di secondi.

Ora leggete qui. Per mostrarlo nell'avviso, dovete convertire il tipo datetime nel tipo int.

 
DC2008:

Ora leggete qui. Per l'output nell'avviso, è necessario convertire il tipo datetime nel tipo int.

Ho fatto una costruzione come questa:

int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
int st=tp[0];
Alert("st=",st);

L'ho confrontato con metatrader 4 e ho ottenuto lo stesso numero.

Ma il messaggio è giallo quando si compila mql5:

possibile perdita di dati a causa della conversione del tipo

Ho cercato di fare così:

int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
Alert(IntegerToString(tp[0]));
Nessun errore. Ma non so dove collegareIntegerToString per ottenere il valore senza avvertire, perché sarà usato da Expert Advisor per i calcoli. Solo che non capisco che sarà un valore di stringa, cioè può essere usato come confronto con un altro numero?
 
forexman77:

Ha fatto una costruzione come questa:

confrontato con metatrader 4, risulta lo stesso numero.

Solo che il messaggio esce giallo quando si compila mql5:

possibile perdita di dati a causa della conversione del tipo

È più semplice di così!

//--- вывод результата
Alert("st=",(int)tp[0]);
 

Potete dirmi come creare un segnale se una volta ero iscritto ad un altro?

Cioè, ho già cancellato la mia iscrizione. Non è davvero possibile?

Ha fatto il 100% in meno di 2 settimane e non può condividere con nessuno(

 
anche questa è una domanda interessante
 
DC2008:

È più semplice di così!

Tuttavia, avrò bisogno della variabile "st" non solo in Alert, ma anche per i calcoli, e l'avviso "possibile perdita di dati a causa della conversione dei tipi" viene fuori durante la compilazione.

Suppongo che questo sia perché ottengo un numero di 10 cifre, mentre il valore massimo in int è 2 147 483 647, attualmente ottengo 1 380 758 400. Forse ha senso usare il lungo e probabilmente l'EA consumerà molte risorse in questa parte?

Документация по MQL5: Общие функции / Alert
Документация по MQL5: Общие функции / Alert
  • www.mql5.com
Общие функции / Alert - Документация по MQL5
Motivazione: