Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 535

 
Karputov Vladimir:

Devi specificarlo subito :) .

La situazione è la seguente: se c'è una barra nel grafico, corrisponde a una cella nel buffer dell'indicatore. Finché non scrivete qualcosa in questa cella, essa memorizzerà dei rifiuti.

Perché non fa schifo in MT4 ma semplicemente non visualizza l'indicatore sotto questa barra?
 
Aleksey Lebedev:

Quando si divide un intero (int, long, datetime ecc.) il risultato è un intero, cioè il resto viene scartato. 00:00 di oggi e 23:59:59 di ieri, la differenza sarà di 1 giorno.

In primo luogo non lo è - è dimostrato sperimentalmente nell'indicatore.

In secondo luogo, come si ottiene un 1 - mostratemelo matematicamente, dato che inizialmente stiamo calcolando in secondi.

 
Alexey Kozitsyn:
Esattamente allo stesso modo dell'azzeramento dei tipi semplici. Assegnando loro un valore di 0. Una volta che i campi richiesti sono stati assegnati valori 0 - utilizzate l'operazione inversa StructToTime().

Azzerato:

MqlDateTime str1;
datetime  Open_timePos=iTime(_Symbol,0,pos);
TimeToStruct(Open_timePos,str1);
   str1.hour=0;
   str1.min=0;
   str1.sec=0;
datetime  start_time=StructToTime(str1);
Print("день=",TimeToStr(start_time));

Tutto ha funzionato - grazie!
 

Aleksey Lebedev:
При делении целых чисел(int,long,datetime и т.п.) результат целое число, т.е. остаток отбрасывается. 00:00 сегодня и 23:59:59 вчера, разность будет равна 1дню.

-Aleks-:

Prima di tutto non lo è - provato sperimentalmente nell'indicatore.

Non discutere le basi).

-Aleks-:

In secondo luogo come si ottiene 1 - mostratemelo matematicamente, dato che inizialmente abbiamo il calcolo in secondi.

datetime today=D'2016.03.09 00:00:00';
datetime yesterday=D'2016.03.08 23:59:59';
Print("today=",86400*(today/86400)," value=",int(today));
Print("yesterday=",86400*(yesterday/86400)," value=",int(yesterday));
Print("разница в днях = ",int(today/86400-yesterday/86400));

Usare la conversione attraverso la struttura, se è più facile da capire.

 
Aleksey Lebedev:

Non sfidare le basi)

Usate la conversione della struttura se è più facile da capire.

Ciò che è compreso è ciò che è stato trattato. Non ho provato il tuo codice per eseguirlo, ma credo che tu l'abbia fatto da solo, quindi spiegami in modo poco intelligente come funziona:

86401/86400-86400/86400 è uguale a 1, se per le regole della matematica 1.000012-1=0.000012 , mentre int dovrebbe arrotondare a un numero intero, cioè 0.

 
-Aleks-:

Ciò che è compreso è ciò che è stato trattato. Non ho provato il tuo codice da eseguire, ma penso che tu stesso l'abbia fatto, quindi spiegami in modo poco intelligente come funziona:

86401/86400/86400 è uguale a 1, se secondo le regole della matematica 1.000012-1=0.000012 , e int dovrebbe arrotondare al numero intero, cioè 0.

ma fallo)

L'inizio del giorno 00:00:00 è diviso per 86400 senza resto, il precedente è almeno 1 secondo meno. Arrotondato - il resto della divisione viene scartato, non l'intera espressione.

86400/86400=1

86399/86400=0

 
Aleksey Lebedev:

e poi eseguirlo)

L'inizio del giorno 00:00:00 è diviso per 86400 senza resto, il precedente è almeno 1 secondo in meno. Arrotondato - il resto della divisione viene scartato, non l'intera espressione.

86400/86400=1

86399/86400=0

quindi sono sorpreso che il particolare arrotondamento avvenga all'interno di un'espressione - pensavo che fosse quando ad una variabile veniva assegnato un valore che il valore dopo il punto decimale veniva scartato.
 
Ragazzi! È possibile visualizzare l'indicatore sul grafico in modo programmatico? O solo a mano?
 
Vladimir Tkach:
Ragazzi! È possibile visualizzare l'indicatore sul grafico in modo programmatico? O solo a mano?
Puoi farlohttps://www.mql5.com/ru/docs/chart_operations/chartindicatoradd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
è in mql5 e in mql4?
Motivazione: