Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 421

 

Hallo. Wie finde ich den Preis des Objekts heraus, das dem aktuellen Preis am nächsten kommt, indem ich den Teil des Namens, der mit "R" beginnt, verwende?

Die Objekte sind horizontale Balken (OBJ_TREND) mit den Namen "R 11", "R 7"...

... zeigt nichts dergleichen.

priceR = ObjectGet("R"+"" ,OBJPROP_PRICE1);

.

 
lil_lil:

Hallo. Wie findet man ein Objekt anhand des Teils des Namens, der mit "R" beginnt?

es findet es nicht auf diese Weise.

.

Die Hilfe sagt:

StringFind

Suche nach einer Teilzeichenkette in einer Zeichenkette.

intStringFind(
stringstring_value, // gesuchter String
stringmatch_substring, //Gesucht
intstart_pos=0// an welcher Position die Suche beginnen soll
);

Parameter

string_value

[in] Zeichenfolge, in der gesucht werden soll.

match_substring

[in] Zu durchsuchende Teilzeichenkette Match_substring.

start_pos=0

[in] Position in der Zeichenkette, an der die Suche beginnen soll.

Zurückgegebener Wert

Gibt die Positionsnummer in der Zeichenkette zurück, an der die zu suchende Teilzeichenkette beginnt, oder -1, wenn keine Teilzeichenkette gefunden wird.

 
Artyom Trishkin:

Der Hinweis lautet:



Danke, aber in welcher Zeile suchen wir?

 
lil_lil:

Danke, aber in welcher Zeile suchen wir?

Name des Objekts.
 
Artyom Trishkin:
Name des Objekts.
"Zu durchsuchende Zeichenfolge" - was soll ich hier schreiben?
priceR = ObjectGet(StringFind( 1,"R",0) ,OBJPROP_PRICE1);

. es gibt nichts.

 
Was, und in welchem Fall, gibt StringFind() zurück? Ich habe einen vollständigen Verweis auf die Funktion in der Hilfe gegeben (obwohl die Hilfe im MetaEditor direkt zur Verfügung steht - einfach den Cursor auf die Funktion setzen und F1 drücken)
 
Artyom Trishkin:
Was, und in welchem Fall, gibt StringFind() zurück? Ich habe eine vollständige Fußnote zu der Funktion aus der Hilfe gegeben (obwohl die Hilfe im MetaEditor direkt zur Verfügung steht - setzen Sie einfach den Cursor auf die Funktion und drücken Sie F1).
Die Hilfe ist offen, ich verstehe nicht, in welcher Zeile ich suchen soll, es ist noch nichts bekannt, außer dass der Name ein "R" enthält.
 
lil_lil:
Die Hilfe ist offen, ich verstehe nicht, in welcher Zeile ich suchen soll, es ist noch nichts bekannt, außer dass ein "R" im Namen steht.

//--- показываем список объектов 
int obj_total=ObjectsTotal();
string name;

for(i=0;i<obj_total;i++)
  {
   name=ObjectName(i);
   if(ObjectType(name)!=OBJ_TREND) continue;
   if(StringFind(name,"R",0)!=-1)
     {
     priceR = ObjectGet(name ,OBJPROP_PRICE1);
     }
  }

Zum Beispiel so.

 
Alekseu Fedotov:

Das war's.


Ich danke Ihnen.

 

Grüße. Hilfe erhält einen Volumenrückgabefehler:

Ich habe ein Array erstellt. Angebot, Datum und Umfang..:

extern ulong extreme_volume=50;
ulong volume_start=0;
ulong volume_end=0;

ulong mass_volume[];

volume_start=Volume; //Ругается на эту строку


Marks: Ungültiger Array-Zugriff