Errori, bug, domande - pagina 2656

 
Andrey Khatimlianskii:

Fornire dettagli per la riproduzione. Forse qualcuno sarà interessato. Non c'è alcuna possibilità di farlo.

Codice, strumento, parametri di prova.

Ho già menzionato lo strumento 2 volte sopra, come mostrato nell'immagine. Qualsiasi codice nella sezione delle azioni MOEX dà questo risultato. Anche qualsiasi impostazione, ma l'equità viene visualizzata correttamente solo quando si cambia il metodo di calcolo.
 
Andrey Khatimlianskii:

Fornire dettagli per la riproduzione. Forse qualcuno sarà interessato. Non c'è alcuna possibilità di farlo.

Codice, strumento, parametri di prova.

Per favore



 

Manca molto la possibilità di cambiare il normale puntatore del mouse programmaticamente senza una DLL.

O semplicemente la possibilità di disabilitare il rendering del mouse normale.

 

L'aiuto per EventChartCustom () dice:

sparam

[in] Parametro dell'evento di tipo stringa, passato alla funzione OnChartEvent. Se la stringa è più lunga di 63 caratteri, la stringa viene troncata.

Tuttavia, una stringa lunga 96 caratteri viene passata con successo, è cambiato qualcosa?

Qui, cripto la stringa e la passo nell'evento, e la decripto con successo, la stringa non è troncata come indicato nella guida e va bene (prima stringa criptata seguita da quella decriptata):

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


Quanto è lunga la stringa che può essere trasferita nell'evento senza essere troncata nella realtà?


 
Andrey Dik:

L'aiuto per EventChartCustom () dice:

sparam

[in] Parametro dell'evento di tipo stringa, passato alla funzione OnChartEvent. Se la stringa è più lunga di 63 caratteri, la stringa viene troncata.

Tuttavia, una stringa di lunghezza 96 caratteri viene passata con successo, è cambiato qualcosa?

128 byte. Si tratta di 127 caratteri uchar, o 63 caratteri ushort.

 

Come implementare una cosa del genere in MQL:

#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 byte. Si tratta di 127 caratteri uchar, o 63 caratteri ushort.

Questo è in realtà 160 byte.


File:
 
Stanislav Korotky:

Come implementare una cosa del genere in MQL:

?
Eredita CButtons da CWnd
O sono oggetti di classi di libreria standard?
Se ognuno di essi è ereditato da un CObject, allora:
Collection(CObject &refs[]) { size = ArraySize(refs); }
 

Cari sviluppatori, è possibile cambiare i tag UTM in qualche modo?


O puoi mettere i tag in ordine?

utm_campaign=mt4terminal

utm_source=proprietà.indicatore

utm_medium=indicatorName

utm_term=indicatoreVersione

utm_content=Anno


Ora gli attuali tag UTM non sono informativi...

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:
Eredita CButtons da CWnd
O sono oggetti di classe della libreria standard?
Se ognuno di essi è ereditato da CObject, allora:

Questo è il punto, l'albero delle classi ha un nodo comune CWnd (CObject è più lontano, generalmente alla radice).

CButton -> CWndObj -> CWnd -> CObject.

Se si cambia il parametro nel metodo in CObject, si ottengono 2 volte più errori:

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

Una gerarchia di classi simile funziona per il caso non-array. Ecco il codice compilato:

#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
}

La domanda è come farlo funzionare anche per un array?

So che un modello aiuta, ma voglio solo evitarlo.

IMHO, dovrebbe funzionare senza modelli per diritto di eredità.

L'ho controllato come in C++.

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;
}

Funziona. Ma MQL non lo digerisce sia con che senza l'indice.