Errori, bug, domande - pagina 15

 
Interesting:

Ho confrontato la versione online con il file che ho. O sono completamente cieco o sono completamente uguali...


Non l'avete scaricato, altrimenti avreste visto


 

Interesting:

A proposito di uccelli, c'è la domanda #17391, proprio su questo argomento...

Mi aspettavo certamente di più. Dovremo darci da fare il più possibile per catturare i bug e trattarli a un livello "basso"...
 
Rosh:

Non l'hai scaricato, altrimenti l'avresti visto.


Ho pensato che l'aiuto si aggiorna automaticamente nelle migliori tradizioni. Ho guardato nell'aiuto "nativo", è tutto uguale, ho provato da Alpari (anche se sembra essere lo stesso aiuto), il risultato è lo stesso...

Si scopre che avrei dovuto caricarlo di biscotti, sto diventando vecchio...

Non prenderlo come uno "sconfinamento", ma - Non posso sistemare la versione online?


PS

Perché il terminale non può vedere la nuova versione dell'aiuto?

 
Interesting:

PS

Perché il terminale non può vedere la nuova versione dell'aiuto?

Capito, in attesa della nuova release...
 
simpleton:
Una pratica comune (tra i professionisti) è che il terminale generi un messaggio di errore, non che vada in crash.

Correggeremo l'errore di crash, naturalmente; questa è l'ipotesi predefinita.

Il consiglio era semplicemente sui file di configurazione come metodo per gestire un complesso insieme di parametri di input.

 
Richiesta proprietà SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE), ritorna zero, è un errore o questa funzione non è ancora disponibile. Anche nel tester quando si esegue la richiesta della proprietà PositionGetInteger(POSITION_IDENTIFIER) restituisce sempre zero
 
sergey1294:
Ho richiesto la proprietà SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE) e restituisce zero. Anche nel tester quando si esegue la richiesta della proprietà PositionGetInteger(POSITION_IDENTIFIER) restituisce sempre zero

Ci stiamo già occupando di una richiesta simile.

Grazie per il messaggio.

 

C'è una richiesta come questa?

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime ctm[1], var;
   if(CopyTime("EURUSD",_Period,  0,1,ctm)==1) Print("EURUSD time[0]=", ctm[0]);
   var=ctm[0];
   if(CopyTime("AUDUSD",_Period,  0,1,ctm)==1) Print("AUDUSD time[0]=", ctm[0]);
   // запросим на время var=2010.06.25 23:00:00
   // должна быть ошибка, т.к. этого бара не существует
   // но все срабатывает
   if(CopyTime("AUDUSD",_Period,var,1,ctm)==1) Print("AUDUSD time[0]=", ctm[0]);
  }
//+------------------------------------------------------------------+

log

2010.06.27 01:25:43 11 (EURUSD,M1) AUDUSD tempo[0]=2010.06.25 22:59:00
2010.06.27 01:25:43 11 (EURUSD,M1) AUDUSD tempo[0]=2010.06.25 22:59:00
2010.06.27 01:25:43 11 (EURUSD,M1) EURUSD tempo[0]=2010.06.25 23:00:00

non c'è nessuna barra AUDUSD 23:00, non esiste.
ecco un'immagine

Dovrebbe essere così? Cosa produrrà questa funzione se colpisce un buco nella storia?

 
Sorento:

Strana inattività all'interno del ciclo... :(

Descrizione del problema

La stampa (e non solo) non funziona in un semplice script (o negli indicatori) all'interno del ciclo

Sequenza di azioni

//+------------------------------------------------------------------+
//|                                                        Xoxma.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   int i,j=0,k=0;
   i=12;
   Print("#6 ",i," ",j," !");
   for(j=i;j<=0;j--)
     {k=k+j;
      Print(j);Print("+ ",k);
     }
   Print("#7 ",i," ",j," K= ",k," !");

  }
//+------------------------------------------------------------------+


Forse questo è più corretto?

  for(j=i;j>=0;j--)
  {
  k=k+j;
  Print(j);
  Print("+ ",k);
  }
 
Prival:

C'è una richiesta come questa?

log

2010.06.27 01:25:43 11 (EURUSD,M1) AUDUSD tempo[0]=2010.06.25 22:59:00
2010.06.27 01:25:43 11 (EURUSD,M1) AUDUSD tempo[0]=2010.06.25 22:59:00
2010.06.27 01:25:43 11 (EURUSD,M1) EURUSD tempo[0]=2010.06.25 23:00:00

non c'è nessuna barra AUDUSD 23:00, non esiste.
ecco un'immagine

Dovrebbe essere così? Cosa produrrà questa funzione se colpisce un buco nella storia?

Guarda il codice

   if(CopyTime("AUDUSD",_Period,var,1,ctm)==1) Print("AUDUSD time[0]=", ctm[0]);

C'è una richiesta per un bar il cui orario di apertura è a sinistra di var=2010.06.25 23:00:00

var=2010.06.25 23:00:00

nella profondità della storia. Abbiamo recentemente aggiornato l'aiuto per le funzioni Copy...(), ad esempio per CopyTime():

Nota

Se l'intervallo dei dati richiesti è completamente al di fuori dei dati disponibili sul server, la funzione restituisce -1. Se i dati richiesti sono al di fuori del TERMINAL_MAXBARS(numero massimo di barre sul grafico), questa funzione restituirà anche -1.

Quando si richiedono dati all'indicatore, se le serie temporali richieste non sono ancora state costruite, o devono essere scaricate dal server, la funzione restituisce immediatamente -1, ma viene avviato il processo di download/costruzione.

Quando si richiedono dati dall'Expert Advisor o da uno script, viene avviato il caricamento dal server, se il terminale non ha questi dati localmente, o inizia la costruzione della serie temporale richiesta, se i dati possono essere costruiti dallo storico locale, ma non sono ancora pronti. La funzione restituirà la quantità di dati che sarà pronta entro il tempo di timeout, ma il caricamento della storia continuerà, e la prossima richiesta simile restituirà più dati.

Quando si richiedono dati nell'intervallo di date specificato, solo i dati che rientrano nell'intervallo richiesto saranno restituiti, e l'intervallo è specificato e preso in considerazione al secondo più vicino. Questo significa che il tempo di apertura di qualsiasi barra per la quale viene restituito un valore (volume, spread, valore nel buffer dell'indicatore, prezzo Open, High, Low, Close o open time Time) è sempre all'interno dell'intervallo richiesto.

Così,se il giorno corrente della settimana è sabato, quando si cerca di copiare i dati sul timeframe settimanale, specificando start_time=ultimo martedì e stop_time=ultimo venerdì, la funzione restituirà 0, poiché l'orario di apertura sul timeframe settimanale cade sempre di domenica, ma nessuna barra settimanale cade nell'intervallo specificato.

Se volete ottenere il valore corrispondente alla barra corrente non finita, potete usare la prima forma di chiamata con start_pos=0 e count=1.