Come faccio a rendere l'output di un grafico in carattere monospaziato? - pagina 4

 
Alexey Volchanskiy:

Queste misure non sono niente. Dovremmo fare cicli separati di diverse decine di migliaia di passaggi separatamente per Comment e Canvas, poi possiamo giudicare qualcosa. E il testo da stampare dovrebbe cambiare, per esempio, far stampare il valore del contatore.

Potresti rifarlo in questo modo?

L'uscita ripetuta è corretta, il commento uccide la velocità in mt5. L'ho controllato molto tempo fa e ne ho escluso la visualizzazione durante i test.

Non ho controllatoCHART_COMMENT, mi sono appena ricordato di questo, avrò il tempo di controllare la velocità

//+------------------------------------------------------------------+ 
//| Функция получает текст комментария в левом верхнем углу графика. | 
//+------------------------------------------------------------------+ 
bool ChartCommentGet(string &result,const long chart_ID=0) 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- получим значение свойства 
   if(!ChartGetString(chart_ID,CHART_COMMENT,result)) 
     { 
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError()); 
      return(false); 
     } 
//--- успешное выполнение 
   return(true); 
  } 
//+------------------------------------------------------------------+ 
//| Функция устанавливает текст комментария в левом верхнем углу     | 
//| графика.                                                         | 
//+------------------------------------------------------------------+ 
bool ChartCommentSet(const string str,const long chart_ID=0) 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- установим значение свойства 
   if(!ChartSetString(chart_ID,CHART_COMMENT,str)) 
     { 
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError()); 
      return(false); 
     } 
//--- успешное выполнение 
   return(true); 
  }
 
Nikolai Semko:

Provato su MT4. Il codice funziona anche su questo.
Si è scoperto che Comment è 5 volte più veloce su MT4 rispetto al suo analogo grafico. E si scopre che Comment() funziona 5-6 volte più lentamente su MT5 che su MT4. Questa è una sorpresa sgradevole e strana. Quindi la mia domanda è rivolta agli sviluppatori. Come mai? È chiaramente un bug per il 5!!!


Grazie per le informazioni, molto triste per MT5 e ancora più triste che sia così diverso in MT4 e MT5, la compatibilità risulta essere scarsa in un EA multipiattaforma.

 
Yury Kirillov:

Grazie per le informazioni, molto triste per MT5 e ancora più triste che sia così diverso in MT4 e MT5, la compatibilità risulta essere scarsa in un EA multipiattaforma.

Ce n'è un po'. Ho eliminato completamente l'output degli oggetti e delle informazioni sul grafico in mt5, non ho perso molto, a scapito di un buon rapporto del tester.

 
Yury Kirillov:

Grazie per le informazioni, molto triste per MT5 e ancora più triste che sia così diverso in MT4 e MT5, la compatibilità risulta essere scarsa in un EA multipiattaforma.


Penso che l'opzione migliore sarebbe ancora quella di passare a kanvas. La compatibilità di MT4 e MT5 è perfetta. E Comment è interessante solo per controlli rapidi in bozze di codice, ma non in quello finale. Tutti sottovalutano le capacità di velocità di Kanvas per qualche motivo.

 
Nikolai Semko:

Penso che l'opzione migliore sarebbe ancora quella di passare a Canvas. MT4 e MT5 sono pienamente compatibili. E Comment è interessante solo per i controlli rapidi di corrente nella bozza di codice, ma non nel codice finale. Tutti sottovalutano le capacità di velocità di Canvas per qualche motivo.


Chiaramente, è quello che dovremo fare...

 
Nikolai Semko:

Ho fatto anche i cicli separatamente, ho pensato che i risultati fossero un po' strani, stessa cosa. Stessi risultati. Non c'è differenza se si tratta di un ciclo generale o individuale. Nel mio esempio il testo cambia ogni volta, mi chiedo perché non sia stato notato. So anche dell'ottimizzazione del compilatore. ))


E posso postare il codice con cicli separati?

 
Vitaly Muzichenko:

La conclusione ripetuta è corretta, il commento uccide malamente la velocità in mt5. Ho controllato questo molto tempo fa, ed ho escluso la sua visualizzazione durante i test.

Non ho controllatoCHART_COMMENT, mi sono appena ricordato di questo, avrò il tempo di controllare la velocità

Dalla SD.

Qualcuno può impostare lo scambio di informazioni sulle stringhe tra l'EA e l'indicatore tramite il campo di commento del grafico.

Abbiamo deciso che per il bene di un piccolo numero di questi potenziali utenti non dobbiamo rallentare l'ottimizzazione.

Nelle prossime build, la funzione Comment funzionerà solo in test singoli. Durante l'ottimizzazione - non sarà

 
fxsaber:

Dal SR.

scambio di informazioni sulle stringhe tra l'EA e l'indicatore tramite il campo di commento del grafico.

La gente è brava nelle perversioni sessuali

E in generale, naturalmente, non esiste un metodo di scambio come la mappatura della memoria, ma all'interno di una sandbox e senza chiamare dll

 
Alexey Volchanskiy:

In realtà, ciò che manca è un metodo di scambio di tipi di mappatura della memoria, ma all'interno di una sandbox e senza chiamare la dll

Unsacco di opzioni.

 

Sono tutti surrogati. E ognuno richiede serializzazione/deserializzazione. Per esempio, in WCF posso inviare un'istanza di qualsiasi classe complessa con campi di dati sul web utilizzando qualsiasi protocollo disponibile e non ho bisogno di pensare a come impacchettare/disimballare, tutto è fatto da API. Tutto ciò di cui ho bisogno è di conoscere una tale classe all'estremità ricevente.