Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 284

 
barabashkakvn:
Die laufende Nummer in "Market Watch" oder der aktuelle Preis?

Die laufende Nummer in Market Watch.

Ich weiß, wie man mit SymbolInfoString eine Zeichenfolgenbeschreibung eines Symbols erhält, aber ich kann die Nummer nirgends finden (:

 
Crucian:

Eine Seriennummer in der Marktübersicht.

Erste

int  SymbolsTotal(
   bool  selected      // true – только символы в MarketWatch
   );

dann

string  SymbolName(
   int   pos,          // номер в списке
   bool  selected      // true – только символы в MarketWatch
   );

und sobald SymbolName==Ihr Symbol ist, wissen Sie seine Position.

 
barabashkakvn:

Erste

dann

und sobald SymbolName==Ihr Symbol ist, wissen Sie seine Position.

Ich danke Ihnen!

Aber aus irgendeinem Grund funktioniert es nicht, pos immer = 0. Vielleicht mache ich etwas falsch, ich werde es morgen früh herausfinden :).

 
Crucian:

Ich danke Ihnen!

Aber aus irgendeinem Grund funktioniert es nicht, ros immer = 0. Vielleicht mache ich etwas falsch, ich werde es morgen früh herausfinden :).

In SymbolName übergeben Sie pos und überprüfen die Ausgabe auf strung Parameter.
 
Crucian:

Ich danke Ihnen!

Aber aus irgendeinem Grund funktioniert es nicht, ros immer = 0. Vielleicht mache ich etwas falsch, ich werde es morgen früh herausfinden :).

//+------------------------------------------------------------------+
   int PositionsSymbolInList(string sy) {
      for(int i=0; i<SymbolsTotal(false); i++) {
         string symbol_name=SymbolName(i,false);
         if(sy==symbol_name) return i;
         }
      return -1;
   }
//+------------------------------------------------------------------+
 
Crucian:

Ich danke Ihnen!

Aber aus irgendeinem Grund funktioniert es nicht, ros immer = 0. Vielleicht mache ich etwas falsch, ich werde es morgen früh herausfinden :).

//+------------------------------------------------------------------+
int IndexSymbolInMarketWatch(string sy)
  {
   for(int i=SymbolsTotal(true)-1; i>=0; i--)
     {
      if(SymbolName(i,true)==sy)
         return (i);
     }
   return (-1);
  }
//+------------------------------------------------------------------+
 
artmedia70:

Danke, Ihr Code funktioniert, aber der Code paladin800 nicht (.

Aber es gibt keine Reihenfolge in den Zahlen. Zum Beispiel EUR=21, GBP=28, CHF=36, JPY=40, EUR/JPY=16. Sollte es so sein?

 
Crucian:

Danke, dass Ihr Code funktioniert, aber der Code paladin800 funktioniert aus irgendeinem Grund nicht (.

Aber es gibt keine Reihenfolge in den Zahlen. Zum Beispiel EUR=21, GBP=28, CHF=36, JPY=40, EUR/JPY=16. Ist das so gewollt?

SymbolsTotal(false)

Es handelt sich um eine Suche in der Liste der verfügbaren Symbole, wenn ja, dann nur die in Market Watch ausgewählten.

Die Reihenfolge, in der sie in der Liste der verfügbaren Symbole stehen, ist die Reihenfolge, in der die Indizes zurückgegeben werden. Wenn Sie hingegen von der Liste in MarketWatch ausgehen (falls zutreffend), dann hängen die Indizes von der Sortierung der Symbole (sie können mit der Maus gezogen und fallen gelassen werden) in Market Watch ab, was nicht immer bequem ist - es besteht eine Abhängigkeit von den "bösen Stiften des Benutzers".

 

Eine weitere Frage.

Beim Kompilieren von MetaEditor wurde eine Warnung angezeigt:

Rückgabewert von'OrderSend' sollte überprüft werden Bollinger_Bands_strategy_4.mq5 690 7

Ich prüfe das Ergebnis nach dem Absenden der Anfrage:

           OrderSend(mrequest,mresult);
            if(mresult.retcode==10009 || mresult.retcode==10008)
              { 
             
               Print("Set pending order SellStop"  );
               ModificationPosition=0;
            }else
              {
               Print(ResultRetcodeDescription(mresult.retcode));
               return;
              }

Oder ist das nicht genug? Was will MetaEditor?

 
Crucian:

Eine weitere Frage.

Beim Kompilieren hat MetaEditor begonnen, eine Warnung anzuzeigen:

Rückgabewert von 'OrderSend' sollte geprüft werden Bollinger_Bands_strategy_4.mq5 690 7
(Der Rückgabewert von "OrderSend" sollte überprüft werden)

Ich prüfe das Ergebnis nach dem Senden einer Abfrage:

Oder ist das nicht genug? Was will MetaEditor?

if(OrderSend(...))

Oder

bool res=OrderSend(...);

Nein, mein Fehler. Ich schlafe schon. Das bin ich aus Gewohnheit von meinen Funktionen der Klassen... Obwohl es für mql4 ist, wie in Five - keine Ahnung... :)

int ticket=OrderSend()
Grund der Beschwerde: