Errori, bug, domande - pagina 1165

 

Salve. Ho bisogno di aiuto. Qualcuno può suggerire come ridurre la dimensione del carattere sul grafico dello strategy tester in modo che non copra il grafico e si adatti all'intero grafico, come nell'immagine sottostante (opzione 2):

 
Akromix:

Salve. Ho bisogno di aiuto. Qualcuno può suggerire come ridurre la dimensione del carattere sul grafico dello strategy tester in modo che non copra il grafico e si adatti interamente al grafico, come nell'immagine qui sotto (opzione 2):

Prova a selezionare la dimensione standard dei caratteri di sistema nelle impostazioni di Windows, o anche a ridurla.
 
marketeer:
Prova a selezionare la dimensione standard dei caratteri di sistema nelle impostazioni di Windows, o anche a ridurla.
Questo cambiamento riduce solo il carattere con il nome della finestra del terminale, ma il carattere non viene ridotto nella grafica del tester.
 
barabashkakvn:

Durante il commit delle modifiche in MQL5 Storage, si è verificato l'errore 170004. È la seconda volta che lo vedo.

Credo di dover aggiornare prima di impegnarmi.
 
TheXpert:
Beh, a quanto pare devi aggiornare prima di impegnarti.
È una prescrizione? È utile? Ho appena aggiornato dallo storage al mattino, poi ha lavorato per mezza giornata ed ecco l'errore#170004 al momento del commit.
 
barabashkakvn:
È una prescrizione? Questo tipo di cose aiuta? Appena aggiornato dal repository al mattino, poi ha lavorato per mezza giornata e qui a fissare tale errore#170004.
Beh, se dice che il repository non è aggiornato, allora è logico cercare di aggiornarlo.
 
TheXpert:
Beh, se dice che il repository non è aggiornato, allora è logico cercare di aggiornarlo.
Sembra che un altro computer abbia aggiornato il mio repository mentre stavo lavorando. Naturalmente ho provato ad aggiornare dopo che si è verificato l'errore. Non ha aiutato.
 

Più che altro una domanda:

Cercare un GV esistente del terminale per nome. Attraverso di esso l'ID del grafico su cui sta girando l'EA viene passato all'indicatore. L'indicatore pende da un altro simbolo. Cioè, voglio passare all'indicatore l'ID del grafico su cui sta girando l'Expert Advisor. Lo sto cercando così:

   for(int i=0; i<GlobalVariablesTotal(); i++) {
      string gv_name=GlobalVariableName(i);
      if(StringFind(gv_name,"Multick")<0) continue;
      if(StringFind(gv_name,"chart_id")>0) {
         Print("Нашли такую переменную: "+gv_name);
         string xxx=IntegerToString(long(GlobalVariableGet(gv_name)));
         Print("Значение в ней = "+xxx);
         }
      }
   //2014.07.05 01:54:06.111    ChartsAgent NZDUSD,H1: ID главного = 130392553686025168
   //                                                а истинный ID = 130392553686025170

Questo è ciò che mi dice il terminale:


Ho provato a leggere la variabile. L'ho messo direttamente nella stringa e l'ho messo nel diario, così come in variabili di diversi tipi - tutto uguale. Sono due cose diverse.

Cosa c'è che non va?

 
artmedia70:

Più che altro una domanda:

Cosa c'è che non va?

Mi piacerebbe anche vedere il codice che scrive sulla variabile (specialmente quando e quanto spesso accade).
 
marketeer:
Mi piacerebbe anche vedere il codice che scrive sulla variabile (specialmente quando e quanto spesso accade).

Semplice. In OnInit()

   symbol=Symbol();
   tf=Period();
   other.initNames(symbol,tf,Prefix,Magic);  // Создаём префикс и магик

// -------------------------------------------------------------

//----------------------------
   string gv_chart_id_name=Prefix+"_chart_id";
   long chart_id=get.GetChartID(symbol);
   if(chart_id>=0) GlobalVariableSet(gv_chart_id_name,chart_id); // chart_id==0 в тестере
   else graph.Message("Чё-та нету chart_id : Symbol()="+symbol+", chart_id="+IntegerToString(chart_id));
//----------------------------

// -------------------------------------------------------------

//+------------------------------------------------------------------+
   void COtherClass::initNames(string sy, int timeframe, string &prefix, int &mn) {
      string postf="_r", nm=WindowExpertName();
      if(IsDemo()) postf="_d";
      if(IsTesting()) postf="_t";
      if(IsVisualMode()) postf="_v";
      if(IsOptimization()) postf="_o";
      prefix=nm+"_"+sy+"-"+get.GetNameTF(timeframe)+postf;  
      mn=GetMagic(nm+sy,Period()); 
      }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
   long CGetDataClass::GetChartID(string sy) {
      long id=-1, currChart,prevChart=ChartFirst();
      int i=0,limit=300;
      if(ChartSymbol(prevChart)==sy) id=prevChart;
      else {
         while(i<limit) {
            currChart=ChartNext(prevChart); 
            if(currChart<0) break;          
            if(ChartSymbol(currChart)==sy) {
               id=currChart;
               break;
               }
            prevChart=currChart;
            i++;
            }
         }
      return(id);
   }
//+------------------------------------------------------------------+

Qualcosa come questo ...