Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 490
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
¡Buenas tardes!
Tengo un EA que hace ciertos cálculos. Utiliza diferentes operaciones matemáticas, matrices, bucles. Guarda el resultado en un archivo. Tiene que empezar todo desde el principio después de haber realizado todas las acciones. Ha hecho todos los cálculos una vez y luego se cuelga por segunda vez sin ninguna otra acción. ¿Puede indicar si es necesario poner a cero las variables, borrar las matrices o alguna otra cosa antes de iniciar un nuevo cálculo?
¿Has probado a cerrar el archivo?
Cómo programar una muleta/indicador/script (como un indicador con pestañas "sobre, general, parámetros de entrada, colores, pantalla") para MT4 para que tome los datos de un archivo .csv, por ejemplo el formatodel archivo fuente:
Es decir,el indicador tomó los datos registrados de un archivo y los pusocomo un segmento de línea (TF, TA) o una banda de color(EA) con los parámetros de la extensión igual a "un día". (desde el borde hasta el borde de los separadores verticales de días en МТ4), para las líneas la selección del color de la línea, el tipo de línea, la selección del color del texto y el tamaño del comentario y la sustitución de la línea de comentario como "TF - 1,192" la segunda línea "TF - 1,1733" que se toman de las líneas correspondientes del archivo. El rango es puramente horizontal y a partir de la línea EUR;TF;1.192;1,1733 toma el primer dígito para una ranura y el segundo dígito para la segunda como el inicio de la ranura 1.192 y el final de la ranura 1.192.
También hay rangos, por ejemplo EA, el principio es el mismo desde el principio hasta el final del día, pero el precio es diferente y la línea comienza y termina con CHF;AB1;1.03484132734247;1.02549513556164 principio es1.03484132734247 final del rango1.02549513556164. Se ejecuta cuando se enciende MT4 (como un indicador normal en el gafik), todos los días en el gráfico y añade todos los datos exactamente para el día actual una vez, todas las líneas aplicadas anteriormente no se elimina de la tabla y no se duplica. Con todo esto selecciona y muestra todos los segmentos y rangos del día, sólo donde está la ventana activa ahora y en otras ventanas activas (es decir, donde está funcionando) (es decir, abrió un par y el indicador dibujó todos los segmentos y rangos del día actual y se calmó y así para los pares).
Por ejemplo, cómo debe ser la pestaña del indicadorParámetros de entrada:
¡¡¡¡¡¡¡¡trató de garabatear a mí mismo, pero no conseguir una maldita cosa, aunque parecía fácil (pero yo soy un humanitario, ¿qué se puede hacer....) Ayuda por favor ahogar !!!!!!!!
¡Hola!
¡¡¡Por favor, ayúdenme a encontrar un error en el siguiente programa!!!
//+------------------------------------------------------------------+
//|prueba.mq4 |
//| Copyright 2018, MetaQuotes Software Corp.
//|https://www.mql5.com |||
//+------------------------------------------------------------------+
#property copyright "365_MA"
#enlace de propiedad "https://www.mql5.com"
#versión de la propiedad "1.00"
#propiedad estricta
extern Periodo_MA = 365; //Periodo MA 1
extern double Delta = 0.0010; //La distancia a la que se puede abrir la orden
string Symb; //Nombre del instrumento comercial
//int Total; //número de pedidos
//+------------------------------------------------------------------+
//| función de inicialización de expertos|
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta|
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("Obj_Label");
ObjectDelete("Obj_Label2");
//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto|
//+------------------------------------------------------------------+
int inicio()
{
doble prise = Oferta;//precio actual
double CurrMAValue = iMA(Symb, Period(),Period_MA, 0,Mode_EMA, PRICE_CLOSE, 0); //el valor de la media móvil
double Precio2MA = precio - ValorCurrMA;//distancia entre MA y precio
datetime NextClose = Time(0) + Period()*60*2;//hora de cerrar
int MinutesToNextClose = (NextClose - TimeCurrent())/60 + 1; //tiempo de cierre en minutos
//int err;
//actualizar la información del texto en el gráfico
ObjectSetText ("Obj_Label", "TF" + Period() + ", " + DoubleToStr(price, 4) + ", tick " + TimeToStr(TimeCurrent(), TIME_SECONDS) + ", O@" + TimeToStr(Time[0], TIME_MINUTES) + ", NC@" + TimeToStr(NextClose, TIME_MINUTES) + " (" + MinutesToNextClose + " min)", 10,
ObjectSetText ("Obj_Label2", "Delta " + DoubleToStr(Delta,4) + ", MA value " + DoubleToStr(CurrMAValue, 4) + ", distance to MA " + DoubleToStr(Price2MA, 4), 10, "Arial", DarkGreen );
//considerar el precio y generar alertas
if ((MathAbs(Price2MA) < Delta) && // si la distancia a МА es menor que delta
(Precio > CurrMAValue) && // y el precio es superior a la MA
(Open(0) > CurrMAValue+Delta) // y la vela actual abrió por encima de MA+Delta
(
Alerta ("El precio se acerca a la MA desde arriba;)
)
if ((MathAbs(Price2MA) < Delta) && // si la distancia a la MA es menor que el delta
(precio < CurrMAValue) && // y el precio está por debajo de la MA
(Open(0) < CurrMAValue-Delta)) // y la vela actual abrió por debajo del delta de la MA
(
Alerta ("El precio se acercó por debajo de la MA;)
)
return(0);
//+------------------------------------------------------------------+
Después de la compilación aparece el siguiente error
¡Hola!
¡¡¡Por favor, ayúdenme a encontrar un error en el siguiente programa!!!
Tras la compilación aparece el siguiente error.
Se ha omitido un corchete.
Tengo que integrar el zigzag en mi propio indicador (ahora cuenta por asa)
El caso es que mi indicador no utiliza OnCalculate().
Entonces, ¿cómo hago funcionar el zigzag y cómo obtengo rates_total y prev_calculated?
El rates_total es el número de barras del gráfico. Se determina mediante la función Bares.
prev_calculated - crea un análogo por tu cuenta, decláralo globalmente (o estáticamente) y escribe allí el número de barras realmente calculado en la iteración actual. Esto significa que, después de los cálculos exitosos de los valores del indicador, necesitamos registrar el número de barras actuales en él. Si los cálculos no tienen éxito, es mejor anularlo para recalcular los valores del indicador para cada barra del historial en la siguiente iteración.
Re: Alekseu Fedotov
¿Qué es un corsé, lo siento?
Re: Alekseu Fedotov
¿Qué es un corsé, lo siento?
Entre corchetes, el índice de la matriz x[25].
void start()
{
En el bloque de operadores con llaves
}
Entre paréntesis el argumento de la función sin(30)
entre corchetes el índice de la matriz x[25]
void start()
{
En el bloque de operadores con llaves
}