Imparare e scrivere insieme in MQL5 - pagina 5

 
maxandsoft :

Il punto è che quando lo compilo durante il debug mi rimanda all'editor MQL senza nemmeno dare un errore. E quando tiro solo l'EA su un grafico, non appare nemmeno su di esso. Cioè, né il debug né il lancio dell'EA danno errori da nessuna parte


Ho trovato un errore ma dice che la DLL non è consentita - cioè non la vedo. La domanda è dove dovrebbe essere? (nella versione 4 non aveva bisogno di essere sovrascritto da nessuna parte, era di default nella cartella Systems di Windows)

 
maxandsoft   :


Ma ho trovato un errore che dice che la DLL non è permessa - cioè non può vederla. La domanda è: dove dovrebbe essere collocato? (nella versione 4 non aveva bisogno di essere sovrascritto da nessuna parte, era di default nella cartella Systems di Windows)

Prova a permettere l'importazione da una DLL


 

Penso che un buon compilatore differisca da un cattivo compilatore in quanto può eliminare il codice non vitale dal codice vitale. E questa è la cosa principale. Spesso ci si imbatte in cose che lasciano senza fiato e che non esistono in nessun contesto tecnico. Questo contribuisce allo sviluppo e al perfezionamento dei mezzi espressivi della lingua. E se dovete preoccuparvi di quale formato inserire i dati - non è il compilatore, è ... Secondo me, il compilatore in MQL5 ha bisogno di miglioramenti non meno dell'interfaccia del programma.

 
Rosh   :

Prova a permettere l'importazione da una DLL

Ora questo è ciò che dice

2010.01.14:27:56 GetInternet (EURJPY,H1) Violazione di accesso letto a 0x00040017 in 'C:\Users\FujitsuAppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries\winet.dll'

 
maxandsoft   :

Ora questo è ciò che dice

2010.01.14:27:56 GetInternet (EURJPY,H1) Violazione di accesso letto a 0x00040017 in 'C:\Users\FujitsuAppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries\winet.dll'

Si prega di allegare il codice sorgente. Può essere inviato come messaggio privato.
 
mql5   :

Si prega di allegare il testo sorgente. Può essere inviato come messaggio privato.

//+------------------------------------------------------------------+
//|                                                  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:
Ora questo è ciò che dice.

2010.01.14:27:56 GetInternet (EURJPY,H1) Violazione di accesso letto a 0x00040017 in 'C:\Users\FujitsuAppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries\winet.dll'

Grazie per il tuo messaggio, il bug è stato risolto. Aspetta un aggiornamento.
 

er... con la build 239 l'errore è sparito, ma non del tutto...

2010.01.14 23:55:33 GetInternet (USDJPY,H1) Errore nell'ottenere dati dal nodo!

Come si è scoperto, la ragione di quest'ultimo era le funzioni, sostituendole con unicode

InternetOpenW() e InternetOpenUrlW()

Ho leggermente* risolto il problema...

Solo che non ho usato Expert Advisor, ho corretto il codice come script.


*poco, solo perché è stato lasciato per sconfiggere la codifica ytf-8 del sito:

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

 
kombat:

er... con la build 239 l'errore è sparito, ma non del tutto...

2010.01.14 23:55:33 GetInternet (USDJPY,H1) Errore nell'ottenere dati dal nodo!

Come si è scoperto, la ragione di quest'ultimo era le funzioni, sostituendole con unicode

InternetOpenW() e InternetOpenUrlW()

Ho leggermente* risolto il problema...

Solo che non ho usato Expert Advisor, ho corretto il codice come script.


*poco, solo perché è stato lasciato per sconfiggere la codifica ytf-8 del sito:

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

 
maxandsoft:
in attesa della nuova costruzione