Aprender y escribir juntos en MQL5 - página 5

 
maxandsoft :

El caso es que cuando lo compilo durante la depuración me devuelve al editor MQL sin dar siquiera un error. Y cuando saco el EA a un gráfico, ni siquiera aparece en él. Es decir, ni la depuración ni el lanzamiento del EA dan errores en ningún sitio


He encontrado un error, pero dice que la DLL no está permitida, es decir, no la veo. La pregunta es ¿dónde debería estar? (en la versión 4 no era necesario sobrescribirlo en ningún sitio, estaba por defecto en la carpeta Sistemas de Windows)

 
maxandsoft   :


Pero he encontrado un error que dice que la DLL no está permitida, es decir, que no puede verla. La cuestión es dónde debe ubicarse. (en la versión 4 no era necesario sobrescribirlo en ningún sitio, estaba por defecto en la carpeta Sistemas de Windows)

Intenta permitir la importación desde una DLL


 

Creo que un buen compilador se diferencia de un mal compilador en que puede separar el código inviable del viable. Y esto es lo principal. A menudo te encuentras con cosas impresionantes que no existen en ningún contexto técnico. Eso contribuye al desarrollo y al perfeccionamiento de los medios expresivos de la lengua. Y si tiene que preocuparse de en qué formato introducir los datos, no es el compilador, es ... En mi opinión, el compilador de MQL5 necesita mejorar no menos que la interfaz del programa.

 
Rosh   :

Prueba a permitir la importación desde una DLL

Esto es lo que dice

2010.01.14:27:56 GetInternet (EURJPY,H1) Violación de acceso leída a 0x00040017 en 'C:\Users\FujitsuAppData\Roaming\MetaQuotes\TerminalD0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries\winet.dll'

 
maxandsoft   :

Esto es lo que dice

2010.01.14:27:56 GetInternet (EURJPY,H1) Violación de acceso leída a 0x00040017 en 'C:\Users\FujitsuAppData\Roaming\MetaQuotes\TerminalD0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries\winet.dll'

Por favor, adjunte el código fuente. Puede enviarse como mensaje privado.
 
mql5   :

Por favor, adjunte el texto fuente. Puede enviarse como mensaje privado.

//+------------------------------------------------------------------+
//|                                                  GetInternet.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

#import "wininet.dll"
  int InternetAttemptConnect (int x);
  int InternetOpenA(string sAgent, int lAccessType, 
                    string sProxyName = "", string sProxyBypass = "", 
                    int lFlags = 0);
  int InternetOpenUrlA(int hInternetSession, string sUrl, 
                       string sHeaders = "", int lHeadersLength = 0,
                       int lFlags = 0, int lContext = 0);
          
  int InternetReadFile(int hFile, int& sBuffer[], int lNumBytesToRead, 
                       int& lNumberOfBytesRead[]);
  int InternetCloseHandle(int hInet);



#import
input int Step = 300;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("Старт...");
   

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
    Comment(GetURL("http://www.forexremote.net"));
    
  }
//+------------------------------------------------------------------+


//+----------------------------------------------------------------------------------------------------------+
//| Функция получения WEB страницы                                                                           |
//+----------------------------------------------------------------------------------------------------------+
string GetURL(string url)
{
   int rv = InternetAttemptConnect(0);
   if(rv != 0)
     {
       Alert("Ошибка при вызове InternetAttemptConnect()");
       return("");
     }

   int hInternetSession = InternetOpenA("Microsoft Internet Explorer", 1, "", "", 0);
   if(hInternetSession <= 0)
     {
       Alert("Ошибка при вызове InternetOpenA()");
       return("");         
     }

   int hURL = InternetOpenUrlA(hInternetSession, url, "", 0, 0, 0);
   if(hURL <= 0)
    {
       Print("Ошибка получения данных с узла!");
       //fComment("Ошибка получения данных с узла!",true);
       InternetCloseHandle(hInternetSession);
       return("");         
     } 
          
   int cBuffer[256];
   int dwBytesRead[1]; 
   string TXT = "";
   while(!IsStopped())
     {
       bool bResult = InternetReadFile(hURL, cBuffer, 1024, dwBytesRead);
       if(dwBytesRead[0] == 0)
           break;
       string text = "";   
       for(int i = 0; i < 256; i++)
         {
              text = text + CharToString(cBuffer[i] & 0x000000FF);
              if(StringLen(text) == dwBytesRead[0])
                  break;
              text = text + CharToString(cBuffer[i] >> 8 & 0x000000FF);
              if(StringLen(text) == dwBytesRead[0])
                  break;
           text = text + CharToString(cBuffer[i] >> 16 & 0x000000FF);
           if(StringLen(text) == dwBytesRead[0])
               break;
           text = text + CharToString(cBuffer[i] >> 24 & 0x000000FF);
         }
       TXT = TXT + text;
       //Sleep(500);

     }
     InternetCloseHandle(hInternetSession);
     return(TXT);
}
//+----------------------------------------------------------------------------------------------------------+
//| Конец Функции получения WEB страницы                                                                     |
//+----------------------------------------------------------------------------------------------------------+
 
maxandsoft:
Esto es lo que dice.

2010.01.14:27:56 GetInternet (EURJPY,H1) Violación de acceso leída a 0x00040017 en 'C:\Users\FujitsuAppData\Roaming\MetaQuotes\TerminalD0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries\winet.dll'

Gracias por su mensaje, el error ha sido corregido. Espera una actualización.
 

er... con la compilación 239 el error ha desaparecido, pero no del todo...

2010.01.14 23:55:33 GetInternet (USDJPY,H1) ¡Error al obtener datos del nodo!

Resultó que la razón de esto último eran las funciones, sustituyéndolas por unicode

InternetOpenW() e InternetOpenUrlW()

He resuelto ligeramente* el problema...

Sólo que no usé Expert Advisor, corregí el código como un script.


*Ligeramente, sólo porque se dejó para vencer la codificación ytf-8 del sitio:

<th width="50">&nbsp;ÐЎÐsбщеќЏ&nbsp;</th>

 
kombat:

er... con la compilación 239 el error ha desaparecido, pero no del todo...

2010.01.14 23:55:33 GetInternet (USDJPY,H1) ¡Error al obtener datos del nodo!

Resultó que la razón de esto último eran las funciones, sustituyéndolas por unicode

InternetOpenW() e InternetOpenUrlW()

He resuelto ligeramente* el problema...

Sólo que no usé Expert Advisor, corregí el código como un script.


*Ligeramente, sólo porque se dejó para vencer la codificación ytf-8 del sitio:

<th width="50">&nbsp;ÐЎÐsбщеќЏ&nbsp;</th>

 
maxandsoft:
a la espera de la nueva construcción
Razón de la queja: