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
...
Creo (ya que no puedo ver su EA que escribe los valores al archivo csv) que te falta un FileFlush(). En los casos en los que quieras que los cambios en el archivo sean accesibles por "otros" de forma inmediata sin cerrar el archivo (que implícitamente utiliza flush ) siempre debes vaciar los cambios en el disco
saludos
mladen
Hola,
Estoy escribiendo un EA que trabaja con archivos CSV.
Para las pruebas pongo mis archivos CSV en la siguiente carpeta:
/tester/files
Aquí está sólo una pequeña parte de mi EA:
int handle = 0;
int Long = 0;
handle=FileOpen("LongMarket.csv",FILE_CSV|FILE_READ,';');
if (handle > 0)
{
Long= FileReadNumber(handle);
FileClose(handle);
}
Print("LongMarket = ", Long);
Print("Long handle = ", handle);En mi EA leo los archivos CSV y luego escribo algunos enteros.
Ahora cuando hago mi prueba y leo en el diario los mensajes de "impresión", a menudo obtengo enteros viejos que ya no están escritos en los archivos CSV.
Por ejemplo:
Primero se escribe 3 y mi EA funciona y escribe el 0 en el archivo,
Sólo puedo ver el 3 en ese archivo CSV.
¡¡¡¡Cuando borro ese archivo CSV y pongo un nuevo archivo CSV con 3 en la carpeta "/tester/files", sólo puedo leer el 0 de la prueba antes de !!!! ¡¡¡Pero no puedo encontrar, donde el EA lee el 0!!!
¡¡¡¡¡Me estoy volviendo loco!!!!!
¡¡Espero que puedas entender mi pregunta y me des un consejo!!¿Alguien puede ayudarme a añadir una función de alarma?
Me gustaría añadir una función de alarma de este indicador, alarma de color. He intentado durante mucho tiempo, el uso de la "alarma si", pero nunca sin éxito. ¿Alguien puede ayudarme? ¡Muchas gracias! ~ Mi inglés no es bueno así que lo siento.
#property indicator_chart_window
#property indicator_buffers 4
#property indicador_color1 BosqueVerde
#propiedad indicador_color2 Rojo
#propiedad indicador_color3 Negro
#propiedad indicador_color4 Negro
//---- parámetros de entrada
extern int FastClosePeriod=13;
extern int FastCloseShift=0;
extern int FastOpenPeriod=34;
extern int FastOpenShift=0;
extern int SlowClosePeriod=34;
extern int SlowCloseShift=0;
extern int SlowOpenPeriod=62;
extern int SlowOpenShift=0;
//---- búferes indicadores
double ExtBlueBuffer[];
double ExtRedBuffer[];
double ExtDarkVioletBuffer[];
double ExtBlackBuffer[];
//+------------------------------------------------------------------+
//| Función de inicialización de los indicadores personalizados
//+------------------------------------------------------------------+
int init()
{
//---- desplazamiento de la línea al dibujar
SetIndexShift(0,FastCloseShift);
SetIndexShift(1,FastOpenShift);
SetIndexShift(2,SlowCloseShift);
SetIndexShift(3,SlowOpenShift);
//---- primeras posiciones saltadas al dibujar
SetIndexDrawBegin(0,FastCloseShift+FastClosePeriod);
SetIndexDrawBegin(1,FastOpenShift+FastOpenPeriod);
SetIndexDrawBegin(2,SlowCloseShift+SlowClosePeriod);
SetIndexDrawBegin(3,SlowOpenShift+SlowOpenPeriod);
//---- 3 búferes de indicadores mapeados
SetIndexBuffer(0,ExtBlueBuffer);
SetIndexBuffer(1,ExtRedBuffer);
SetIndexBuffer(2,ExtDarkVioletBuffer);
SetIndexBuffer(3,ExtBlackBuffer);
//---- ajustes de dibujo
SetIndexStyle(0,DRAW_HISTOGRAM,0,2);
SetIndexStyle(1,DRAW_HISTOGRAM,0,2);
SetIndexStyle(2,DRAW_NONE,0,2);
SetIndexStyle(3,DRAW_NONE,0,2);
//---- etiquetas de índice
SetIndexLabel(0, "FastClose");
SetIndexLabel(1, "FastOpen");
SetIndexLabel(2, "SlowClose");
SetIndexLabel(3, "SlowOpen");
//---- inicialización realizada
return(0);
}
//+------------------------------------------------------------------+
//| 9Squared Trader ||
//+------------------------------------------------------------------+
int inicio()
{
int límite;
int counted_bars=IndicatorCounted();
//---- comprobar posibles errores
if(counted_bars<0) return(-1);
//---- la última barra contada se vuelve a contar
if(counted_bars>0) counted_bars--;
limit=Barras_contadas;
//---- bucle principal
for(int i=0; i<limit; i++)
{
//---- ma_shift se pone a 0 porque SetIndexShift se llama abowe
ExtBlueBuffer=iMA(NULL,0,FastClosePeriod,0,MODE_EMA,PRICE_CLOSE,i);
ExtRedBuffer=iMA(NULL,0,FastOpenPeriod,0,MODE_EMA,PRICE_OPEN,i);
ExtDarkVioletBuffer=iMA(NULL,0,SlowClosePeriod,0,MODE_EMA,PRICE_OPEN,i);
ExtBlackBuffer=iMA(NULL,0,SlowOpenPeriod,0,MODE_EMA,PRICE_MEDIAN,i);
}
//---- hecho
return(0);
Aquí tienes. Lo hice muy rápido, y sí, se puede hacer.
Echa un vistazo al ejemplo.mq4 adjunto para ver un ejemplo de codificación.
También se incluye una captura de pantalla con comentarios, para que veas que los valores del RSI se van guardando tick a tick en el array.Hola wolfe,
Muchas gracias por su temporizador y sus esfuerzos. Voy a intentar esto
saludos,
MSV
Banda de Bollinger
Hola,
Alguien puede ayudarme con la fórmula de la Banda de Bollinger (20period dev 2 on close) en una hoja de cálculo de Excel. Gracias de antemano.
¡¡¡Hola chicos !!!
Necesito abrir sólo "una orden de compra y venta "por día" en mi EA, por favor, ¿cómo es el código para hacer esto?
Hola chicos!!! necesito abrir solo "una orden de compra y venta "por día" en mi EA, por favor, como es el código para hacer esto?
Creo que necesitas hacer un bucle a través de todas las órdenes cerradas y comprobar cada una de ellas por su símbolo y hora de cierre... toma la que coincida con Symbol() y tenga la última hora de cierre. entonces añade 24 horas y usa eso en una variable para probar la hora actual y abrir la operación cuando alcance la última orden + 24 horas
O una forma más sencilla de hacerlo sería simplemente utilizar la función TimeDayOfYear y comprobar la última orden cerrada con símbolo y número mágico coincidentes. Sólo asegúrese de que no es el mismo día del año que hoy.
Mira el archivo de ayuda para ver la definición y el uso de TimeDayOfYear
Saludos
Lux