Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 87

 
Silent:

Potrebbe anche essere più veloce... Anche se non so come sarà con la riallocazione della memoria.

Per favore, puoi dirmi come vedere quanta memoria prende un Expert Advisor e come viene riassegnata?
 

Eppure non riesco a capire perché i livelli non vengono creati usando ObjectCreate. Tutte le funzioni funzionano, ma non vengono creati oggetti OBJ_TREND

Ci sono variabili definite a livello globale:

stringa oRes, oSup, oPP, oRes1, oRes2, oRes3, oSup1, oSup2, oSup3, textPP, textR1, textR2, textR3, textS1, textS2, textS3;

Il codice che dovrebbe creare i livelli:

void OnInit()
  {
   TimeOpenBar();
   ObjectCreate(0,oRes,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oRes,OBJPROP_COLOR,clrNavy);
   ObjectSetInteger(0,oRes,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oRes,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oRes,OBJPROP_RAY,false);
   ObjectCreate(0,oSup,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oSup,OBJPROP_COLOR,clrNavy);
   ObjectSetInteger(0,oSup,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oSup,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oSup,OBJPROP_RAY,false);
   CreateLevels();

   ObjectCreate(0,oPP,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oPP,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oPP,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oPP,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oPP,OBJPROP_RAY,false);
   ObjectCreate(0,oRes1,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oRes1,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oRes1,OBJPROP_STYLE,STYLE_DASH);
   ObjectSetInteger(0,oRes1,OBJPROP_WIDTH,1);
   ObjectSetInteger(0,oRes1,OBJPROP_RAY,false);
   ObjectCreate(0,oSup1,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oSup1,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oSup1,OBJPROP_STYLE,STYLE_DASH);
   ObjectSetInteger(0,oSup1,OBJPROP_WIDTH,1);
   ObjectSetInteger(0,oSup1,OBJPROP_RAY,false);
   PPlevel();
  }
Gente, aiutate a risolvere questo problema. Per favore
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
fyords:
Stampa i risultati di ObjectCreate, forse c'è un errore.
Ebbene, che cosa dice? Hai stampato il risultato?
 
Per favore, consigliatemi come trovare una letteratura di facile comprensione (la più semplice possibile) sull'analisi tecnica. Sembra essere comprensibile all'inizio, ma quando inizio a leggerlo, il mio cervello si rifiuta di capirlo :(
 
fyords:
Quindi cosa dice? Hai fatto un output del risultato?
Non ha funzionato per me, stavo facendo qualcosa di sbagliato. La stampa non ha prodotto nulla.
 
NeSezon:
Per favore, consigliatemi su come trovare la migliore (il più semplice possibile) letteratura sull'analisi tecnica. Quando inizio a leggerlo lo capisco, ma quando inizio a leggerlo nei dettagli il mio cervello si rifiuta di capirlo :(
Provate la "piccola enciclopedia del commerciante" di Naiman.
 
WindSW:
Non ha funzionato per me, stavo facendo qualcosa di sbagliato. La stampa non mi ha dato nulla.
ResetLastError();
bool result=ObjectCreate(0,oRes,OBJ_TREND,0,0,0,0,0);
Print("result=",result," GetLastError()=",GetLastError());
Devo averlo fatto male.
 
fyords:
Dev'essere stata la cosa sbagliata da fare.
Sì, non è proprio così che ho fatto. Genera l'errore "5040 - parametro contaminato di tipo stringa". Ho parametri per gli oggetti impostati a livello globale (il compilatore avverte senza di essi) nella seguente forma: stringa oRes, oSup, oPP, oRes1; ecc. Come risolvere questo problema e come specificare correttamente la stringa di parametri corretta, in modo che tutto funzioni e il compilatore non imprechi?
 
WindSW:
Sì, non è proprio così che ho fatto. Genera l'errore "5040 - tainted parameter of type string". Ho parametri per oggetti definiti a livello globale (il compilatore avverte senza di essi) come questo: stringa oRes, oSup, oPP, oRes1; ecc. Come risolvere questo problema e come specificare correttamente la stringa di parametri corretta, in modo che tutto funzioni e il compilatore non imprechi?

Bene, diciamo che avete dichiarato delle variabili a livello globale, avete assegnato dei valori a queste variabili?

Se no, allora si dice al programma "crea un oggetto con tali e tali caratteristiche con il nome..." e c'è un problema - il nome non è dato. Quindi non lo crea.

Non sarebbe più facile specificarlo direttamente nel codice ObjectCreate?

ResetLastError();
bool result=ObjectCreate(0,"Name1",OBJ_TREND,0,0,0,0,0);
Print("result=",result," GetLastError()=",GetLastError());
 
WindSW:
Prova l'enciclopedia del piccolo commerciante di Nyman
Grazie! Trovato. Mi piacerebbe leggerlo uno di questi giorni.