Duplica este EA con el actualizador automático de números mágicos.
5 respuestas
Conde-Roy
hace 10 años #113370
Sería bueno tener una función que le permite duplicar su EA con sólo pulsar un botón que escala automáticamente los números mágicos.
Digamos que tiene un EA con 20 números mágicos diferentes y desea tener dos o más EAs con el mismo conjunto de reglas ejecutándose simultáneamente. Entonces todo lo que uno tendría que hacer es pulsar el botón (duplicar / copiar) EA y el Asistente de EA reconocería los números mágicos actuales y replicaría el EA pero con la siguiente secuencia normalmente recurrente de números; en este caso 21 - 40, etc.
greetz,
Roy

Mark Fric
hace 10 años #128940
Gracias por la sugerencia, estoy de acuerdo en que a veces sería útil.
Mark
Arquitecto de StrategyQuant
beniko
hace 10 años #129607
Hola Conde-Roy,
Ahora mismo algo que puedes hacer es crear todas las variables que vas a utilizar para los números mágicos y luego crear una nueva regla que haga lo siguiente:
Si
el bar está abierto
Entonces
asignar valores
NúmeroMágico2=NúmeroMágico1+1
NúmeroMágico3=NúmeroMágico2+1
NúmeroMágico4=NúmeroMágico3+1
etc...
En otras palabras, el usuario tiene que configurar el 1er MagicNumber y todos los demás se calcularán en base a él.
Mark, como sugerí en mi último tema una pestaña de inicialización sería útil. Este es un buen ejemplo para que alguien podría utilizarlo, ya que la EA no haría los cálculos anteriores después de cada nueva barra se crea.
Saludos
Conde-Roy
hace 10 años #129654
¿cómo se ve esto en un archivo sqw? ¿podría compartir la plantilla? por favor.
beniko
hace 10 años #129655
Aquí la tienes. También añadí una regla que escribe los Números Mágicos en el gráfico.
D0NKbet
hace 10 años #129757
En mi auto desarrollado EA estoy usando un poco de código que genera un número mágico único basado en...
- Calendario
- Símbolo
- Nombre EA
// crear número mágico uniq para par de divisas y timeframe int MNSymbol,MNSymbolCalc; //convertir el Symbol() en una cadena ASCII y añadir cada carácter al MNSymbol for(int a=0;a<StringLen(Symbol());a++){ MNSymbolCalc=StringGetChar(Symbol(), a); MNSymbolCalc=((MNSymbolCalc-64)*(MathPow(10,(a))));/restar 64 porque los caracteres ASCII empiezan en 65, multiplicar el resultado por la potencia a-ésima para mayor claridad (aunque no es necesario) MNSímbolo = MNSímbolo+MNSímboloCalc; } int MNPeriod=Periodo(); // convierte el Nombre EA en una cadena ASCII int MNExpert,MNExpertCalc; for(int a=0;a<StringLen(WindowExpertName());a++){ MNExpertCalc=StringGetChar(NombreExpertoVentana(), a); MNExpertCalc=((MNExpertCalc-64)*(MathPow(10,(a))));/restar 64 porque los caracteres ASCII empiezan en 65, multiplicar el resultado por la potencia a-ésima para mayor claridad (aunque no es necesario) MNExpert = MNExpert+MNExpertCalc; } // calcula el número mágico único MagicUnique=MathAbs(MNExpert + MNSymbol + MNPeriod); Comment("Número mágico único: " + IntegerToString(MagicUnique));
No es perfecto y debe ser modificado para crear diferentes posiciones de COMPRA / VENTA, pero de esta manera es seguro que el número es único, incluso si se adjunta la misma EA en diferentes pares de divisas o marcos de tiempo
¿Quizás podrías añadir algo así en el Asistente de EA? Digamos que el código de arriba + la diferencia para la orden de compra y venta + un contador en función de cuántas reglas para hacer órdenes hay. Así nadie tendría que preocuparse más por los números mágicos.
Viendo 5 respuestas - de la 1 a la 5 (de un total de 5)