Ayuda a la codificación - página 538

 

He publicado en FF y ahora en el foro MQL, así que estoy probando mi suerte aquí.

Antes de empezar, quiero mencionar que no soy de ninguna manera un codificador, apenas un script kiddie. Me las he arreglado para almacenar el precio en tiempo real en Excel con marca de tiempo. ¿Hay alguna manera de almacenar sólo cuando el precio se está moviendo? Porque Excel sigue almacenando cada segundo, lo que significa que habrá muchos espacios vacíos con la marca de tiempo.

Mientras estoy en ello, ¿hay también una manera de codificar para que cuando cada minuto pasa, salta a la siguiente columna y almacena desde allí? Estoy usando xlsapp para codificar. Aquí está el código:

//+------------------------------------------------------------------+

//| Test1.mq4 |

//| Copyright 2015, MetaQuotes Software Corp. |

//| / |

//+------------------------------------------------------------------+

#property copyright "Copyright 2015, MetaQuotes Software Corp."

#property link "https://www.mql5.com"

#property version "1.00"

#property strict

#include

extern string StartBid= "C3";

extern string StartAsk= "D3";

extern string StartSpread="F3";

extern string StartTime="A3";

bool xlsgateok=false;

string StrBid;

string StrAsk;

string StrSpread;

string StrTime;

//+------------------------------------------------------------------+

//| Función de inicialización de expertos |||

//+------------------------------------------------------------------+

int OnInit()

{

StrBid=StartBid;

StrAsk=StartAsk;

StrSpread=StartSpread;

StrTime=StartTime;

if (ExcelInit("mt4") && ExcelStart("))

{

Print("XLSgate init done");

xlsgateok=true;

Print("Versión de Office = "+ExcelVersion());

ExcelSheetAdd("MT4");

}

//---

return(INIT_SUCCEED);

}

//+------------------------------------------------------------------+

//| Función de desinicialización experta ||.

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

{

//---

}

//+------------------------------------------------------------------+

//| Función de tick experto ||

//+------------------------------------------------------------------+

double lastBid=0;

double lastAsk=0;

int lastSpread=0;

datetime time=0;

void OnTick()

{

//---

if(xlsgateok && lastBid!=Bid)

ExcelSetValue(StrBid,Bid);

lastBid=Bid;

StrBid=ExcelRowAdd(StrBid,1);

if(xlsgateok && lastAsk!=Ask)

ExcelSetValue(StrAsk,Ask);

lastAsk=Ask;

StrAsk=ExcelRowAdd(StrAsk,1);

ExcelSetValue(StrSpread,(Ask-Bid)/Punto);

StrSpread=ExcelRowAdd(StrSpread,1);

string s= TimeToStr(TimeCurrent());

ExcelSetString(StrTime,s);

StrTime=ExcelRowAdd(StrTime,1);

}

//+------------------------------------------------------------------+

 
mladen:
henrykfx Nunca van a ser lo mismo simplemente porque el indicador que has puesto se repinta. No pueden ser los mismos

Miaden, por favor, tanto si se repinta como si no, sólo hazme un favor e incluye la notificación emergente y la alerta sonora, y permíteme afligirme o alegrarme por ello; después de todo el veneno de un hombre es la carne de otro, mientras que la carne de un hombre es el veneno de otro. Si puedes ayudar a otros sin esfuerzo, no veo razones por las que mi propio caso deba ser un tabú. por favor, hazlo por mí incluso si es tu regalo de navidad para mí, lo apreciaré mucho. Cuanto más se retrase, más me negará el comercio.

 
henrykfx:
Miaden, por favor, tanto si se repinta como si no, sólo hazme un favor e incluye la notificación emergente y la alerta sonora, y permíteme afligirme o alegrarme por ello; después de todo el veneno de un hombre es la carne de otro, mientras que la carne de un hombre es el veneno de otro. Si puedes ayudar a otros sin esfuerzo, no veo razones por las que mi propio caso deba ser un tabú. por favor, hazlo por mí incluso si es tu regalo de navidad para mí, lo apreciaré mucho. Cuanto más se retrase, más me negará el comercio.

Yo no codifico alertas para los indicadores de repintado. Compruebe, por ejemplo, este hilo : https://www.mql5.com/en/forum/180648 y vea cuántas veces me he negado a hacerlo y cuántas veces he dicho que usar indicadores de repintado en modo de señalización/alerta es muy peligroso. Por lo tanto, usted no es una excepción, pero su solicitud es una regla de oro para mí : no quiero participar en una cosa que considero peligroso para los comerciantes

todo lo mejor

 

¡La última petición!

A todos los codificadores por ahí, pero con especial agradecimiento a mladen. No sólo por su codificación, sino también por sus pacientes en las muchas, y a veces estúpidas, peticiones que he hecho a lo largo de los años. Gracias compañeros.... es realmente mucho apreciado.

¿Puedo pedirle una última cosa?

¿Podría añadir una función de alerta de onda a la línea de alerta LOWER en el indicador 'Advanced ADX' adjunto?

¿Sonido Wav. a elección del usuario?

Para que funcione SÓLO en una barra ascendente.

Si todo va bien, publicaré mi sistema con los resultados en un futuro próximo.

Archivos adjuntos:
 
Jeeves:
A todos los codificadores por ahí, pero con especial agradecimiento a mladen. No sólo por su codificación, sino también por sus pacientes en los muchos, & a veces estúpida, las solicitudes que he hecho en los últimos años. Gracias compañeros.... es realmente mucho apreciado.

¿Puedo pedirle una última cosa?

¿Podría añadir una función de alerta de onda a la línea de alerta LOWER en el indicador 'Advanced ADX' adjunto?

¿Sonido Wav. a elección del usuario?

Para que funcione SÓLO en una barra ascendente.

Si todo va bien voy a publicar mi sistema, con el resultado en un futuro próximo.

Jeeves

Se hará

 

Usted es el hombre mi amigo.....cualquier cosa que pueda hacer por usted, PM mí.

 
mrtools:
Hola Henrykfx, como dije antes el indicador CROSS es un indicador de cruce de EMA repintado, si vas al enlace que te proporcioné y descargas ese indicador y pones el MaType a EMA y el periodo Ma rápido a 5 y el periodo Ma lento a 20 entonces estarás obteniendo valores reales de cruce de EMA sin repintado de las flechas en una barra cerrada, y con alertas.

Ok mrtools, gracias por su interés en mi situación. Ahora tengo lo que quería, pero el problema es que suena la alerta y el pop up para la próxima barra. puede usted ayudarme a arreglar el error. de modo que las alertas y la notificación pop up SERÁN CUANDO Y DONDE HAYA UNA SEÑAL DE COMPRA O VENTA.Gracias por su tiempo .

Archivos adjuntos:
 
mladen:
No codifico las alertas para los indicadores de REPAINTING. Revise, por ejemplo, este hilo : https://www.mql5.com/en/forum/180648 y vea cuántas veces me negué a hacerlo y cuántas veces dije que usar indicadores repintados en modo de señalización/alerta es muy peligroso. Por lo tanto, usted no es una excepción, pero su solicitud es una regla de oro para mí : no quiero participar en una cosa que considero peligroso para los comerciantes todo lo mejor

Gracias por su franca respuesta. En mi búsqueda implacable, tengo uno que es útil, pero que las alertas de sonido y notificar a la apertura de una nueva barra. me puede ayudar a solucionar el error, a fin de alertar y notificar cuando hay señal de compra o venta solamente. Gracias por su tiempo.

Archivos adjuntos:
 
henrykfx:
Gracias por tu franca respuesta. En mi búsqueda incesante, conseguí uno que es útil pero que suena las alertas y notifica en la apertura de una nueva barra. puede usted ayudarme a arreglar el error, a fin de alertar y notificar cuando hay señal de COMPRA O VENTA solamente. Gracias por su tiempo.

henrykfx

Ese indicador también utiliza valores futuros (repintados) - utiliza exactamente la misma lógica que el anterior del que hablábamos

todo lo mejor

 
mladen:
henrykfx

Ese indicador también utiliza valores futuros (repaints) - utiliza exactamente la misma lógica que el anterior del que hablábamos

todo lo mejor

Mladen, el otro día dijiste que el 99% de los indicadores no repintaban. En todas partes escribes "repaint, repaint, repaint"

Razón de la queja: