Fehler, Irrtümer, Fragen - Seite 2656

 
Andrey Khatimlianskii:

Geben Sie Einzelheiten zur Reproduktion an. Vielleicht ist ja jemand interessiert. Diese Möglichkeit besteht überhaupt nicht.

Code, Werkzeug, Testparameter.

Ich habe das Werkzeug oben bereits 2 Mal erwähnt, wie auf dem Bild zu sehen ist. Jeder Code im MOEX-Aktienbereich führt zu diesem Ergebnis. Auch beliebige Einstellungen, aber das Eigenkapital wird nur richtig angezeigt, wenn die Berechnungsmethode geändert wird.
 
Andrey Khatimlianskii:

Geben Sie Einzelheiten zur Reproduktion an. Vielleicht ist ja jemand interessiert. Diese Möglichkeit besteht überhaupt nicht.

Code, Werkzeug, Testparameter.

Bitte



 

Die Möglichkeit, den regulären Mauszeiger programmatisch ohne eine DLL zu ändern, fehlt sehr.

Oder einfach die Möglichkeit, das Rendering der normalen Maus zu deaktivieren.

 

Die Hilfe für EventChartCustom () sagt:

sparam

[in] Ereignisparameter vom Typ String, der an die Funktion OnChartEvent übergeben wird. Wenn die Zeichenfolge länger als 63 Zeichen ist, wird sie abgeschnitten.

Eine 96 Zeichen lange Zeichenkette wird jedoch erfolgreich übergeben, hat sich etwas geändert?

Hier verschlüssele ich die Zeichenfolge und übergebe sie im Ereignis und entschlüssele sie erfolgreich, die Zeichenfolge wird nicht abgeschnitten, wie in der Hilfe angegeben, und das ist in Ordnung (erste Zeichenfolge verschlüsselt gefolgt von entschlüsselt):

2020.02.26 14:36:10.949 iSpy (EURUSD,H1) 38CFD250C299F2420D5AFB1D070196F2F9246A164C2B1905C3921E466D6124306D836A2A09D4A06DD4B02FBDD1DE6857

2020.02.26 14:36:10.949 iSpy (EURUSD,H1) EURUSD:1.08753:1.0875:0.0:1582716971862:0.0

2020.02.26 14:36:16.391 iSpy (EURUSD,H1) 2588EC84729FA3BFE07B09BCB13832AF026A4F9DEA5634477EFF2C1FCAC355A35A67EDC5D5A8621570D3EBF80A7A942A

2020.02.26 14:36:16.391 iSpy (EURUSD,H1) EURUSD:1.08752:1.08749:0.0:1582716977068:0.0


Wie lang ist die Zeichenkette, die in dem Ereignis übertragen werden kann, ohne dass sie in der Realität abgeschnitten wird?


 
Andrey Dik:

Die Hilfe für EventChartCustom () sagt:

sparam

[in] Ereignisparameter vom Typ String, der an die Funktion OnChartEvent übergeben wird. Wenn die Zeichenfolge länger als 63 Zeichen ist, wird sie abgeschnitten.

Eine Zeichenkette mit einer Länge von 96 Zeichen wird jedoch erfolgreich übergeben, hat sich etwas geändert?

128 Bytes. Das sind 127 uchar-Zeichen, oder 63 ushort-Zeichen.

 

Wie kann man so etwas in MQL implementieren?

#include <Controls\Button.mqh>

  class Collection
  {
    protected:
      int size;

    public:
      Collection(CWnd &refs[]) { size = ArraySize(refs); }
  };


void OnStart()
{
  CButton buttons[];
  CWnd wnd[];
  Collection data1(wnd);     // ok
  Collection data2(buttons); // error
  // 'buttons' - parameter conversion not allowed
  // 'buttons' - variable of the same type expected
}
?
 
fxsaber :

128 Bytes. Das sind 127 uchar-Zeichen bzw. 63 ushort-Zeichen.

Dies sind tatsächlich 160 Bytes.


Dateien:
 
Stanislav Korotky:

Wie kann man so etwas in MQL implementieren?

?
Erben von CButtons von CWnd
Wenn jedes von ihnen von einem CObject geerbt wird, dann:
Collection(CObject &refs[]) { size = ArraySize(refs); }
 

Liebe Entwickler, ist es möglich, die UTM-Tags zu ändern?


Oder können Sie die Tags in die richtige Reihenfolge bringen?

utm_campaign=mt4terminal

utm_source=properties.indicator

utm_medium=IndikatorName

utm_term=IndikatorVersion

utm_content=Jahr


Jetzt sind die aktuellen UTM-Tags nicht informativ...

Finteza panel: website analytics and advertising management
Finteza panel: website analytics and advertising management
  • panel.finteza.com
Real-time unsampled analytical data, traffic attribution and quality evaluation, creation of conversion funnels and targeted advertising in apps and websites
 
Artyom Trishkin:
Erben von CButtons von CWnd
Oder handelt es sich um Klassenobjekte der Standardbibliothek?
Wenn jedes von ihnen von CObject geerbt wird, dann:

Das ist die Sache, der Klassenbaum hat einen gemeinsamen Knoten CWnd (CObject ist weiter weg, im Allgemeinen an der Wurzel).

CButton -> CWndObj -> CWnd -> CObject.

Wenn Sie den Parameter in der Methode in CObject ändern, erhalten Sie 2 mal mehr Fehler:

'wnd' - parameter conversion not allowed
'wnd' - variable of the same type expected
'buttons' - parameter conversion not allowed
'buttons' - variable of the same type expected

Eine ähnliche Klassenhierarchie gilt für den Fall, dass es sich nicht um ein Array handelt. Hier ist der kompilierte Code:

#include <Controls\Button.mqh>

  class Collection
  {
    protected:
      int size;

    public:
      Collection(CWnd &object) { size = 1; }
  };


void OnStart()
{
  CButton button1;
  CWnd wnd1;
  Collection data1(wnd1);     // ok
  Collection data2(button1);  // ok
}

Die Frage ist, wie man das auch für ein Array hinbekommt?

Ich weiß, dass eine Vorlage hilfreich ist, aber ich möchte es einfach vermeiden.

IMHO sollte es ohne Vorlagen durch Vererbungsrecht funktionieren.

Ich habe es wie in C++ überprüft.

class CWnd
{
  public:
    int x;
    CWnd(int _x = 0): x(_x){}
};
class CButton: public CWnd
{
  public:
    CButton(): CWnd(10) {}
};

class Collection
{
  public:
    Collection(CWnd (&ptrs)[1]) { cout << ptrs[0].x; }
};


int main()
{
  CButton buttons[1];
  CWnd wnd[1];
  Collection data1(wnd);
  Collection data2((CWnd (&)[1]) buttons);
  return 0;
}

Es funktioniert. Aber MQL verdaut sie nicht, weder mit noch ohne den Index.

Grund der Beschwerde: