Discusión sobre el artículo "Desarrollamos un Asesor Experto multidivisas (Parte 2): Transición a posiciones virtuales de estrategias comerciales" - página 6

 

Foro sobre negociación, sistemas automatizados de negociación y prueba de estrategias de negociación

Discusión del artículo "Desarrollo de un Asesor Experto multidivisa (Parte 2): Pasando a estrategias de trading con posiciones virtuales"

fxsaber, 2024.02.12 17:33

Su arquitectura es algo diferente a la mía

//+------------------------------------------------------------------+
//| Constructor|
//+------------------------------------------------------------------+
CSimpleVolumesStrategy::CSimpleVolumesStrategy( const string sInputs ) : CStrategy(sInputs)
{
   this.Input = sInputs;

   ArrayResize(m_orders, this.Input.maxCountOfOrders);

   // Cargar el indicador para obtener volúmenes de ticks
   iVolumesHandle = iVolumes(this.InputStrategy.symbol, this.InputStrategy.timeframe, VOLUME_TICK);

// Establecer el tamaño del array-receptor de volúmenes tick y el direccionamiento requerido
   ArrayResize(volumes, this.Input.signalPeriod);
   ArraySetAsSeries(volumes, true);
}

Yo no uso inputs de la clase padre. Todas mis entradas son privadas y por lo tanto pueden tener el mismo nombre. Esto resulta en una fuerte universalización: el mismo código, que se oculta en una macro común. Pero así es como es para mí.

 
Yuriy Bykov #:

Creo que esta tampoco es la versión final, ya que te has centrado en aquellos escenarios de uso en parámetros en código que ya han sido publicados. En lo que respecta al ensamblaje de parámetros en conjuntos, y más aún al ensamblaje automático en conjuntos, probablemente encontrarás que también puedes mejorar/simplificar.

Tienes razón. Lo hice de esta manera.
expert.Add(new CSimpleVolumesStrategy(inInputsAll));
Es una variable de cadena global, en la que todas las variables de entrada son automáticamente (y creadas). Es decir, cualquier objeto que se cree, esta variable es siempre de entrada.
 
fxsaber #:
Tienes razón. Lo hice de esta manera. Esta es una variable-cadena global en la que todas las variables de entrada son automáticamente (y creadas). Es decir, no importa qué objetos se crean, esta variable es siempre de entrada.

Por si acaso te recuerdo que las entradas de cadena son recortadas en 63 caracteres por el optimizador.

 
Stanislav Korotky #:

Por si acaso, le recuerdo que las entradas de cadenas son recortadas en 63 caracteres por el optimizador.

Gracias. No es una entrada, por lo que la longitud no está limitada.

string inInputsAll = NULL;
 

Foro sobre negociación, sistemas automatizados de negociación y ensayo de estrategias de negociación

Discusión del artículo "Desarrollo de un Asesor Experto multidivisa (Parte 2): Pasando a estrategias de negociación de posiciones virtuales"

fxsaber, 2024.02.14 11:36 AM

Tienes razón. Lo hice de esta manera.
expert.Add(new CSimpleVolumesStrategy(inInputsAll));
Se trata de una variable global de tipo cadena en la que se introducen (y crean) automáticamente todas las variables de entrada. Es decir, cualquier objeto que no se cree, esta variable siempre se introduce en la entrada.

Adjunto.

Archivos adjuntos:
 

Hola,

im en una curva de aprendizaje empinada de OOP. Este seguimiento del artículo anterior ha sido muy útil.

Todavía trabajando a través de él. Thank you.

 
Hola, no puedo ver las capturas de pantalla. ¿Puedes adjuntarlas de nuevo?