[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 192

 

NewBar() viene chiamata; ma se guardate abbastanza a lungo, non peggiorerete le cose per voi stessi :)

 

newbar https://book.mql4.com/ru/variables/arrays

Concettualmente, non è diverso.

void Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   static datetime New_Time=0;                  // Время текущего бара
   New_Bar=false;                               // Нового бара нет
   if(New_Time!=Time[0])                        // Сравниваем время
     {
      New_Time=Time[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
  }

 
splxgf:

newbar https://book.mql4.com/ru/variables/arrays

Concettualmente, non è diverso.


Non concettualmente, ma non funzionerà - mi dispiace.
 
Sull'indicatore ADX si è scritto molto, ma c'è una caratteristica che vorrei prendere in considerazione, qui in breve ....E si può fare le barre colorate in questo algoritmo: se il valore attuale di ADX è maggiore del precedente ADX e + (linea più) sopra la linea meno, la barra è dipinta in verde, ma se il valore attuale di ADX è inferiore al valore precedente, la barra è dipinta in grigio (allora non importa dove la linea più), e infine se il valore attuale ADX maggiore del precedente ADX e - (linea meno) sopra la linea più, la barra è dipinto in rosso. Oppure, se volessi cambiare il valore ADX, potrei semplicemente impostarlo su un valore al di sopra del quale le frecce non saranno disegnate.
 
splxgf:
double OpenBar=0; 
 
int start()
   {
    //Проверка на начало нового бара
    if (OpenBar==Time[0]) return; else OpenBar=Time[0];
   }

Non giocherei con una variabile come il doppio qui! Hai bisogno di più memoria! ;)))

E quando avviene la conversione del tipo int al tipo target double, capisco che non ci saranno cifre extra dopo il punto decimale? Personalmente non mi sono imbattuto in questi casi. Ma vale la pena chiedere.


tara:

Concettualmente - niente, ma non funzionerà, mi dispiace.
Quale codice non funziona e perché?
 

Quello che hai citato mancherà alcune barre.

 
tara:

Quella che hai citato mancherà alcune barre.


Suggerisci la tua variante e spiega perché è migliore. Finora sono solo parole.
 

1. La parte mancante delle barre sarà, perché il risultato del confronto double==int dipende dal particolare valore int che è stato precedentemente messo in double. Questo è esattamente quello che succede qui: il tempo (int) è scritto in double - per tutti i numeri che non sono gradi di due c'è una perdita di precisione, che risulta in double3 != int3, anche se double4 == int4.

2. Capisco che si tratta solo dell'errore tecnico di qualcuno, poi ripetutamente propagato. In realtà dovresti semplicemente correggere il tipo di OpenBar in datetime o int. Ma - il sonno della mente genera mostri: è più facile ripetere il codice di qualcun altro e chiudere gli occhi :)

3. Soluzione errata in termini di allocazione della memoria: una variabile locale statica è sufficiente qui, la variabile globale extra è inutile - software spazzatura, anche se è un'inezia :(

 
tara:

1. La parte mancante delle barre sarà, perché il risultato del confronto double==int dipende dal particolare valore int che è stato precedentemente messo in double. Questo è esattamente quello che succede qui: il tempo (int) è scritto in double - per tutti i numeri che non sono gradi di due c'è una perdita di precisione, che risulta in double3 != int3, anche se double4 == int4.

2. Capisco che si tratta solo dell'errore tecnico di qualcuno, poi ripetutamente propagato. In realtà dovresti solo fissare il tipo di OpenBar sul doppio. Ma il sonno della ragione genera delle bestie: è più facile ripetere il codice di qualcun altro e chiudere gli occhi :)

3. Soluzione errata in termini di allocazione della memoria: una variabile locale statica è sufficiente qui, la variabile globale extra è inutile - programma spazzatura, anche se è un'inezia :(


C'è ancora del codice da citare. Sono solo stanco di ripetere la stessa cosa dopo cinque pagine. Soprattutto perché la soluzione giusta è facile da trovare attraverso una ricerca
 

Buona giornata a tutti!

Domanda sugli EA. Guardando un sacco di EAs, voglio capire come vengono fatti automaticamente i trade. Penso di aver impostato tutto correttamente, permetto all'EA di scambiare, capisco l'idea, ma non ci sono scambi per qualche motivo. Forse è applicato a un certo simbolo? O un periodo di tempo? Come posso scoprirlo?