una estrategia de negociación basada en la teoría de las ondas de Elliott - página 296

 
Andre69

¿Has probado a manipular los coeficientes de la transformada wavelet?
Terminar con algo como esto:
 
Chicos, trabajad por el bien de la patria, haced ciencia, sacad algo útil, mostrad por fin vuestra ambición
 
Colegas, hay una pequeña pregunta. Cómo decirlo correctamente, ¿es posible ampliar dinámicamente el número de elementos de un array? Por ejemplo, estoy buscando canales estables en alguna zona a partir de la barra cero. No conozco su número desde el principio de la búsqueda y puede que nunca encuentre ninguno. Por la documentación que he leído, creo que he deducido que no se puede. ¿Es esto cierto, o hay una forma más sutil?

PD: Hasta ahora he encontrado varias variantes en MT (MathCAD no tiene ese problema):

(1). Creo un parámetro (int count=0;) hago un bucle por el rango y compruebo los criterios; si los cumple, count=count+1. A continuación, creo un array con el recuento obtenido, y repito todo de nuevo: escribo los parámetros calculados en el array y selecciono el canal óptimo.

(2) Crear una matriz para los parámetros del canal según la longitud del rango original.
 
grasn
... ¿Cómo puedo decirlo correctamente - es posible ampliar dinámicamente el número de elementos en la matriz. Por ejemplo, estoy buscando canales estables en alguna zona de la barra cero. No conozco su número desde el principio de la búsqueda y puede que no encuentre ninguno.

Francamente, la cuestión no está muy clara. El número de elementos de un array (tamaño) se cambia dinámicamente con ArrayResize. Si realmente quieres crear estructuras, se prometen sólo en MT5.
Por pura consonancia de palabras - estaba resolviendo el problema de las propiedades adicionales de los pedidos y no sabía exactamente el número de propiedades (esos 40 indicadores) de antemano también. Se utilizaron tres funciones, pero hubo que añadir manualmente nuevas propiedades a cada una de ellas, con la consiguiente recompilación. No sé si esto es correcto o no, pero por si acaso, aquí está el código de la última versión
//+------------------------------------------------------------------+
//| Изменение размеров массивов свойств ордера                       |
//+------------------------------------------------------------------+
int ResizeOrdArrays() {
  ArrayResize(OrdID,OrdArrSize);
  ArrayResize(OrdTicket,OrdArrSize);
//  ArrayResize(OrdData1,OrdArrSize);
//  ArrayResize(OrdData2,OrdArrSize);
//  ArrayResize(OrdData3,OrdArrSize);
//  ArrayResize(OrdData4,OrdArrSize);
  return(0);
}
//+------------------------------------------------------------------+
//| Добавление ордера в список ордеров                               |
//+------------------------------------------------------------------+
int AddOrder(int ID) {
  OrdInd=OrdNum;
  OrdNum++;
  if (OrdNum > OrdArrSize) {
    OrdArrSize = OrdNum;
    ResizeOrdArrays();
  }
  OrdID[OrdInd] = ID;
  OrdTicket[OrdInd] = ticket;
//  OrdData1[OrdInd] = 123.45;
//  OrdData2[OrdInd] = 123.45;
//  OrdData3[OrdInd] = 123.45;
//  OrdData4[OrdInd] = 123.45;
  return(0);
}
//+------------------------------------------------------------------+
//| Исключение ордера из списка ордеров                              |
//+------------------------------------------------------------------+
int CutOrder() {
  OrdNum--;
  if (OrdInd < OrdNum) {
    OrdID[OrdInd] = OrdID[OrdNum];
    OrdTicket[OrdInd] = OrdTicket[OrdNum];
//    OrdData1[OrdInd] = OrdData1[OrdNum];
//    OrdData2[OrdInd] = OrdData2[OrdNum];
//    OrdData3[OrdInd] = OrdData3[OrdNum];
//    OrdData4[OrdInd] = OrdData4[OrdNum];
  }
  return(0);
}



P.D. Por cierto, he utilizado la misma "estructura" para mis canales.

 
<br / translate="no"> ...El número de elementos de un array (tamaño) se cambia dinámicamente con ArrayResize. ...


¿Cambiar el tamaño de un array ya creado no lo redimensiona a cero?
 
No. Esto se comprueba con una huella.
 
No. Esto se comprueba con una huella. <br / translate="no">


Gracias. Debo haber escrito mal la letra de molde. :о)
 
Hm, hace tiempo que no lo compruebo, pero en primer lugar parece que funciona bien, y en segundo lugar Renat ha asegurado explícitamente que esta propiedad puede considerarse documentada, es decir, que será soportada en todas las nuevas versiones.
 
Confirmado. Si se aumenta el tamaño del array en 1, se añade un nuevo elemento nulo al final del array. Los demás elementos no cambian.
Cuando la matriz se redimensiona, se añade una fila nula a la matriz.
 
Gracias. Se puede decir que he estropeado el código. OK. Esta función lo hace mucho más fácil.