Errori, bug, domande - pagina 763

 
x100intraday:

...Se i punti di magnitudine sono legati agli estremi (casi speciali) o alle coordinate del grafico in generale - prezzo/tempo, allora a cosa è legato "Scale", mi chiedo? Se ci sono dei valori esatti di scala che vengono scaricati nel template quando si scrive... o pip per barra, non permette di ripristinare il profilo originale in una nuova sessione. Solo le coordinate esatte del primo punto sono conservate. Grosso modo, i modelli basati su punti di ancoraggio a coordinate esplicite e semplici sono più affidabili.

Il 1° punto è il prezzo e il tempo, il 2° punto è il tempo, il prezzo è calcolato considerando la scala in n/b.

Non so cosa c'è scritto nel modello, penso che dovrebbe avere tutti e 4 i valori: 2 volte, prezzo del primo punto, scala.

Poi ci possono essere problemi se mancano delle barre, credo.

 
Silent:

Non è un problema di rimozione, è un problema di creazione :)

Ho avuto uno script con il ciclo sbagliato che ha fatto la stessa cosa. Ha stampato il ciclo, anche dopo aver cancellato forzatamente lo script tramite"Expert List", fino a quando non è saltato fuori un errore.

Non sono sicuro del perché dell'errore di creazione?

Creo senza loop, non ne ho bisogno per 3 oggetti.

Lo faccio solo per ognuno:

if(ObjectFind(0,_name)!=0)//если не нашли создаем
     {
      ObjectCreate(0,_name,OBJ_RECTANGLE,0,_begin_time,_open,_end_time,_close);
         ObjectSetInteger(0,_name,OBJPROP_STYLE,STYLE_SOLID);
         ObjectSetInteger(0,_name,OBJPROP_WIDTH,Width);
         ObjectSetInteger(0,_name,OBJPROP_BACK,_Top);
         ObjectSetInteger(0,_name,OBJPROP_FILL,_BG);
         ObjectSetInteger(0,_name,OBJPROP_SELECTED,false);
         ObjectSetInteger(0,_name,OBJPROP_COLOR,_Color);
     }
else //если нашли модифицируем
     {
      ObjectMove(0,_name,0,_begin_time,_open);
      ObjectMove(0,_name,1,_end_time,_close);
      ObjectSetInteger(0,_name,OBJPROP_COLOR,_Color);
     }

In generale, i primi indizi stanno apparendo, ma è troppo presto per dirlo.

 

Controllate che l'oggetto sia stato creato nel codice?

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
 
kPVT:

Non capisco perché l'errore di creazione?

...

Perché.
kPVT:

...

Gli oggetti vengono cancellati, ma vengono ricreati e continuano a "muoversi" come se l'indicatore continuasse a funzionare.

Se cancellati manualmente, vengono creati di nuovo con lo stesso nome e continuano a "muoversi" man mano che arrivano nuove zecche.

...

L'indicatore li cerca ad ogni tick e li crea o modifica, come ho capito.

Forse: se già presente e modificato - niente da fare (blocco)?

 
alexvd:

Controllate il fatto che l'oggetto sia stato creato nel codice?

Silenzioso:
Forse: se c'è già e modificato - non manca niente da fare (blocco)?

La ragione è la seguente.

Se ottenete la maniglia dell'indicatore #1 dall'indicatore #2, non si completa la disinstallazione dell'indicatore #1, finché non cancellate l'indicatore #2.

Se ci sono costruzioni buffer, queste vengono rimosse, ma gli oggetti grafici rimangono.

Ecco due indicatori da testare.

1. Alleghiamo test_del_obj, poi test_id.

2. Rimuoviamo test_del_obj - il cubo di test_del_obj rimane.

3. Remove test_id - il cubo viene rimosso e vediamo nel log che solo ora viene eseguito il deinit dell'indicatore test_del_obj.

File:
 

Un'altra domanda.

La maniglia dell'indicatore attaccata al grafico è unica?

Se si modifica l'indicatore test_id aggiungendo un polling temporizzato dell'handle dell'indicatore test_del_obj, si può vedere che il valore aumenta di 1 per ogni richiesta.

File:
 

ArrayResize() non funziona correttamente

Quando si riduce la dimensione di un array dinamico, ArrayResize() taglia gli elementi dal lato sbagliato dell'array.

Codice:

   double Arr[];
   ArrayResize(Arr,5);
   Arr[0]=101;
   Arr[1]=102;
   Arr[2]=103;
   Arr[3]=104;
   Arr[4]=105;   
   Print("Начальный массив: ",Arr[0],":",Arr[1],":",Arr[2],":",Arr[3],":",Arr[4]);
   ArraySetAsSeries(Arr,true);
   ArrayResize(Arr,4);
   Print("Обрезанный массив: ",Arr[0],":",Arr[1],":",Arr[2],":",Arr[3]);

Risultato:

2012.07.04 21:28:53     Ind2 (EURUSD,H4)        Обрезанный массив: 104.0:103.0:102.0:101.0
2012.07.04 21:28:53     Ind2 (EURUSD,H4)        Начальный массив: 101.0:102.0:103.0:104.0:105.0

Stesso codice e risultato in MetaTrader 4:

2012.07.04 21:28:35     ind2 EURUSD,H4: Обрезанный массив: 105:104:103:102
2012.07.04 21:28:35     ind2 EURUSD,H4: Начальный массив: 101:102:103:104:105
File:
Ind2.mq5  2 kb
 

Cari sviluppatori di MT5. Richiamo la vostra attenzione - la cosa più importante per un server Forex è la correttezza delle quotazioni. Pertanto, indagare l'inesattezza nel vostro MT5 (MetaQuotes-Demo server):

1) Cambiare il volume nelle candele precedentemente caricate - per esempio, oggi alle 8:00 EURUSD H4, i valori erano 0:00 - 6171, 4:00 - 7049, 8:00 - 13361. E quando si caricava alle 20:00 (in Europa), i valori erano 0:00 - 7701, 4:00 - 8859, 8:00 - 16306. In generale non sarà difficile per voi vedere che il volume in corso in lingua russa si è incasinato. Dato che ho l'onore di parlare non solo a mio nome, ma anche su richiesta dei compagni, dico - è molto frustrante per coloro che usano il modello con volume e con il suo accumulo.

2) Mettiamo Alpari MT4 a sinistra e Metaquotes MT5 a destra e stupiamoci che i minuti su Metaquotes si chiudono molto prima che su Alpari. Controlliamo con time.windows.com e l'orologio sulla nostra mano - il tempo del server metaquotes è in anticipo! - I commercianti di pip si lamentano qui - c'è una fonte casuale significativa nel trading.

3) Un desiderio generalmente oltraggioso - possiamo rendere disponibili l'offerta e la domanda sia per il salvataggio che per la visualizzazione, separatamente e/o congiuntamente. Mi è stato chiesto, ma mi rendo conto che non è realistico. Per quanto ho capito in MT3 in generale c'era qualcosa tra bid e ask, e probabilmente si trova nella storia. Ora solo bid.

 
MoneyJinn:

ArrayResize() non funziona correttamente

Proprio così. AsSeries è solo una bandiera.
 
TheXpert:
Tutto è corretto. AsSeries è solo una bandiera.

Vedere il comportamento degli elementi dell'array influenzato daArraySetAsSeries(Arr,true) e come funziona in 4.

Vorrei aggiungere che alla fine del 2011 tutto funzionava correttamente, perché ho scritto del codice su questo argomento, che ora non funziona più.