Domande da un "manichino" - pagina 148

 
Yedelkin:
Beh, guarda tu stesso il tuo codice. La condizione if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) è inutile nella sua forma attuale. Perché non importa quale risultato produca, la vostra funzione bool timeOntrade() restituirà sempre true.
Sembra logico, è quello che mi interessa. Penso di aver scritto cose inutili e superflue e forse ho tralasciato la cosa necessaria.
 
Interesting:

alph, questo è ciò di cui parla Yedelkin.

Queste varianti della funzione sono identiche nella nostra mente

Ora capisco.
 
alph:
Sembra logico, per questo sono interessato. Mi sembra di aver scritto cose superflue e forse ho tralasciato quelle necessarie.


C'è un'altra cosa che non mi è ancora chiara

   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true);

Cioè, se ho capito bene, prima assegniamo il clock a 0 e poi lo confrontiamo.

Dov'è la logica?
 
Interesting:


Un altro punto, che non mi è ancora chiaro

Cioè, se ho capito bene, prima assegniamo il clock a 0 e poi lo confrontiamo.

Dov'è la logica?
Non ho ancora rimosso la linea con true, ma mi sembra che, se la rimuovi, già in ontik non ci sarà alcun confronto con l'orologio come valore o parametro specifico.
 
alph:
Non ho ancora rimosso la linea con true, ma mi sembra che, se la rimuoviamo, non ci sarà alcun confronto con l'orologio come valore specifico o parametro in ontik.

Al momento queste opzioni sono identiche secondo me

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true);
   return(true);
   }

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   return(true);
   }

In generale, non capisco perché i valori debbano essere assegnati.

Cioè, per quanto ho capito, l'opzione migliore è

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timetrade;
   TimeTradeServer(timetrade);
   if(timetrade.hour!=TradeHour) return(false);
   return(true);
   }
In questo caso, se l'ora corrente del server (solo per l'orologio) non è uguale a quella impostata, allora restituisce false, altrimenti restituisce true.
 
Interesting:

Al momento queste opzioni sono identiche

In realtà non capisco perché dobbiamo assegnare dei valori?

Per scrivere questo:

void OnTick()

{...

//-----------------------------------------------------------------------------------------+

/Base per passare a Open

MqlRates rt[1];

if(CopyRates(Symbol(),MyTframe,0,1,rt)<0) ritorno;

se(rt[0].tick_volume>1) ritorno;

if(!PositionSelect(_Symbol) && (timeOntrade(4) || ((timeOntrade(15) || timeOntrade(16))&& timeOntrade2(0)))) Open();//andare all'apertura della posizione

timeOntrade.min = 0;

Questo è chiaramente inutile in questo contesto


   timeOntrade.min = 0;
   timeOntrade.sec = 1;
 

alph:

Per inserire questo:

void OnTick()

Prova questa opzione, altrimenti non capisco cosa stai cercando di ottenere...

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timetrade;
   TimeTradeServer(timetrade);
   if(timetrade.hour!=TradeHour) return(false);
   return(true);
   }
 
Interesting:

Prova questa opzione, altrimenti non capisco cosa stai cercando di ottenere...

Sì, sì, e dentro:

 bool timeOntrade2(int TradeMin)  
   {
   MqlDateTime timetrade2;
   TimeTradeServer(timetrade);
   if(timetrade.min!=TradeMin) return(false);
   return(true);
   }
 
alph:

Sì, sì, e dentro:

Allora già così (per essere sicuri). Ma, in linea di principio, mi hai dato ragione

 bool timeOntrade2(int TradeMin)  
   {
   MqlDateTime timetrade;
   TimeTradeServer(timetrade);
   if(timetrade.min!=TradeMin) return(false);
   return(true);
   }
 
Interesting:

Allora è così (per essere sicuri). Ma, in linea di principio, mi hai dato ragione

Grazie! Il resto del codice è corretto?