Perché l'indicatore delle notizie non funziona in Windows 7?

 
А?
 
Su
 

90% - togliere il terminale dalla cartella programma filec...

 
xrust:

90% - togliere il terminale dalla cartella programma filec...

Ho il terminale sul mio drive D. Non c'è una tale cartella...
 

poi guarda nel firewall (ma prima, guarda dove sono salvati i file)

 
Quale firewall? Non è questo il punto. È il cristallo di Kaspersky.
 
vlandex:


Invia l'indicatore qui
 
Mischek:

Invia l'indicatore qui
//+------------------------------------------------------------------+
//| Notizie.mq4 |
//| * |
//| * |
//+------------------------------------------------------------------+
#proprietà copyright "Bulagin Andrey"
#proprietà link "andre9@ya.ru"
#proprietà indicator_chart_window
#proprietà indicator_buffers 0

//----
#importare "wininet.dll"
int InternetAttemptConnect (int x);
int InternetOpenA(stringa sAgent, int lAccessType,
stringa sProxyName = "", stringa sProxyBypass = "",
int lFlags = 0);
InternetOpenUrlA(int hInternetSession, stringa sUrl,
stringa sHeaders = "", int lHeadersLength = 0,
int lFlags = 0, int lContext = 0);
int InternetReadFile(int hFile, int& sBuffer[], int lNumBytesToRead,
int& lNumberOfBytesRead[]);
int InternetCloseHandle(int hInet);
#importare.
extern bool today = false; // mostra solo le notizie di oggi (dd$)
extern bool lines = true; // mostra linee verticali sul grafico nei momenti di rilascio delle notizie
extern bool texts = true; // mostra le etichette di testo con le descrizioni delle notizie
extern bool comments = true; // visualizza una lista delle notizie future e passate più vicine
extern int int total_in_list = 22; // numero di notizie nella lista

extern bool high = true; // visualizza le notizie importanti
extern bool medium = true; // visualizza le notizie di media importanza
extern bool low = true; // mostra le notizie di bassa importanza

extern int update = 15; // aggiorna la lista delle notizie ogni 15 minuti

extern bool auto = true; // seleziona automaticamente le notizie adatte alla coppia di valute del grafico
extern bool eur = true; // visualizza le notizie per le valute specificate
extern bool usd = true;
extern bool jpy = true;
extern bool gbp = true;
extern bool chf = true;
extern bool cad = true;
extern bool aud = true;
extern bool nzd = true;

extern color high_color = Maroon; // colore delle notizie importanti
extern color medium_color = Sienna; // colore per notizie generali
extern color low_color = DarkSlateGray; // colore per le notizie minori

extern bool russian = false; // usa un file di traduzione per la russificazione delle notizie

extern int server_timezone = 2; // fuso orario del server (Alpary - GMT+2)
extern int show_timezone = 4; // mostra il fuso orario (Mosca - GMT+4)

extern bool alerts = false; // Avvisa il server con segnali sonori.
extern int alert_before = 5; // allerta 5 minuti prima del rilascio della notizia.
extern int alert_every = 30; // suona ogni 30 secondi

// -----------------------------------------------------------------------------------------------------------------------------
int TotalNews = 0;
stringa News[1000][10];
datetime LastUpdate = 0;
int NextNewsLine = 0;
int LastAlert = 0;
stringa Translate[1000][2];
int TotalTranslate = 0;

// -----------------------------------------------------------------------------------------------------------------------------
int init()
{
if(auto) // seleziona automaticamente le notizie adatte alla coppia di valute corrente
{
stringa sym = Symbol();
if(StringFind(sym, "EUR") != -1) eur = true; altrimenti eur = false;
if(StringFind(sym, "USD") != -1) usd = true; altrimenti usd = false;
if(StringFind(sym, "JPY") != -1) jpy = true; altrimenti jpy = false;
if(StringFind(sym, "GBP") != -1) gbp = true; altrimenti gbp = false;
if(StringFind(sym, "CHF") != -1) chf = true; altrimenti chf = false;
if(StringFind(sym, "CAD") != -1) cad = vero; altrimenti cad = falso;
if(StringFind(sym, "AUD") != -1) aud = true; altrimenti aud = false;
if(StringFind(sym, "NZD") != -1) nzd = true; altrimenti nzd = false;
}

if(russian) //preparazione dei modelli di traduzione delle notizie
{
int fhandle = FileOpen("translate.txt", FILE_READ);
se(fhandle>0)
{
int i = 0;
while(!FileIsEnding(fhandle))
{
stringa str = FileReadString(fhandle);
if(str == "") break;
Translate[i][0] = str;
Translate[i][1] = FileReadString(fhandle);
if(Translate[i][1] == "") Translate[i][1] = Translate[i][0];
i++;
}
TotalTranslate = i;
FileClose(fhandle);
}
}

ritorno(0);
}

// -----------------------------------------------------------------------------------------------------------------------------
int deinit()
{
for(int i=0; i<TotalNews; i++)
{
ObjectDelete("Linea di notizie "+i);
ObjectDelete("Testo della notizia "+i);
}

ritorno(0);
}

// -----------------------------------------------------------------------------------------------------------------------------
int start()
{
stringa Filter1 = "";
if(!eur) Filter1 = Filter1 + "EUR|";
if(!usd) Filter1 = Filter1 + "USD|";
if(!jpy) Filter1 = Filter1 + "JPY|";
if(!gbp) Filter1 = Filter1 + "GBP|";
if(!chf) Filter1 = Filter1 + "CHF|";
if(!cad) Filter1 = Filter1 + "CAD|";
if(!aud) Filter1 = Filter1 + "AUD|";
if(!nzd) Filter1 = Filter1 + "NZD|";

stringa Filter2 = "";
if(!high) Filter2 = Filter2 + "high|";
if(!medium) Filter2 = Filter2 + "Medium|";
if(!low) Filter2 = Filter2 + "Low|";

datetime time = TimeCurrent();
if(time >= LastUpdate+update*60) // aggiornare la lista delle notizie
{
for(int i=0; i<TotalNews; i++)
{
ObjectDelete("Linea di notizie "+i);
ObjectDelete("Testo della notizia "+i);
}

LastUpdate = time;
se(oggi==vero)
{
string str = ReadWebPage("http://www.dailyfx.com/calendar/Dailyfx_Global_Economic_Calendar.csv?direction=none&collector=allInFolderDateDesc&view=today&timezone=GMT&currencyFilter="+Filtro1+"&importanceFilter="+Filtro2+"&time="+time);
}
else str = ReadWebPage("http://www.dailyfx.com/calendar/Dailyfx_Global_Economic_Calendar.csv?direction=none&collector=allInFolderDateDesc&view=week&timezone=GMT&currencyFilter="+Filtro1+"&importanceFilter="+Filtro2+"&time="+time);

if(str == "") return(0);
int pos = StringFind(str,"\r\n\r\n");
str = StringTrimRight(StringTrimLeft(StringSubstr(str,pos+6));


stringa arr[1000];
TotalNews = Explode(str, "\r\n\r\n", arr);
for( i=0; i<TotalNews; i++)
{
stringa arr1[10];
Explode(arr[i], ",", arr1);
for( int j=0; j<10; j++ )
Notizie[i][j] = arr1[j];
stringa tmp[3], tmp1[2];
Explode(News[i][0], " ", tmp);
int mon = 0;
se(tmp[1]=="Jan") mon=1; altrimenti
se(tmp[1]=="Feb") mon=2; altrimenti
se(tmp[1]=="Mar") mon=3; altrimenti
se(tmp[1]=="Apr") mon=4; altrimenti
se(tmp[1]=="maggio") mon=5; altrimenti
se(tmp[1]=="Jun") mon=6; altrimenti
se(tmp[1]=="Jul") mon=7; altrimenti
se(tmp[1]=="Aug") mon=8; altrimenti
se(tmp[1]=="Sep") mon=9; altrimenti
se(tmp[1]=="Oct") mon=10; altrimenti
se(tmp[1]=="Nov") mon=11; altrimenti
if(tmp[1]=="Dec") mon=12;
Notizie[i][0] = Anno()+". "+mon+". "+tmp[2];

Explode(News[i][1], " ", tmp);
bool pm = tmp[1]=="PM";
Explode(tmp[0], ":", tmp1);
tmp1[0] = StrToInteger(tmp1[0])%12;
if(pm) tmp1[0] = StrToInteger(tmp1[0])+12;
Notizie[i][1] = tmp1[0]+": "+tmp1[1];

datetime dt = StrToTime(News[i][0]+""+News[i][1]);
Notizie[i][0] = TimeToStr(dt + server_timezone*60*60, TIME_DATE);
Notizie[i][1] = TimeToStr(dt + server_timezone*60*60, TIME_MINUTES);
Notizie[i][9] = TimeToStr(dt + show_timezone*60*60, TIME_MINUTES);

se(russo)
{
for(j=0; j<TotalTranslate; j++)
{
pos = StringFind(News[i][4], Translate[j][0]);
if(pos != -1) News[i][4] = StringSubstr(News[i][4], 0, pos) + Translate[j][1] + StringSubstr(News[i][4], pos+StringLen(Translate[j][0]);
}
}

}

datetime corrente = 0;
for( i=0; i<TotalNews; i++) // crea linee e titoli di notizie sul grafico
{
if(StrToTime(News[i][0]+""+News[i][1]) == corrente) continua;
current = StrToTime(News[i][0]+""+News[i][1]);
colore clr;
se(Notizie[i][5] == "Basso") clr = colore_basso; altrimenti
se(Notizie[i][5] == "Medio") clr = medium_color; altrimenti
if(Notizie[i][5] == "Alto") clr = high_color;

stringa testo = "";
if(News[i][8] != "" || News[i][7] != "") text = "[" + News[i][8] + ", " + News[i][7] + "]";
if(News[i][6] != "") testo = testo + " + News[i][6];

se(linee)
{
ObjectCreate("News Line "+i, OBJ_VLINE, 0, current, 0);
ObjectSet("News Line "+i, OBJPROP_COLOR, clr);
ObjectSet("News Line "+i, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet("News Line "+i, OBJPROP_BACK, true);
ObjectSetText("News Line "+i, News[i][9] + " " + News[i][4] + " + testo, 8);
}

se (testi)
{
ObjectCreate("News Text "+i, OBJ_TEXT, 0, current, WindowPriceMin()+(WindowPriceMax()-WindowPriceMin())*0.8 );
ObjectSet("News Text "+i, OBJPROP_COLOR, clr;)
ObjectSet("News Text "+i, OBJPROP_ANGLE, 90);
ObjectSetText("News Text "+i, News[i][9] + " " + News[i][4] + " + testo, 8);
}


}

for(i=0; i<TotalNews; i++)
if(StrToTime(News[i][0]+""+News[i][1]) > time) break;
NextNewsLine = i;
LastAlert = 0;

if(commenti) //creazione di una lista di notizie sul grafico
{
int start = 0;
if(NextNewsLine >= 5) start = NextNewsLine - 5;
stringa com = "_____ LastNewsLine ______________________\n";
for(i=start; i<start+total_in_list && i<TotalNews; i++)
{
testo = "";
if(News[i][8] != "" || News[i][7] != "") text = "[" + News[i][8] + ", " + News[i][7] + "]";
if(Notizie[i][6] != "") testo = testo + " " + Notizie[i][6];
com = com + News[i][9] + " + StringSubstr(News[i][5], 0, 1) + " + News[i][4] + " + text + "\n";
if(i==NextNewsLine-1) com = com + "_____ Future News ________________________\n";
}
Commento(i);
}
} // fine dell'aggiornamento della lista di notizie

datetime next_time = StrToTime(News[NextNewsLine][0]+""+News[NextNewsLine][1]);
if(time >= next_time) // la prossima notizia è uscita
{
LastUpdate = time - update*60 + 60; // aggiorna la lista delle notizie un minuto dopo il prossimo rilascio di notizie
for(i=0; i<TotalNews; i++)
if(StrToTime(News[i][0]+""+News[i][1]) > time) break;
NextNewsLine = i;

LastAlert = 0;
se(commenti)
{
inizio = 0;
if(NextNewsLine >= 5) start = NextNewsLine - 5;
com = "";
for(i=start; i<start+10 && i<TotalNews; i++)
{
testo = "";
if(News[i][8] != "" || News[i][7] != "") text = "[" + News[i][8] + ", " + News[i][7] + "]";
if(Notizie[i][6] != "") testo = testo + " " + Notizie[i][6];
com = com + News[i][9] + " + StringSubstr(News[i][5], 0, 1) + " " + News[i][4] + " + text + "\n";
}
Commento(i);
}
}

next_time = StrToTime(News[NextNewsLine][0]+""+News[NextNewsLine][1]);
if(time >= next_time - alert_before*60) // la prossima notizia sta per essere pubblicata
{
if(time >= LastAlert + alert_every)
{
se(avvisi) PlaySound("alert.wav");
Print("La prossima notizia sarà rilasciata tra " + ((next_time)-(next_time)%60)/60) + " " + ((next_time)%60) + " secondi(s).");
LastAlert = time;
}
}


ritorno(0);
}

// -----------------------------------------------------------------------------------------------------------------------------
int Explode(string str, string delimiter, string& arr[])
{
int i = 0;
int pos = StringFind(str, delimitatore);
mentre(pos != -1)
{
if(pos == 0) arr[i] = ""; altrimenti arr[i] = StringSubstr(str, 0, pos);
i++;
str = StringSubstr(str, pos+StringLen(delimitatore));
pos = StringFind(str, delimitatore);
if(pos == -1 || str == "") break;
}
arr[i] = str;

ritorno(i+1);
}

// -----------------------------------------------------------------------------------------------------------------------------
stringa ReadWebPage(stringa url)
{
se(!IsDllsAllowed())
{
Alert("Dobbiamo permettere le DLL nelle impostazioni;)
return(");
}
int rv = InternetAttemptConnect(0);
se(rv != 0)
{
Alert("Errore durante la chiamata a InternetAttemptConnect()");
return(");
}
int hInternetSession = InternetOpenA("Microsoft Internet Explorer",
0, "", "", 0);
se(hInternetSession <= 0)
{
Alert("Error calling InternetOpenA()");
return(");
}
hURL = InternetOpenUrlA(hInternetSession,
url, "", 0, 0, 0, 0);
se(hURL <= 0)
{
Alert("Errore nel chiamare InternetOpenUrlA();
InternetCloseHandle(hInternetSession);
ritorno(0);
}
int cBuffer[256];
int dwBytesRead[1];
stringa TXT = "";
mentre(!IsStopped())
{
for(int i = 0; i<256; i++) cBuffer[i] = 0;
Il bool bResult = InternetReadFile(hURL, cBuffer, 1024, dwBytesRead);
if(dwBytesRead[0] == 0) break;
stringa testo = "";
for(i = 0; i < 256; i++)
{
testo = testo + CharToStr(cBuffer[i] & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) break;
testo = testo + CharToStr(cBuffer[i] >> 8 & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) break;
testo = testo + CharToStr(cBuffer[i] >> 16 & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) break;
testo = testo + CharToStr(cBuffer[i] >> 24 & 0x000000FF);
}
TXT = TXT + testo;
Dormire(1);
}
if(TXT == "") Alert("Nessun dato letto");
InternetCloseHandle(hInternetSession);

return(TXT);
}

// -----------------------------------------------------------------------------------------------------------------------------
 
vlandex:
Prova
File:
news.mq4  18 kb
 

Cancello il resto del thread. Quanto spamming si può fare?

 

E se appare altro spam, mi sarà data la possibilità di bannarti. Questo è solo un avvertimento.

Motivazione: