Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
en un EA eludiendo la necesidad de valores de entrada para cada indicador.
La alternativa en su backtester es editar manualmente cada indicador
con un buffer de señales .
Intenta esto un poco directo pero el único enfoque posible hasta ahora.
Salidas:
Elementos ENUM:
Count=3
0 x1=-10
1 x2=0
2 x3=11
Es importante especificar valores razonables para los parámetrosstart ystop, ya que el ciclo de valor entero mínimo a máximo (que se utiliza por defecto cuando se omiten los parámetros) se ejecuta demasiadoooo lento teniendo en cuenta que se utilizan funciones de cadena en su interior.
bool AddEnum(ENUMTYPE enumIn) {
enumIn = 0;
//iterate through enum and add as combo box
for(int i = 0; i<sizeof(enumIn); i++, enumIn++) {
m_list.AddItem(EnumToString(enumIn),i);
PrintFormat("adding %i = %s", i, EnumToString(enumIn));
}
return(0);
}
Añadí esto a la clase CComboBox, para poder pasar cualquier tipo ENUM, y lo añadiría como un cuadro combinado.
Pero puedes cambiarlo para hacer lo que necesitas.
El problema es que si no pasas un ENUM y pasas algo como un double o un float, podrías colapsar tu aplicación.
No creo que haya ninguna manera de comprobar el tipo de datos pasado.
bool AddEnum(ENUMTYPE enumIn) {
enumIn = 0;
//iterate through enum and add as combo box
for(int i = 0; i<sizeof(enumIn); i++, enumIn++) {
m_list.AddItem(EnumToString(enumIn),i);
PrintFormat("adding %i = %s", i, EnumToString(enumIn));
}
return(0);
}
Añadí esto a la clase CComboBox, para poder pasar cualquier tipo de ENUM, y lo añadiría como un cuadro combinado.
Pero puedes cambiarlo para hacer lo que necesitas.
El problema es que si no pasas un ENUM y pasas algo como un double o un float, podrías colapsar tu aplicación.
No creo que haya ninguna manera de comprobar el tipo de datos pasado.
Sí lo hace, oops. Me acabo de dar cuenta.
Lo que pasa es que cuando hice esto, el ENUM que estaba usando en realidad tenía 4 propiedades:\N -.
enum Combolist1{item1, item2, item3, item4, item5};
for(int i = 0; GetLastError()==0; i++) {Por ejemplo, hay una definición de enum:
enum ENUM_FRUIT {APPLE, BANANA, GRAPE};
A continuación, quiero usarlo en el bucle:
FRUIT_FIRST=APPLE, FRUIT_LAST=GRAPE};
for (ENUM_FRUIT i = APPLE; i <= FRUIT_LAST; ++i) {
Print(EnumToString(i));
}
#define FRUIT_FIRST APPLE
#define FRUIT_LAST GRAPE
for (ENUM_FRUIT i = APPLE; i <= FRUIT_LAST; ++i) {
Print(EnumToString(i));
}
PERIOD_M1, PERIOD_M2, PERIOD_M3, PERIOD_M4, PERIOD_M5, PERIOD_M6,
PERIOD_M10, PERIOD_M12, PERIOD_M15, PERIOD_M20, PERIOD_M30, PERIOD_H1,
PERIOD_H2, PERIOD_H3, PERIOD_H4, PERIOD_H6, PERIOD_H8, PERIOD_H12,
PERIOD_D1, PERIOD_W1, PERIOD_MN1};
ENUM_TIMEFRAMES next(ENUM_TIMEFRAMES curr){
for(int i=0; gcPeriods[i] != curr; ++i){}
return gcPeriods[i+1];
}
Mal diseño de lo que
¿Significa el número de miembros de la tienda enum?
Sé que esta conversación es bastante antigua pero aquí hay una manera fácil de llenar un array de cualquier tipo enum.
Sólo añadir mi solución para las generaciones futuras sobre cómo he resuelto esto.
Así que el problema es saber el número de entradas en el enum dinámicamente con la capacidad de añadir o eliminar los valores del enum. Necesito saber esto para crear arrays de tamaño fijo con valores de enum como índice del array. Lo que suelo hacer es añadir un valor reservado al final del enum que sólo se utiliza como valor de longitud. Aquí hay un ejemplo.
Esto es agradable y fácil porque no necesitas estar fijado a la última entrada en todas partes comoo puedes añadir más entradas al final del enum y el array y el bucle seguirán funcionando.