[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 188
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
Encuentre el tiempo de la barra y recalcúlelo al número de barra de la TF superior
¿Por qué no escribes el código?
Cómo hacer que para (i=1; i<StartBar; i++) StartBar sea la barra con la curva especificada (extern int b= 2) del timeframe más antiguo (extern int = ... ; //W1, MN1)
Corrección
Coincidencia de dos topes de un plazo determinado (digamos semanal y mensual)
¿Es esta la forma correcta de hacerlo?
Condición tf1 >tf2
La pregunta es la siguiente. En el libro de MQL4, que sepuede encontrar en MQL4.community , en el capítulo "GlobalVariables" en la sección "Properties of GV-Variables" dice: "Las variables GV sólo pueden tener el tipo double". A continuación, en la sección "Función GlobalVariableDel()", hay un ejemplo de experto globalvar.mq4 con el siguiente contenido:
Pregunta: ¿por qué en este ejemplo las variables GV Experto y Nuevo_Experto son de tipo int, aunque, como se ha dicho antes, estas variables deberían ser de tipo double?
Gracias de antemano por la respuesta
¿Es esta la forma correcta de hacerlo?
Condición tf1 >tf2
Algo está mal.
En el primer ciclo intento encontrar el precio de la curva especificada en la TF alta. Empiezo el segundo ciclo en el TF bajo donde busco el precio de cada curva en las barras mientras esté en el gráfico y lo comparo con el precio encontrado en el primer ciclo. Si encuentro tal precio, devuelvo el tiempo de la barra de la curva dada en este TF.
Lo inicié desde el 2000.01.01 en el probador.
Qué hay en el registro
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.1688
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.2495
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.1192
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.2315
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.1069
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.3161
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.2351
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.4535
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.338
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.4249
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.3
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.416
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.2596
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.3353
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.2658
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.3138
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.0344
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.1537
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.0608
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.1216
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.079
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.2401
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.0104
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 1.0917
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 0.8227
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p2= 0.9596
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: t1 1992.09.01 00:00
2012.06.17 10:29:39 2001.07.06 03:30 zz_date v3 EURUSD,M15: p1 1.4104
Lo mismo ocurría en el año 2000, es decir, al principio del periodo de pruebas.
Dónde está el error. Soy un programador débil. Quiero escribir un programa de prueba. Me está costando mucho trabajo. No puedo pedirle al programador que lo haga, porque se está haciendo por pasos, en función de los datos que he recibido.
Necesito ayuda aquí. También pedí ayuda en la página anterior para escribir la función NewZZ().
Agradeceré que alguien corrija los errores y los explique.
Algo está mal.
Ayudar a los débiles.
Buenas tardes. Encontré una función de arrastre en el sitio web:
for(i=0; i<TotalPedidos(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continue;
if(OrderType()==OP_BUY)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop_)
{
{ si(OrderStopLoss()<Bid-Point*TrailingStop_)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop_,OrderTakeProfit(),0,Green);
return(0);
}
}
}
if(OrderType()==OP_SELL)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop_))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop_)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop_,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
Al probar la estrategia, después de que la primera orden se abre, esta función funciona bien, es decir, el trailing se ejecuta y la orden se cierra. Pero después de abrir el segundo orden, se produce un error de división por cero al referirse a la función de arrastre. Por favor, ayúdenme a conseguir que la función de arrastre funcione para el segundo orden, el tercer orden, etc.
No puedo hablar por todo el foro, pero personalmente, cuando veo una fuente sin sangría, me da la obsesión de que es inútil explicar nada al autor.
Tengo la sangría en el editor, pero cuando la copio aquí, la sangría desaparece...