Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 636

 

Linea di codice:

int Dgt=MarketInfo(Symbol(),MODE_DIGITS);

Attenzione:

possibile perdita di dati a causa della conversione del tipo FinBuy1531.mq4 144 7

Penso che i tipi corrispondano l'uno all'altro. Cosa c'è di sbagliato qui?

 
hurkin:

Linea di codice:

Attenzione:

possibile perdita di dati a causa della conversione del tipo FinBuy1531.mq4 144 7

I tipi corrispondono alla mia opinione. Cosa c'è di sbagliato qui?

Non corrisponde, MarketInfo(...) restituisce il valore di tipodouble

qualcosa del genere:

int Dgt=(int)MarketInfo(Symbol(),MODE_DIGITS);
 
r772ra:

Nessuna corrispondenza, MarketInfo(...) restituisce un valore di tipodouble

come questo:

Un esempio dall'elenco:

double vpoint =MarketInfo("EURUSD",MODE_POINT);
int vdigits =MarketInfo("EURUSD",MODE_DIGITS);
C'è qualcos'altro che non va?

 
Shurkin:

Un esempio dall'elenco:

double vpoint =MarketInfo("EURUSD",MODE_POINT);
int vdigits =MarketInfo("EURUSD",MODE_DIGITS);
C'è qualcos'altro che non va?

Nel caso di "MODE_DIGITS", "MarketInfo" restituisce un valore di tipo "double". Qui sembra un errore di implementazione di "MarketInfo". Pertanto, il modo corretto sarebbe:

int Dgt=(int)MarketInfo(Symbol(),MODE_DIGITS);
 

Tutta l'ultima domanda!

C'èOBJ_LABEL. nelle descrizioni degli oggetti, c'è il testo (non il nome) e la cifra, la cifra cambia con i tick.

Come faccio a far uscire il numero?

 
Top2n:

Tutta l'ultima domanda!

C'è OBJ_LABEL. nelle descrizioni degli oggetti, c'è il testo (non il nome) e la cifra, la cifra cambia con i tick.

Come faccio a far uscire il numero?

StringFind vi aiuterà. E lì int StrToInteger o long StringToInteger
 

Buon pomeriggio. Per favore aiutatemi a risolvere il problema.

Ho installato la build 646 di MT4. Ho messo nella cartella ...\MetaTrader 4 Admiral Markets AS\MQL4\Indicators due file - un file con il codice dell'indicatore LC-RSI_Histo3.mq4 e un file con l'indicatore compilato LC-RSI_Histo3.ex4. Eseguo l'indicatore - funziona. Tuttavia, voglio cambiare il codice sorgente. Apro l'editor di codice incorporato. Il problema è che dopo qualsiasi modifica, anche cosmetica, al codice (per esempio, l'aggiunta di uno spazio) e la sua successiva compilazione, l'indicatore dopo l'avvio funziona in modo errato - tutte le sue colonne mostrano lo stesso valore:

Il file .ex4 compilato (allegato con il nome LC-RSI_Histo3_1.ex4) pesa molto di più dell'originale (copiato nella cartella).

Qual è la ragione? Come correggerlo?

 

Ciao a tutti!

Aiutami con questo errore: "Non abbastanza diritti" o "Non abbastanza diritti" codice #7

Cosa succede: un Expert Advisor su una coppia EURCHFX M1 non può aprire una posizione, appare questo errore (trovato nel diario), ma allo stesso tempo, si apre senza problemi su altre coppie e EURCHF M5. Si apre a mano senza problemi. In un altro broker funziona. Quale può essere il problema?

Vi ringrazio in anticipo per il vostro aiuto.

 
AlexeyVik:
StringFind è la vostra guida. E poi int StrToInteger o long StringToInteger


Questa funzione restituisce il numero di posizione nel timeframe, non il numero stesso.

int  StringFind(
   string  string_value,        // строка, в которой ищем
   string  match_substring,     // что ищем
   int     start_pos=0          // с какой позиции начинать поиск
   );

Diciamo che ho il numero di posizione, allora come faccio a ottenere questa posizione?

 
Boeing747:

Qualcuno ha un pezzo di codice per un esempio in cui gli elementi di un array di stringhe sono raggruppati in ordine alfabetico?

grazie in anticipo.


   string w[]={"E","c","f","b","j","R","A","H","a","c"}; // массив для экзекуции
   int size=ArraySize(w);
   string abc[]={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
   string ABC[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
   int c,e,i;

   for(i=0; i<26; i++)
     {
      for(e=c; e<size; e++)
        {
         if(ABC[i]==w[e])
           {
            w[e]=w[c];
            w[c]=ABC[i];
            c++;
           }
         else
           {
            if(abc[i]==w[e])
              {
               w[e]=w[c];
               w[c]=abc[i];
               c++;
              }
           }


        }
     }
   
   Alert(w[0],w[1],w[2],w[3],w[4],w[5],w[6],w[7],w[8],w[9]);

Un altro esempio di compiti applicati

   string w[]={"EURUSD","USDCHF","BRNQ4","AUDUSD","GOLD","AUDCHF","NZDUSD","USDCAD","SILVER","GBPUSD"}; // массив для экзекуции
   int size=ArraySize(w);
   string f=" ";
   string ABC[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
   int c,e,i;

   for(i=0; i<26; i++)
     {
      for(e=c; e<size; e++)
        {
         f=w[e];
         if(ABC[i]==StringSubstr(f,0,1))
           {
            w[e]=w[c];
            w[c]=f;
            c++;
           }
        }
     }

   Alert(w[0],", ",w[1],", ",w[2],", ",w[3],", ",w[4],", ",w[5],", ",w[6],", ",w[7],", ",w[8],", ",w[9]);