Fehler, Irrtümer, Fragen - Seite 1218

 
sanyooooook:

Die Sache ist die:

...

Mein Ergebnis ist höher.

P.S. Bei Ihnen ist es allerdings etwas schwieriger zu reproduzieren. Ich werde es später ausprobieren.

 

aber so wie es ist:

1. ich öffne ein neues Diagramm

2. ein Objekt erstellen

3. Kopieren Sie den Objektnamen aus dem Code

4. Ändern Sie den Objektnamen durch Kopieren

5. Führen Sie das Skript aus:

void OnStart()
  {
//---
   Print(ObjectFind(0,"UP_Line"));
   if(ObjectFind(0,"UP_Line")==0)
   {
      Print(3);
      //Pos_Buy=ObjectGetValueByShift("UP_Line",0);
   }   
  }

6. bekomme ich:

ALLES!!!

 

und früher (in älteren Builds) konnten die Namen "UP_Line" und "UP_line" einander gleich sein

 
sanyooooook:

Es stellt sich heraus, dass die Namen früher lauteten:

UP_Line und UP_line waren gleichberechtigt nebeneinander.

War das das Problem?

Verwenden Sie dies in MQL4:

#property strict
 
tol64:

War das das Problem?

Verwenden Sie dies in MQL4:

Der Code ist alt, ich habe nichts daran geändert.

Alles funktionierte einwandfrei, aber heute tauchte die Meldung auf

 
tol64:

War das das Problem?

Verwenden Sie dies in MQL4:

und es wurden keine Fehler gefunden, denn der Fehler ist nicht syntaktisch, sondern logisch, oder vielmehr lag der Grund in unterschiedlichen Objektnamen ("Line" und "line"), die aus irgendeinem Grund gleich waren.
 
sanyooooook:
und dies hat keine Fehler ergeben, da der Fehler nicht syntaktisch, sondern logisch ist, oder vielmehr der Grund in unterschiedlichen Objektnamen ("Line" und "line") lag, die aus irgendeinem Grund gleich waren.
Daher sollten Objektnamen in Variablen gespeichert werden. )))
 
tol64:
Daher sollten Objektnamen in Variablen gespeichert werden. )))

Dies schützt nicht vor einem solchen Fehler )

HH: Nein, das tut es tatsächlich,

aber zu der Zeit, als dieser Code geschrieben wurde, wurde dies nicht berücksichtigt.

 

Fehler in der Dokumentation oder Implementierung von Zeichenkonstanten

https://www.mql5.com/ru/docs/basis/types/integer/symbolconstants

" Zeichenkonstanten.
Jedes einzelne Zeichen in Anführungszeichen oder ein hexadezimaler ASCII-Zeichencode wie '\x10' ist eine Zeichenkonstante und hat den Typ ushort."

template<typename T>
string typeof( T ) { return ( typename( T ) ); }

void OnStart()
{
        Print( typeof( '\x10' ) );
}

Ergebnis: kurz

Dies ist relevant, weil f('x10' ), wenn es überladen ist, dazu führt, dass f( short ) anstelle von f( ushort ) aufgerufen wird - es wird also eine andere Methode/Funktion aufgerufen

Außerdem sind sowohl das Argument als auch das Ergebnis der eingebauten String-Funktion ushort

Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Символьные константы - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Bild 986.

Bei eingeklappten Werkzeugen (Strg-T) ist die Leiste mit der Aufschrift Balance/Ressourcen/Rand verschwunden (ein Doppelklick darauf öffnete das Panel).

Minimiert sieht es nun so aus


Nach oben über den Rand strecken ist möglich, ausdehnen durch Doppelklick auf den Reiter ist nicht möglich, nur zusammenklappen.

Grund der Beschwerde: