Errores, fallos, preguntas - página 2656

 
Andrey Khatimlianskii:

Indique los detalles para la reproducción. Tal vez a alguien le interese. No hay ninguna posibilidad de eso.

Código, herramienta, parámetros de prueba.

Ya he mencionado la herramienta 2 veces más arriba, como se muestra en la imagen. Cualquier código en la sección de acciones del MOEX da este resultado. Cualquier configuración, también, pero la equidad sólo se muestra correctamente cuando se cambia el método de cálculo.
 
Andrey Khatimlianskii:

Indique los detalles para la reproducción. Tal vez a alguien le interese. No hay ninguna posibilidad de eso.

Código, herramienta, parámetros de prueba.

Por favor,



 

Se echa mucho en falta la posibilidad de cambiar el puntero del ratón normal de forma programada sin necesidad de una dll.

O simplemente la posibilidad de desactivar la representación del ratón normal.

 

La ayuda de EventChartCustom () dice:

sparam

[in] Parámetro de evento de tipo cadena, pasado a la función OnChartEvent. Si la cadena tiene más de 63 caracteres, la cadena se trunca.

Sin embargo, se pasa con éxito una cadena de 96 caracteres, ¿ha cambiado algo?

Aquí, cifro la cadena y la paso en el evento, y la descifro con éxito, la cadena no se trunca como se indica en la ayuda y está bien (primero la cadena cifrada y luego la descifrada):

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


¿Qué longitud tiene la cadena que se puede transferir en el evento sin que se trunque en la realidad?


 
Andrey Dik:

La ayuda de EventChartCustom () dice:

sparam

[in] Parámetro de evento de tipo cadena, pasado a la función OnChartEvent. Si la cadena tiene más de 63 caracteres, la cadena se trunca.

Sin embargo, una cadena con longitud de 96 caracteres se pasa con éxito, ¿ha cambiado algo?

128 bytes. Son 127 caracteres uchar, o 63 caracteres ushort.

 

Cómo implementar tal cosa en 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 bytes. Son 127 caracteres uchar, o 63 caracteres ushort.

En realidad son 160 bytes.


Archivos adjuntos:
 
Stanislav Korotky:

Cómo implementar tal cosa en MQL:

?
Heredar CButtons de CWnd
¿O son objetos de clases de la biblioteca estándar?
Si cada uno de ellos se hereda de un CObject, entonces:
Collection(CObject &refs[]) { size = ArraySize(refs); }
 

Estimados desarrolladores, ¿es posible cambiar las etiquetas UTM?


¿O puede poner las etiquetas en orden?

utm_campaign=mt4terminal

utm_source=propiedades.indicador

utm_medium=nombredelindicador

utm_term=indicadorVersión

utm_content=Año


Ahora las etiquetas UTM actuales no son informativas...

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:
Heredar CButtons de CWnd
¿O son objetos de clase de la biblioteca estándar?
Si cada uno de ellos es heredado de CObject, entonces

Esa es la cuestión, el árbol de clases tiene un nodo común CWnd (CObject está más lejos, generalmente en la raíz).

CButton -> CWndObj -> CWnd -> CObject.

Si cambias el parámetro en el método a CObject, obtienes 2 veces más errores:

'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 jerarquía de clases similar funciona para el caso de las no matrices. Aquí está el código compilado:

#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 cuestión es cómo hacer que funcione también para una matriz.

Sé que una plantilla ayuda, pero quiero evitarlo.

En mi opinión, debería funcionar sin plantillas por derecho de herencia.

Lo he comprobado como en 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;
}

Funciona. Pero MQL no lo digiere tanto con el índice como sin él.