Fehler, Irrtümer, Fragen - Seite 611

 
x100intraday:

Ich habe Angst, mir vorzustellen, wie. Eigentlich brauche ich eine flexible Variante, ich brauche nicht einen String in unveränderter Form, sondern mehrere verschiedene Strings, die in einer Schleife gebildet werden... Wenn es möglich ist, würde ich gerne ein genaueres Beispiel sehen...

...

Sie können auch kompliziertere Bedingungen in #define in einer Zeile zusammenfassen:

#define LOG(text,logs,html,type,spc,style)  if(type){if(logs){okLOG(text,spc);}if(html){okHTML(text,spc,style);}}  if(!type){if(logs){erLOG(text,spc);}if(html){erHTML(text,spc,style);}}

Ich weiß nicht, wie Sie Ihr Problem lösen können, ich habe es nicht versucht. Ich werde experimentieren müssen... ))

Vielleicht können Sie mehrere #define's auf diese Weise bilden und dann in einer Schleife auswählen, was Sie benötigen.

Von String bis Enum können Sie die Funktion mit Schalter im Voraus vorbereiten. Aber Sie können eine sehr große Anzahl von Optionen haben, anscheinend wird auch diese Methode nicht funktionieren...

Oh, hier ist eine weitere Möglichkeit! Sie können eine mqh-Datei erzeugen, die mit der Hauptdatei verbunden ist. Das heißt, es sollte eine Funktion geben, die eine Zeichenkette annimmt und dann eine mqh-Datei erzeugt. Die Datei wird immer wieder überschrieben. Genau so wird es funktionieren.)))

 

tol64, die Option #define lässt mich in kalten Schweiß ausbrechen... Ich bestreite nicht, dass ich wahrscheinlich herausfinden kann, wo ich muss, aber es ist irgendwo in der Olympiade der Programmierung unter Verwendung von Nicht-Standard-Wege - wenn auch nur, um das Ergebnis um jeden Preis zu erreichen. Ich habe die Switch-Methode aus demselben Grund abgelehnt, den ich oben beschrieben habe: Ich möchte keine zusätzlichen großen Codeblöcke für eine ideologisch elementare Aufgabe hinzufügen. Es scheint mir, dass es einen ganz einfachen Standardweg geben sollte... Ansonsten komme ich mir langsam wie ein Hacker vor, der versucht, sich in das System zu hacken und auf raffinierte Weise das gewünschte Ergebnis zu erzielen...

Eine entscheidende Frage liegt in der Luft: Ist es möglich und wie kann man Element für Element auf die Standardliste der gleichen Zeiträume, die Liste der Sichtbarkeit von Objekten in Zeiträumen usw. zugreifen? Bislang muss ich das Array manuell mit roher Gewalt füllen und dann das, was ich brauche, nach Index abrufen:

ENUM_TIMEFRAMES TFsArr[3]={PERIOD_M15, PERIOD_M20, PERIOD_M30);
Wie lange noch! Vielleicht können Sie diese Elemente auf einmal aus dem vordefinierten Array/der vordefinierten Liste herausnehmen? Es ist eine Sache, wenn ich nicht genug Wissen habe... aber ich bin noch nie jemandem begegnet, der auf vordefinierte Ressourcen im Code eines anderen zugreift, ohne vorher das Kissen mit Federkopien auszustopfen...
 
x100intraday:
Wie kann ich im Voraus eine Zeichenfolge mit logischen(?) Aufzählung wie vorbereiten: OBJ_PERIOD_M10| OBJ_PERIOD_H4, um dann nur in ObjectSetInteger () bereit Variable in Form von geklebten String ersetzen? Ich habe versucht, es symbolisch zusammenzukleben und es dann in StringToInteger() zu verpacken, aber es hat nicht funktioniert... WeilOBJ_PERIOD_... - ein Element vom Typ enum ist, aber das Flag hex-Äquivalent vom Typ int hat? Dann sieht diese Aufzählung eher wie eine bitweise ODER-Operation aus...
Man könnte sie einfach zusammenzählen, oder so ähnlich:
ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,(int)OBJ_PERIOD_M10+(int)OBJ_PERIOD_H4);

...d.h. durch Hinzufügen der erforderlichen Enums zur int-Variablen.

 

Unrealistisch große Spreads:

Auf dem AlpariFS-Server GBPUSD 648, USDCHF 110

GBPUSD 168, USDCHF 185 auf dem MQ-Demo-Server

andere Symbole liegen im Rahmen der Norm.

Handelt es sich um eine Besonderheit des dünnen Marktes oder um einen Fehler im MetaTrader 5?

Das Pfund scheint sich inzwischen beruhigt zu haben, aber die Spreads für Canadian und Aussie liegen bei 88 bzw. 61. Der Schweizer steckt immer noch bei einem Spread von 185 Pips fest.

void OnStart()
  {
   while(!IsStopped()){Comment(SymbolInfoInteger(_Symbol,SYMBOL_SPREAD));Sleep(100);}
   Comment("");
  }
 
Swan:
Du kannst sie einfach zusammenzählen, so funktioniert es:

d.h. durch Hinzufügen der gewünschten Enums zur int-Variablen.

Woher nehmen Sie die Enums? Sie sind sozusagen als vordefinierte (reservierte) Wörter/Werte in die Sprache eingebettet. Ich möchte nicht mein eigenes Array mit doppelten Enums haben.
 
x100intraday:

Wie kann ich einer Zeichenkette eine logische(?) Aufzählung voranstellen wie: OBJ_PERIOD_M10| OBJ_PERIOD_H4

Dann sieht diese Aufzählung eher wie eine bitweise OR-Operation aus...

Es sieht nicht so aus, es ist, was es ist.

Woher nehmen Sie die Enums? Sie sind sozusagen in Form von vordefinierten (reservierten) Wörtern/Werten in die Sprache eingebettet.

Natürlich von den Enums, schauen Sie in der Hilfe nach.

Ich möchte nicht mein eigenes Array mit doppelten Enums erstellen.

müssen Sie zumindest etwas haben... Enums, Arrays, Defines.

sonst kommen Sie nicht weiter

 
sergeev:

Es sieht nicht so aus, es ist, was es ist.

von den Enums, natürlich. Schlagen Sie es in der Hilfe nach.

Sie müssen etwas dagegen tun: Enums, Arrays, Defines.

Sie werden nicht weiter kommen als das.

Wenn Sie damit anfangen wollen, ist das in Ordnung, es ist bereits erledigt. Aber warum können wir nicht auf den Bestand an Listenelementen zugreifen, der in der Sprache in Form von vordefinierten Namen und Konstanten eingebettet ist? Irgendwo haben die Entwickler all diese Aufzählungen versteckt...
 
x100intraday:
Woher nehmen Sie die Enums? Sie sind sozusagen als vordefinierte (reservierte) Wörter/Werte in die Sprache eingebettet. Ich möchte nicht mein eigenes Array mit doppelten Enums erstellen.

verstehe die Frage nicht)

ENUMs = Ganzzahlen, kein vordefiniertes Array/Liste.

 
Swan:

verstehe die Frage nicht)

ENUM_es = ganze Zahlen, kein vordefiniertes Array/Liste.

ENUM_y = ist eine Aufzählung. Eine vordefinierte Liste.
 
x100intraday:
Aber warum können wir nicht auf ein Repository von Listenelementen zugreifen, das in Form von vordefinierten Namen und Konstanten in die Sprache eingebettet ist? Wo haben die Entwickler all diese Aufzählungen untergebracht...

Sie verwenden dieselben ENUM_TIMEFRAMES, was geht Sie das an?