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
Hola,
Estoy pensando en cómo puedo codificar este indicador/herramientas.
Necesito un indicador, script o algo así donde puedo decidir algún rango en días (ex 12/10/2012-15/10/2012 o 15/10/2012-15/10/2012) y después de que se escribe en un archivo csv o Excel la alta baja abierta y cierre de la vela que aparece en el gráfico en función de TF (ex. si decido sólo un día y adjuntarlo en 1hr TF que escribir 24 velas con su especificación).
Gracias de antemano por su ayuda
Problema con la señal de alerta.
Hola a todos en la casa,hay este pequeño problema con un código de MT4 que escribí.Este código se supone que vigila tres indys,estoico,RSI,y CCI.si estoico cruza su línea de señal hacia arriba o hacia abajo Y RSI de período 70 y 6 se cruza hacia arriba o hacia abajo y CCI está por encima o por debajo de cero,debe haber una señal de compra si el conjunto de los 3 indys están por encima de sus líneas de señal o debe haber señal de venta si los 3 indys están por debajo de sus líneas de señal........este código funciona pero cada vez que hay una alerta, se sigue repitiendo en cada ticks de la vela.¿Qué puedo hacer para que esta alerta sólo suene una vez si las tres condiciones se cumplen en la vela actual y no vuelva a sonar. este es el código de abajo.
if(Period()==240){
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRECIO_CIERRE,0);
double b4enCCI=iCCI(NULL,240,6,PRECIO_TIPICO,1);
double nowenCCI=iCCI(NULL,240,6,PRECIO_TIPICO,0);
double b4trCCI=iCCI(NULL,240,14,PRECIO_TIPICO,1);
double nowtrCCI=iCCI(NULL,240,14,PRECIO_TIPICO,0);
// alertas
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){
Alert("Flecha de compra","\n", "Lahora actual es ",TimeToStr(CurTime()),"\n",Symbol());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){
Alert("Flecha de venta","\n", "La hora actual es ",TimeToStr(CurTime()),"\n",Symbol());
}
}
pooh
Es simplemente porque los valores de los diferentes símbolos pueden diferir mucho (por ejemplo GBPJPY es alrededor de 126 ahora y EURUSD es aproximadamente 100 veces menos - cuando usted dibuja esos valores en el mismo gráfico, el valor de EURUSD es simplemente "fuera de la imagen porque metatrader toma los valores de GBPJPY como un criterio para la escala del gráfico).
Echa un vistazo a este hilo : https://www.mql5.com/en/forum/178052. Hay un par de soluciones para problemas similares en ese hilo yaGracias Mladen. Seguí tu enlace y encontré el indicador que se adapta a mi necesidad.
pooh
Prueba así :
{
static datetime lastAlerted=0;
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// alerts
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI >0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Buy Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI <0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Sell Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
}Hola a todos en la casa,hay este pequeño problema con un código de MT4 que escribí.Este código se supone que vigila tres indys, estoico,RSI,y CCI.Si estoico cruza su línea de señal hacia arriba o hacia abajo Y RSI de período 70 y 6 se cruza hacia arriba o hacia abajo y CCI está por encima o por debajo de cero, debe haber una señal de compra si el conjunto de los 3 indys están por encima de sus líneas de señal o debe haber señal de venta si los 3 indys están por debajo de sus líneas de señal........este código funciona pero cada vez que hay una alerta, sigue repitiéndose en cada ticks de la vela.¿Qué puedo hacer para que esta alerta sólo suene una vez si las tres condiciones se cumplen en la vela actual y no vuelva a sonar. este es el código de abajo.
if(Period()==240){
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRECIO_CIERRE,0);
double b4enCCI=iCCI(NULL,240,6,PRECIO_TIPICO,1);
double nowenCCI=iCCI(NULL,240,6,PRECIO_TIPICO,0);
double b4trCCI=iCCI(NULL,240,14,PRECIO_TIPICO,1);
double nowtrCCI=iCCI(NULL,240,14,PRECIO_TIPICO,0);
// alertas
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){
Alert("Flecha de compra","\n", "La hora actual es ",TimeToStr(CurTime()),"\n",Symbol());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){
Alert("Flecha de venta","\n", "La hora actual es ",TimeToStr(CurTime()),"\n",Symbol());
}
}Problemas con las alertas
Gracias mladen, lo voy a probar.nunca tomo nota de la función LastAlert() y por favor me puede indicar donde conseguir el directorio de todas estas funciones mt4 "tranche rouse".
Mastercash
Cuidado: no se trata de una función sino de una variable estática que se utiliza para almacenar la hora (hora de la barra) de la última alerta y así evitar múltiples alertas en la misma barra. Desgraciadamente no existe una función como LastAlert() en metatrader por lo que hay que buscar soluciones como la del ejemplo para solucionar la falta de funciones
Gracias mladen, lo probaré.Nunca me he fijado en la función LastAlert() y por favor me puedes indicar donde conseguir el directorio de todas estas funciones de mt4 "tranche rouse".
Hola mladen.
Necesito asignar 24 variables a cada una de las 24 velas de la última hora del día.
Necesito hacer algunos cálculos con la vela y el resultado será asignado en un buffer.
¿Cómo puedo codificar para trabajar con cada una de las velas de 24 horas del día anterior?
Gracias
dasio
Puede utilizar algo similar a esto (este modo no utiliza arrays). Además, este ejemplo es para el día actual
for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)
{
//
//
// processing the hourly data ... just an example here
//
//
double close = iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); // and so on ...
}
Hola mladen.
Necesito asignar 24 variables a cada una de las 24 velas de la última hora del día.
Necesito hacer algunos cálculos con la vela y el resultado será asignado en un buffer.
¿Cómo puedo codificar para trabajar con cada una de las velas de 24 horas del día anterior?
Graciasdasio
Puede utilizar algo similar a esto (este modo no utiliza arrays). Además, este ejemplo es para el día actual
for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)
{
//
//
// processing the hourly data ... just an example here
//
//
double close = iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); // and so on ...
}
Gracias mladen.
En este ejemplo
double close = iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); //
¿Qué vela se presenta y cómo puedo cambiar a la siguiente vela? i+1?
Gracias
dasio
Ya está haciendo un bucle con todas las horas del día actual. Puse el iClose() y el iOpen() solo como ejemplo de una llamada desde un marco de tiempo diferente a 1 hora. Si quieres acceder a un día diferente al actual entonces sustituye el "0" de la fecha startTime=iTime(NULL,PERIOD_D1,0); por el día que desees que se recojan los datos
Gracias mladen.
En este ejemplo
double close = iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); //
¿Qué vela se presenta y cómo puedo cambiar a la siguiente vela? i+1?
Gracias