Domanda su Objectget e objectgetvaluebyshift - pagina 3

 
Rajakumar1:

Molte grazie per il vostro aiuto. Qualche area dove guardare prima? Il Meta editor mostra solo avvertimenti. Nessun errore.


Bene, se l'indicatore funziona/disegna le linee di tendenza come ti aspetti, concentrati sull'EA.

Se le istruzioni di stampa non vengono mostrate, gli oggetti non esistono. Hai l'indicatore aggiunto al grafico nello stesso momento in cui esegui l'EA?

Se non puoi vedere le linee sul grafico, l'EA non funzionerà.

 
honest_knave:


Bene, se l'indicatore funziona/disegna le linee di tendenza come ti aspetti, concentrati sull'EA.

Se le istruzioni di stampa non appaiono, gli oggetti non esistono. Hai aggiunto l'indicatore al grafico nello stesso momento in cui esegui l'EA?

Se non puoi vedere le linee sul grafico, l'EA non funzionerà.

Grazie. L'indicatore funziona bene. Mi sto chiedendo perché gli oggetti non sono visibili all'EA. L'elenco degli oggetti del grafico mostra tutte le linee di tendenza.
 
Rajakumar1:
Grazie. L'indicatore funziona bene. Mi sto chiedendo perché gli oggetti non sono visibili all'EA. La lista degli oggetti del grafico mostra tutte le linee di tendenza.


Prova a sostituire tutto questo:

   int obj_total = ObjectsTotal();
   string name;
   for(int j = 0; j<obj_total; j++)
   {
   name = ObjectName(j);
   Print(j, "Object - ", name);
   
      if(ObjectType(name) == OBJ_TREND && name == "Trendline1-m30")
      {
       price1 = ObjectGetValueByShift(name, 0);
       Print("price1:  ", price1);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline2-m30")
      {
       price2 = ObjectGetValueByShift(name, 0);
       Print("price2:  ", price2);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline3-m30")
      {
       price3 = ObjectGetValueByShift(name, 0);
       Print("price3:  ", price3);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline4-m30")
      {
       price4 = ObjectGetValueByShift(name, 0);
       Print("price4:  ", price4);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline5-m30")
      {
       price5 = ObjectGetValueByShift(name, 0);
       Print("price5:  ", price5);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline6-m30")
      {
      price6 = ObjectGetValueByShift(name, 0);
      Print("price6:  ", price6);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline7-m30")
      {
       price7 = ObjectGetValueByShift(name, 0);
       Print("price7:  ", price7);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline8-m30")
      {
       price8 = ObjectGetValueByShift(name, 0);
       Print("price8:  ", price8);
      }
     }

Con questo:

   string name = "Trendline1-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price1 = ObjectGetValueByShift(name, 0);

   name = "Trendline2-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price2 = ObjectGetValueByShift(name, 0);

   name = "Trendline3-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price3 = ObjectGetValueByShift(name, 0);

   name = "Trendline4-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price4 = ObjectGetValueByShift(name, 0);
   
   name = "Trendline5-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price5 = ObjectGetValueByShift(name, 0);
   
   name = "Trendline6-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price6 = ObjectGetValueByShift(name, 0);   

   name = "Trendline7-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price7 = ObjectGetValueByShift(name, 0);
   
   name = "Trendline8-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price8 = ObjectGetValueByShift(name, 0);
 
honest_knave:


Prova a sostituire tutto questo:

Con questo:

Grazie. La funzione di stampa non stampa il prezzo. La lista degli oggetti del grafico mostra tutte le linee di tendenza e sono anche nel grafico. Ho aggiunto "Print("price1: ", price1);" dopo la prima linea di tendenza.
 
Rajakumar1:
Grazie. La funzione di stampa non stampa il prezzo. La lista degli oggetti del grafico mostra tutte le linee di tendenza e sono anche nel grafico. Ho aggiunto "Print("price1: ", price1);" dopo la prima linea di tendenza.


Sì, il codice che ho fornito stampa solo se c'è un problema.

Vedi qualche messaggio nel log degli esperti?

Per esempio: "Errore: impossibile trovare Trendline1-m30"?

 
Rajakumar1:
Grazie. La funzione di stampa non stampa il prezzo. L'elenco degli oggetti del grafico mostra tutte le linee di tendenza e sono anche nel grafico. Ho aggiunto "Print("price1: ", price1);" dopo la prima linea di tendenza.

Molte grazie. Ora funziona. Il problema è con l'auto trading disabilitato.

 
Rajakumar1:

Molte grazie. Ora funziona. Il problema è con l'auto trading disabilitato.


 
honest_knave:


Sì, il codice che ho fornito stampa solo se c'è un problema.

Vedi qualche messaggio nel log degli esperti?

Per esempio "Errore: impossibile trovare Trendline1-m30"?

Molte grazie. Ora funziona. Il problema è con l'auto trading disabilitato.
 
Rajakumar1: Ora funziona. Il problema è con l'auto trading disabilitato.
  1. Il problema che mi hai chiesto non ha niente a che vedere con l'auto trading disabilitato.
  2. Controlla i tuoi codici di ritorno (OrderSend) e scopri perché.Cosa sono i valori di ritorno delle funzioni? Come si usano? -Forum MQL4 ed errori comuni nei programmi MQL4 e come evitarli - Articoli MQL4
 
Ciao ragazzi, vorrei chiamare l'indicatore da doppio iCustom(Symbol(), 0, jebatfx-breakout-trendline, Price_close, 0, 1);

Per ottenere la linea di tendenza alta e la linea di tendenza bassa sul mio ea.

Quando il prezzo lo rompe, prende un commercio.

Ho sempre ottenuto il mio ea ma non posso ottenere l'alto e il basso.


Pensi che potrei usare ObjectGetValueByShift() per definirlo? Grazie
Motivazione: