Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 636

 

Code-Zeile:

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

Warnung:

möglicher Datenverlust durch Typkonvertierung FinBuy1531.mq4 144 7

Ich denke, die Typen entsprechen einander. Was ist hier falsch?

 
hurkin:

Code-Zeile:

Warnung:

möglicher Datenverlust durch Typkonvertierung FinBuy1531.mq4 144 7

Die Typen entsprechen meiner Meinung. Was ist hier los?

Stimmt nicht überein, MarketInfo(...) gibt den Wert vom Typdouble zurück

etwa so:

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

Keine Übereinstimmung, MarketInfo(...) gibt einen Wert vom Typdouble zurück

wie diese:

Beispiel aus dem Verzeichnis:

double vpoint =MarketInfo("EURUSD",MODE_POINT);
int vdigits =MarketInfo("EURUSD",MODE_DIGITS);
Scheint noch etwas anderes falsch zu sein?

 
Shurkin:

Ein Beispiel aus dem Verzeichnis:

double vpoint =MarketInfo("EURUSD",MODE_POINT);
int vdigits =MarketInfo("EURUSD",MODE_DIGITS);
Scheint noch etwas anderes falsch zu sein?

Im Fall von "MODE_DIGITS" liefert "MarketInfo" einen Wert vom Typ "double". Hier scheint es sich um einen Implementierungsfehler von "MarketInfo" zu handeln. Der richtige Weg wäre also:

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

Die letzte Frage!

Es gibtOBJ_LABEL. In Objektbeschreibungen gibt es Text (nicht Name) und Ziffer, die Ziffer ändert sich mit Häkchen.

Wie bekomme ich die Nummer heraus?

 
Top2n:

Die letzte Frage!

Es gibt OBJ_LABEL. In Objektbeschreibungen gibt es Text (nicht Name) und Ziffer, die Ziffer ändert sich mit Häkchen.

Wie bekomme ich die Nummer heraus?

StringFind wird Ihnen helfen. Und dort int StrToInteger oder long StringToInteger
 

Guten Tag. Bitte helfen Sie mir, das Problem zu lösen.

Ich habe den MT4 646th build installiert. Ich habe im Ordner ...\MetaTrader 4 Admiral Markets AS\MQL4\Indikatoren zwei Dateien abgelegt - eine Datei mit Indikatorcode LC-RSI_Histo3.mq4 und eine Datei mit kompiliertem Indikator LC-RSI_Histo3.ex4. Ich lasse den Indikator laufen - er funktioniert. Ich möchte jedoch den Quellcode ändern. Ich öffne den eingebetteten Code-Editor. Das Problem ist, dass nach jeder, auch kosmetischen Änderung des Codes (z. B. Hinzufügen eines Leerzeichens) und der anschließenden Kompilierung der Indikator nach dem Start nicht mehr richtig funktioniert - alle Spalten zeigen denselben Wert:

Die kompilierte .ex4-Datei (angehängt mit dem Namen LC-RSI_Histo3_1.ex4) wiegt viel mehr als das Original (in den Ordner kopiert).

Was ist der Grund dafür? Wie kann man sie korrigieren?

[Gelöscht]  

Hallo zusammen!

Helfen Sie mir bei diesem Fehler: "Nicht genug Rechte" oder "Nicht genug Rechte" Code #7

Was passiert: Ein Expert Advisor auf einem EURCHFX M1-Paar kann keine Position öffnen, dieser Fehler erscheint (gefunden im Journal), aber gleichzeitig öffnet er ohne Probleme auf anderen Paaren und EURCHF M5. Es lässt sich problemlos von Hand öffnen. Bei einem anderen Makler funktioniert es. Was könnte das Problem sein?

Ich danke Ihnen im Voraus für Ihre Hilfe.

 
AlexeyVik:
StringFind ist Ihr Leitfaden. Und dann int StrToInteger oder long StringToInteger


Diese Funktion gibt die Anzahl der Positionen im Zeitrahmen zurück, nicht die Zahl selbst.

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

Nehmen wir an, ich habe die Positionsnummer, wie komme ich dann an diese Position?

 
Boeing747:

Hat jemand ein Stück Code für ein Beispiel, wo Elemente eines String-Arrays in alphabetischer Reihenfolge gruppiert werden?

vielen Dank im Voraus.


   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]);

Ein weiteres Beispiel für angewandte Aufgaben

   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]);