[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 993

 
Aleksander:

Así que mostrarlo en el lado izquierdo de la pantalla - ¿cuál es la diferencia? - La línea de la derecha tendrá el precio - a la izquierda el texto del mensaje...

o el rayo - pero entonces todo está en el lado izquierdo...


Esta es la petición del cliente :) Otros indicadores se utilizan a la izquierda para que no se superpongan unos a otros.

Bueno, voy a solucionar el problema, ¡gracias a todos por vuestra participación!

 
Hola. Tengo una pregunta: ¿hay alguna manera de optimizar un EA en MT4 para varios pares de divisas a la vez? o tal vez hay un programa especial para eso? o al menos para acelerar la optimización (para cargar completamente la CPU)?
 
gawrik:
Hola. Tengo una pregunta: ¿hay alguna forma de optimizar un asesor en varios pares de divisas simultáneamente en MT4?

Puede ejecutar varios MT4 al mismo tiempo con la optimización de un EA en diferentes pares.

Si está prohibido, entonces dile que lo permito

 
Aleksander:

intente entrar para asignar el delta

delta = 1; si (dígitos = 5) {delta = 10;}

y en el texto añadir

if (Oferta <=Bajo&& Demanda < Alto - 10*Punto*delta)

Probablemente no sea del todo correcto, pero el significado es claro

delta = Punto; si(dígitos = 5) {delta = 10*Punto;}

if (Bid <=Low&& Ask < High - 10*delta) aunque no hay diferencia, pero... ¿y yo?

 

y la siguiente pregunta sobre los spreads dinámicos obliga a calcular el spread medio sobre N ticks,

He dibujado lo siguiente pero no estoy seguro de que sea correcto:

int TicSpred=100;

doble Spread[10000];

if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}

for (int q=TicSpred;q>0;q--){

si (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}

for (q=TicSpred;q>0;q--) {Spread[p]=Spread[p-1];}

Spread[0]=(Ask-Bid)/delta;

doble CountedSpred;

for (q=0;q<barras;q++){CountedSpred=CountedSpred+Spread[p];}

double Aversired=ContadoSpred/TicSpred; pero no estoy seguro de que esto sea correcto, y no parece contar correctamente para cinco dígitos

 

No, eso no es correcto en absoluto.

Tengo que escribir cada uno de los siguientes pliegos en un array, y dividirlo por el número de pliegos del array, y en cuanto el número de registros llegue a N, tengo que eliminar el primero del array

¿se puede hacer algo más sencillo?

 

Aquí también hay un error

if (Bid >=High ) // Cerrar Bahía

volver (11);

si (Oferta <=Bajo && Demanda <Alto - 1*delta )

return (21); // Cerrar Vender

si (comercio == 1){

if ( Bid <=Low ) // Abrir la bahía

Imprime ( " Bahía = ",11);

return (10);}

si (Tiempo == 1){

if (Bid<=Low&&Ask<High -1*delta ) // Apertura de Srll

Imprime (" Vender= ",21);

return (20);}

return; // si el tiempo no es bueno, no abra nada; sólo salga.

Las siguientes variables Alto y Bajo son conocidas (lo he comprobado con una impresión) y el precio muestra las siguientes condiciones

1.si buy > High, entonces enviamos una orden de 10 (cerrar buy)

2. si compra < Low y asc es menor que High por 1 punto, entonces ciérralo con retorno 11

si la variable Tiempo == 1 entonces:

3. Si la oferta es menor o igual que el precio mínimo y la demanda es menor que el precio máximo en al menos un punto, entonces se abre la compra.

4. si la Oferta es mayor o igual que el Alto, entonces abrimos la Venta?

Quiero recordar que este programa es totalmente del tutorial, sólo cambio los criterios de comercio, respectivamente, el comando 10, 20 todo estándar, voy a adjuntar todas las funciones que se dirigen a por si acaso

Archivos adjuntos:
close_all.mqh  3 kb
open_ord.mqh  3 kb
trade.mqh  3 kb
 

¡Gente! ¡Hola a todos! ¡Ayuda!

Necesito escribir un intervalo de tiempo en la función del indicador allert. como, una ventana aparece cuando una señal aparece y podemos ver allí de qué gráfico esta señal. M15 por ejemplo.

He buscado en el sitio, pero no encuentro nada de eso.

 

¡Gente! ¡Hola a todos! ¡Ayuda!

Necesito escribir un intervalo de tiempo en la función del indicador allert. como, una ventana aparece cuando una señal aparece y podemos ver allí de qué gráfico esta señal. M15 por ejemplo.

He buscado en el sitio, pero no encuentro nada de eso.

 

De todos modos, esta función

//--------------------------------------------------------------------

// Criterio.mqh

// Destinado a ser utilizado como ejemplo en el tutorial de MQL4.

//--------------------------------------------------------------- 1 --

// Función para calcular los criterios de comercio.

// Valores devueltos:

// 10 - apertura Comprar

// 20 - Apertura de la venta

// 11 - cierre Compra

// 21 - Cierre de venta

// 0 - no hay criterios significativos

// -1 - se utiliza otro instrumento financiero

//--------------------------------------------------------------- 2 --

// Variables externas:


//--------------------------------------------------------------- 3 --

int Criterio() // Función de usuario

{

//----------------------------------------------------------------4----

cadena Sym="________";

if (Sym!=Symbol()) // Si no es nuestro fin.

{

Inform(16); // mensaje.

return(-1);} // ...y salir

delta = Punto;

if (Dígitos = 5 || (Dígitos = 3 && StringFind(Symbol(), "JPY", 0) != -1))

delta= Punto *10;

int Digital=MarketInfo(Symbol(),12);

//--------------------------------------------------------------- 5 --

// Parámetros para el indicador técnico:

bool comercio;

if (Begin>End && (Hour()>Begin-1 | Hour()<End)){trade=1;}

if (Begin<End && (Hour()>Begin-1 && Hour()<End)){trade=1;}

{si (trade==0 && mag!=Mag) return(0);}

// --------------------------Calcular la extensión media-----------------------

if (!IsTesting() || IsVisualMode() || !IsOptimization())

{

int TicSpred=100;

doble Spread[10000];

if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}

for (int q=TicSpred;q>0;q--){

si (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}

for (q=TicSpred;q>0;q--){Spread[q]=Spread[q-1];}

Spread[0]=(Ask-Bid)/delta;

doble CountedSpred;

for (q=0;q<TicSpred;q++){CountedSpred=CountedSpred+Spread[q];}

double Averaged=ContadoSpred/TicSpred;

}


//--------------------------------------------------------------- 5 --

// Cálculo de los criterios de negociación

if (Bid >=High ) // Cerrar Bahía

volver (11);

si (Oferta <=Bajo )

return (21); // Cerrar Vender

si (comercio == 1){

if ( Bid <=Low &&Ask<High -0.5*MyPoint ) // Abrir Bahía

Imprime ( " Bahía = ",11);

return (10);}

si (comercio == 1){

if (Bid>=High ) // Apertura del Srll

Imprime (" Venta = ",21);

return (20);}

return; // si la hora es mala, no abra nada; sólo salga.


//--------------------------------------------------------------- 6 --

return(0); //salir de la función de usuario

}

//--------------------------------------------------------------- 7 --

se supone que las variables Low y High ya han sido definidas y son correctas

Razón de la queja: