Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 837

 
Alexander Layzerevich:

Corregido el código de MT5 para enviar datos al Indicador:

Pero el error es el mismo.

Deja de mirar código basura escrito en mql4 y lo conseguirás más rápido.

 
Igor Makanu:

Mira las propiedades del proyecto en Visual Studio, debería haber un ajuste para la plataforma de compilación de la dll - MT4 necesita código de 32 bits

P.D.: busca en Google la configuración de VS

Traté de buscar tal motor de búsqueda de configuración da respuestas que como el contrario de 32 a 64 y en general y no entendía cómo hacer este ajuste. Si entiendo un poco aquí lo tengo por defecto 32 es

Y encontré un menú con un ajuste.

Así que no sé si aquí se pone por defecto en 32.

 

¿Pueden decirme por qué el mismo código funciona en MT4 pero no en MT5? En MT5 la variable strNum siempre =1, pero en MT4 el contador ++ funciona como debería y strNum = número de partidas en el archivo.

int strNum;
void OnStart()
  {
 FileNum();
 Alert1();
  } 

  void FileNum()
{
      int handle=FileOpen("File.csv",FILE_CSV|FILE_READ,';');
      strNum=0; 
      while(!FileIsEnding(handle))
{
      FileReadString(handle);
      strNum++;
      if(FileIsEnding(handle)==true)
      break;
}
      FileClose(handle);
}

      void Alert1()
{
      Alert (strNum);
}
 
Seric29:

Trató de buscar un motor de búsqueda tal ajuste da respuestas que como el contrario de 32 a 64 y en general no entendía cómo hacer este ajuste. Si entiendo un poco aquí lo tengo por defecto es 32

Y encontré un menú con un ajuste.

Así que no sé si es 32 por defecto aquí.

También con las bibliotecas, está lo de /MT o /MD, yo me confundo todo el tiempo :-) Esto también se encuentra en algún lugar en el estudio de fácil uso

Muéstrame el proyecto completo, incluyendo todo lo que has hecho allí en C++ y Mql. No creo que sea un derecho de autor feroz :-)
le diremos lo que está mal, de lo contrario va a colar a todo el mundo con la telepatía durante mucho tiempo.


 
Maxim Kuznetsov:

También está el tema de la biblioteca /MT o /MD, yo los confundo todo el tiempo :-) Esto también está en algún lugar de los estudios de fácil uso

Muéstrame el proyecto completo, incluyendo todo lo que has hecho en C++ y Mql. No creo que sea el peor derecho de autor :-)
Le diremos lo que está mal por el código completo, de lo contrario va a colar a todos con la telepatía durante mucho tiempo


Archivo con la extensión .def

archivo con extensión .cpp

en mql4, simplemente arrastré un archivo de la carpeta de las Bibliotecas del terminal

#import "dllmt42.dll"
 int _add(int a=0, int b=0);
#import

Y luego estúpidamente llamar a la función, sólo devuelve 18 y no hace nada más, es como un experimento para ver si funciona o no.

 
Seric29:

Archivo con extensión .def

Archivo con extensión .cpp

Acabo de copiar el archivo de la carpeta del terminal Bibliotecas a mql4

Y luego simplemente llamo a la función, devuelve 18 y no hace nada más, es como un experimento para ver si funciona o no.

¿Por qué se añade una raya para añadir? Deshazte de ella.

todos los identificadores en todos los archivos deben ser estrictamente idénticos, sin edad de fantasía :-)

 
Alexey Viktorov:

Deja de mirar código basura escrito en mql4 y lo conseguirás más rápido.

Todo, como dices, "código de mierda" está escrito según la ayuda básica del lenguaje.https://www.mql5.com/ru/docs/basis/function/call

También dice"Una función no puede ser declarada dentro de otra función."

Eso es exactamente lo que dice. Por eso no funciona.

Por eso estoy tratando de averiguar con los expertos cómo llamar a la función(Desviación(Kanal)). Cuando depende de la llamada de la función(doble Envelopes(...))

Actualización: El problema se ha resuelto parcialmente.
 
Maxim Kuznetsov:

¿Por qué añades una línea __dash a la adición? Deshazte de ella.

todos los identificadores en todos los archivos deben ser estrictamente idénticos, sin fantasías sobre la edad :-)

Bueno, todos lo hicieron según las instrucciones y yo lo hice, ahora lo quitaré y veré. En definitiva, ha funcionado, ha devuelto 18. Gracias, seguiré experimentando.

 
Alexander Layzerevich:

Todo, como dices, "código de mierda" está escrito según la ayuda básica del lenguaje.https://www.mql5.com/ru/docs/basis/function/call

También dice"Una función no puede ser declarada dentro de otra función."

Eso es exactamente lo que dice. Por eso no funciona.

Por eso estoy tratando de averiguar con los expertos cómo llamar a la función(Desviación(Kanal)). Cuando depende de la llamada de la función indicadora(doble Envelopes(...))

Actualización: El problema se ha resuelto parcialmente.

Ya ha llamado y pasado el valor devuelto por la funciónDesviación(Kanal) a la funciónEnvolventes(........)*.

y en la propia funciónEnvelopes(........) se declara el último parámetro, que tomará este valor


es así

double Envelopes(string symb, ENUM_TIMEFRAMES tf, int period, int shift, int method, int price, int buff, double Dev)
{
  double buf[1];
  int handle=iEnvelopes(Symbol(), tf, period, shift, method, price, Dev);
   if(handle<0)
   {
    Print("Failed to create handle ATR, Error: ",GetLastError());
    return(WRONG_VALUE);
   } else
   {
    if(CopyBuffer(handle,buff,0,1,buf)<0)
    {
     Print("Failed to copy data from the indicator ATR, Error: ",GetLastError());
     return(WRONG_VALUE);
    }
   }
   return(buf[0]);
}
 
KrasAleks:

Saludos a todos. Buena suerte en la vida y provecho en el trabajo.

Pido ayuda (inesperado, ¿eh? :) )

...................................................

Y ahí es donde me quedé atascado :). Qué utilizar en lugar de GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic). The_failure_level(Symbol(),OP_BUY,Magic) debe ser usado pero como obtenerlo...


Te pediré que me ayudes, por favor, sé mi amigo.
Z.U. Si das un consejo, te lo ruego, ten en cuenta que aún estoy muy verde, no te dé pereza darme un poco más de detalle, ya sabes, como si: FOREST THERE, no olvide señalar la dirección <------ || ------>.

Gracias por su atención :).

Buenos días, tarde, noche, noche (subrayado).

No quiero ser grosero, pero te haré una pregunta. He estado pensando en mi mensaje .... Se supone que necesito el último OP_BUY && OP_SELL, su Magik || ticket || open_price..... ¿Estoy en lo cierto? Si encuentro el último pedido, puedo, en teoría, calcular la distancia desde él hasta el pedido actual. He descargado un par de "promedios" aquí, creo que debería haber algo similar, si no idéntico, ..... sólo para darme cuenta de que he encontrado lo que estaba buscando..... :)

Si a nadie le importa :), seguiré esperando vuestros consejos, al menos una referencia a la fuente de la información que necesito (si no esel librode Kovalev, que empecé con él hace 3 días).

Razón de la queja: