Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 895

 
lil_lil:

Non proprio, anche se sarà utile per il test. Voglio che l'indicatore sia attaccato al grafico online dopo che l'EA vi è attaccato. È possibile?

Non l'ho provato. Teoricamente, è improbabile che funzioni. Forse è questa la ragione per cui non l'ho ancora provato. Sarà così: ogni volta che l'EA viene caricato, il modello sarà applicato, su cui l'EA viene lanciato di nuovo. E tutto si ripete, il modello viene applicato, viene lanciata una nuova copia dell'EA e così via.

Potrebbe essere meglio, se lo vuoi così tanto che ti fanno male i denti, fare uno script che applica il modello con l'EA e gli indicatori.

 
Grazie a tutti per la vostra partecipazione. Proverò a chiamare ChartApplyTemplate() nel terminale globale e assegnerò un valore alla variabile, ma prima di chiamare ChartApplyTemplate() controllerò il suo valore.
 

Ciao,

Come posso creare barre utilizzando 30 tick di ogni PERIODO_M1?

Voglio creare un nuovo personaggio per la mia analisi.

 
Ciao, per favore aiutami a risolvere un problema, ho dei problemi. Ho bisogno di prescrivere nel codice dell'EA, lavorando sul grafico attivo del simbolo 1, di disegnare linee orizzontali in un altro grafico NON attivo del simbolo 2. Significa che il grafico del simbolo 2 è aperto sullo schermo. Per esempio, per il secondo simbolo SUI30 ho fatto così:
double SUop0 = iOpen("SUI30",PERIOD_H1,0);
double lp = SUop0-67;
double hp = SUop0+67; 

   Fun_New_Bar();
      if(New_Bar)      
         {
   ObjectCreate("SUI30","lineForBuy",OBJ_HLINE,0,0,lp);
   ObjectCreate("SUI30","lineForSell",OBJ_HLINE,0,0,hp);
         }
ma il meta-editor dà un messaggio di conversione implicita da 'stringa' a 'numero'. Cosa sto sbagliando e come posso risolvere il problema? Grazie.

 
novichok2018:
Ciao, per favore aiutami a risolvere un problema, non ci riesco. Nel codice dell'Expert Advisor, che lavora sul grafico attivo del simbolo 1, ho bisogno di prescrivere il disegno di linee orizzontali in un altro grafico NON attivo del simbolo 2. Significa che il grafico del simbolo 2 è aperto sullo schermo. Per esempio, per il secondo simbolo SUI30, ho fatto così: ma il meta-editor dà un messaggio di conversione implicita da 'string' a 'number'. Cosa sto sbagliando e come posso risolvere il problema? Grazie.

Dobbiamo usare un altro sovraccarico di funzione

bool  ObjectCreate( 
   long          chart_id,      // идентификатор графика 
   string        object_name,   // имя объекта 
   ENUM_OBJECT   object_type,   // тип объекта 
   int           sub_window,    // индекс окна 
   datetime      time1,         // время первой точки привязки 
   double        price1,        // цена первой точки привязки 
   ... 
   datetime      timeN=0,       // время N-точки привязки 
   double        priceN=0       // цена N-точки привязки 
   );

E questo identificatore di grafico dovrebbe essere trovato cercando di enumerare i grafici da ChartFirst();

long  ChartNext( 
   long  chart_id      // идентификатор графика
   );

Esempio dalla documentazione

//--- переменные для идентификаторов графиков 
   long currChart,prevChart=ChartFirst(); 
   int i=0,limit=100; 
   Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart); 
   while(i<limit)// у нас наверняка не больше 100 открытых графиков 
     { 
      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график 
      if(currChart<0) break;          // достигли конца списка графиков 
      Print(i,ChartSymbol(currChart)," ID =",currChart); 
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext() 
      i++;// не забудем увеличить счетчик 
     }
 
Alexey Viktorov:

Dobbiamo usare un sovraccarico di funzione diverso

Grazie, sto cercando di capirlo.

 
Alexey Viktorov:

Dobbiamo usare un altro sovraccarico di funzione

E questo identificatore di grafico dovrebbe essere trovato cercando di enumerare i grafici da ChartFirst();

Un esempio dalla documentazione

Sfortunatamente, i miei tentativi di farcela non hanno portato a nulla. Ho semplicemente aggiunto gli errori relativi aChartNext() ai messaggi esistenti. Non capisco il punto.

 
novichok2018:

Sfortunatamente per me, cercare di capirlo non ha portato a nulla. Ho appena aggiunto gli errori relativi all'applicazione ChartNext() ai messaggi esistenti. Non capisco il punto.

Beh, puoi usare un ID costante del grafico per renderlo più facile. Scrivere uno script

Print(ChartID());

Eseguilo sul grafico sul quale vuoi disegnare queste linee. Poi scrivete questo valore nella funzione come ID del grafico.

E dal lato buono, l'esempio della documentazione, non è una funzione già pronta, tipo prendila e usala. È necessario controllare il simbolo e il periodo nel ciclo. Se viene trovato quello giusto, allora uscite dal ciclo e usate l'identificatore ottenuto.

 

c'è una costante nell'inline cl_ di OPENCL ed è uguale a #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 controllando il grado di due in 1024 ottenuto. 2^1024 = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 E poi sotto c'è il numero di pi greco

dopo

#define CL_M_PI 3.141592653589893115998

3.141592653589793238462643383279502884197169

spiegare perché ????

 
Alexey Viktorov:

Bene, potete usare un ID grafico costante per rendere il compito più facile. Scrivere uno script

Eseguilo sul grafico sul quale vuoi disegnare queste linee. Poi scrivi questo valore nella funzione come ID del grafico.

E il lato positivo è che l'esempio della documentazione non è una funzione già pronta, basta prenderla e usarla. È necessario nel ciclo controllare il simbolo e il periodo. Se viene trovato quello giusto, allora uscite dal ciclo e usate l'identificatore ottenuto.

Grazie. Tutto ha funzionato con lo script, disegna le linee.