Pourquoi l'indicateur d'actualité ne fonctionne-t-il pas sous Windows 7 ?

 
А ?
 
Up
 

90% - sortir le terminal du dossier programme filec...

 
xrust:

90% - sortir le terminal du dossier programme filec...

J'ai le terminal sur mon lecteur D. Il n'y a pas de tel dossier...
 

puis regardez dans le pare-feu (mais d'abord, regardez où les fichiers sont enregistrés)

 
Quel pare-feu ? Ce n'est pas la question. C'est le cristal de Kaspersky.
 
vlandex:


Envoyez l'indicateur ici
 
Mischek:

Envoyez l'indicateur ici
//+------------------------------------------------------------------+
//| News.mq4 |
//| * |
//| * |
//+------------------------------------------------------------------+
#property copyright "Bulagin Andrey"
#lien de propriété "andre9@ya.ru"
#property indicator_chart_window
#property indicator_buffers 0

//----
#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.
extern bool today = false ; // afficher uniquement les nouvelles du jour (dd$)
extern bool lines = true ; // afficher des lignes verticales sur le graphique au moment des communiqués de presse
extern bool texts = true ; // afficher les étiquettes de texte avec les descriptions des nouvelles
extern bool comments = true ; // affiche une liste des actualités futures et passées les plus proches
extern int int total_in_list = 22 ; // nombre de nouvelles dans la liste

extern bool high = true ; // affiche les nouvelles importantes
extern bool medium = true ; // affiche les nouvelles d'importance moyenne
extern bool low = true ; // afficher les nouvelles de faible importance

extern int update = 15 ; // mise à jour de la liste des nouvelles toutes les 15 minutes

extern bool auto = true ; // sélection automatique des nouvelles adaptées à la paire de devises du graphique
extern bool eur = true ; // afficher les nouvelles pour les devises spécifiées
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 ; // couleur des informations importantes
extern color medium_color = Sienna ; // couleur pour les informations générales
extern color low_color = DarkSlateGray ; // couleur pour les nouvelles mineures

extern bool russian = false ; // utiliser un fichier de traduction pour la russification des nouvelles

extern int server_timezone = 2 ; // fuseau horaire du serveur (Alpary - GMT+2)
extern int show_timezone = 4 ; // afficher le fuseau horaire (Moscou - GMT+4)

extern bool alerts = false ; // Alerter le serveur par des signaux sonores.
extern int alert_before = 5 ; // alerte 5 minutes avant le communiqué de presse.
extern int alert_every = 30 ; // bip toutes les 30 secondes

// -----------------------------------------------------------------------------------------------------------------------------
int TotalNews = 0 ;
chaîne News [1000] [10] ;
datetime LastUpdate = 0 ;
int NextNewsLine = 0 ;
int LastAlert = 0 ;
chaîne de caractères Traduire [1000] [2] ;
int TotalTranslate = 0 ;

// -----------------------------------------------------------------------------------------------------------------------------
int init()
{
if(auto) // sélectionne automatiquement les nouvelles appropriées pour la paire de devises actuelle.
{
chaîne de caractères sym = Symbole() ;
if(StringFind(sym, "EUR") != -1) eur = true ; else eur = false ;
if(StringFind(sym, "USD") != -1) usd = true ; else usd = false ;
if(StringFind(sym, "JPY") != -1) jpy = true ; else jpy = false ;
if(StringFind(sym, "GBP") != -1) gbp = true ; else gbp = false ;
if(StringFind(sym, "CHF") != -1) chf = true ; else chf = false ;
if(StringFind(sym, "CAD") != -1) cad = true ; else cad = false ;
if(StringFind(sym, "AUD") != -1) aud = true ; else aud = false ;
if(StringFind(sym, "NZD") != -1) nzd = true ; else nzd = false ;
}

if(russian) //préparation de modèles de traduction de nouvelles
{
int fhandle = FileOpen("translate.txt", FILE_READ) ;
si(fhandle>0)
{
int i = 0 ;
while(!FileIsEnding(fhandle))
{
string str = FileReadString(fhandle) ;
if(str == "") break ;
Traduire[i][0] = str ;
Traduire[i][1] = FileReadString(fhandle) ;
if(Translate[i][1] == "") Translate[i][1] = Translate[i][0] ;
i++ ;
}
TotalTranslate = i ;
FileClose(fhandle) ;
}
}

retour(0) ;
}

// -----------------------------------------------------------------------------------------------------------------------------
int deinit()
{
for(int i=0 ; i<TotalNews ; i++)
{
ObjectDelete("News Line "+i) ;
ObjectDelete("News Text "+i) ;
}

retour(0) ;
}

// -----------------------------------------------------------------------------------------------------------------------------
int start()
{
string 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|" ;

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

datetime time = TimeCurrent() ;
if(time >= LastUpdate+update*60) // mise à jour de la liste des actualités
{
for(int i=0 ; i<TotalNews ; i++)
{
ObjectDelete("News Line "+i) ;
ObjectDelete("News Text "+i) ;
}

LastUpdate = time ;
si(aujourd'hui==vrai)
{
string str = ReadWebPage("http://www.dailyfx.com/calendar/Dailyfx_Global_Economic_Calendar.csv?direction=none&collector=allInFolderDateDesc&view=today&timezone=GMT&currencyFilter="+Filtre1+"&importanceFilter="+Filtre2+"&time="+time) ;
}
else str = ReadWebPage("http://www.dailyfx.com/calendar/Dailyfx_Global_Economic_Calendar.csv?direction=none&collector=allInFolderDateDesc&view=week&timezone=GMT&currencyFilter="+Filtre1+"&importanceFilter="+Filtre2+"&time="+time) ;

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


chaîne arr[1000] ;
TotalNews = Explode(str, "\r\n\r\n", arr) ;
for( i=0 ; i<TotalNews ; i++)
{
chaîne arr1[10] ;
Explode(arr[i], ",", arr1) ;
for( int j=0 ; j<10 ; j++ )
Nouvelles [i][j] = arr1[j] ;
chaîne de caractères tmp[3], tmp1[2] ;
Explode(News[i][0], " ", tmp) ;
int mon = 0 ;
si(tmp[1]=="Jan") mon=1 ; sinon
si(tmp[1]=="Feb") mon=2 ; sinon
si(tmp[1]=="Mar") mon=3 ; sinon
si(tmp[1]=="Apr") mon=4 ; sinon
si(tmp[1]=="May") mon=5 ; sinon
si(tmp[1]=="Jun") mon=6 ; sinon
si(tmp[1]=="Jul") mon=7 ; sinon
si(tmp[1]=="Aug") mon=8 ; sinon
si(tmp[1]=="Sep") mon=9 ; sinon
si(tmp[1]=="Oct") mon=10 ; sinon
si(tmp[1]=="Nov") mon=11 ; sinon
if(tmp[1]=="Dec") mon=12 ;
News[i][0] = Year()+". "+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 ;
News[i][1] = tmp1[0]+" : "+tmp1[1] ;

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

if(russian)
{
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 current = 0 ;
for( i=0 ; i<TotalNews ; i++) // créer des lignes et des titres de news sur le graphique
{
si(StrToTime(News[i][0]+""+News[i][1]) == current) continuer ;
current = StrToTime(News[i][0]+""+News[i][1]) ;
couleur clr ;
if(News[i][5] == "Low") clr = low_color ; else
if(News[i][5] == "Medium") clr = medium_color ; else
if(News[i][5] == "High") clr = high_color ;

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

si(lignes)
{
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("Ligne de nouvelles "+i, News[i][9] + " " + News[i][4] + " + texte, 8) ;
}

if (textes)
{
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] + " + texte, 8) ;
}


}

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

if(comments) //création d'une liste de nouvelles sur le graphique
{
int start = 0 ;
if(NextNewsLine >= 5) start = NextNewsLine - 5 ;
string com = "_____ LastNewsLine ______________________\n" ;
for(i=start ; i<start+total_in_list && i<TotalNews ; i++)
{
texte = "" ;
if(News[i][8] != "" || News[i][7] != "") text = "[" + News[i][8] + ", " + News[i][7] + "]" ;
if(News[i][6] != "") text = text + " + News[i][6] ;
com = com + News[i][9] + " + StringSubstr(News[i][5], 0, 1) + " + News[i][4] + " + texte + "\n" ;
if(i==NextNewsLine-1) com = com + "_____ Future News ________________________\n" ;
}
Commentaire(com) ;
}
} // fin de la mise à jour de la liste des nouvelles

datetime next_time = StrToTime(News[NextNewsLine][0]+""+News[NextNewsLine][1]) ;
if(time >= next_time) // la prochaine nouvelle est sortie
{
LastUpdate = time - update*60 + 60 ; // mise à jour de la liste des actualités une minute après le prochain communiqué de presse.
for(i=0 ; i<TotalNews ; i++)
si(StrToTime(News[i][0]+""+News[i][1]) > time) break ;
NextNewsLine = i ;

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

next_time = StrToTime(News[NextNewsLine][0]+""+News[NextNewsLine][1]) ;
if(time >= next_time - alert_before*60) // la prochaine nouvelle est sur le point d'être publiée
{
si(time >= LastAlert + alert_every)
{
if(alertes) PlaySound("alert.wav") ;
Print("Les prochaines informations seront publiées dans " + (((next_time-time)-(next_time-time)%60)/60) + " " + ((next_time-time)%60) + " secondes(s).") ;
LastAlert = time ;
}
}


retour(0) ;
}

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

retour(i+1) ;
}

// -----------------------------------------------------------------------------------------------------------------------------
string ReadWebPage(string url)
{
si(!IsDllsAllowed())
{
Alert("Nous devons autoriser les DLL dans les paramètres ;)
retour (") ;
}
int rv = InternetAttemptConnect(0) ;
si(rv != 0)
{
Alert("Erreur lors de l'appel de InternetAttemptConnect()") ;
retour (") ;
}
int hInternetSession = InternetOpenA("Microsoft Internet Explorer",
0, "", "", 0) ;
si(hInternetSession <= 0)
{
Alert("Erreur lors de l'appel à InternetOpenA()") ;
retour (") ;
}
int hURL = InternetOpenUrlA(hInternetSession,
url, "", 0, 0, 0) ;
si(hURL <= 0)
{
Alert("Erreur lors de l'appel à InternetOpenUrlA() ;
InternetCloseHandle(hInternetSession) ;
retour(0) ;
}
int cBuffer[256] ;
int dwBytesRead[1] ;
string TXT = "" ;
while(!IsStopped())
{
for(int i = 0 ; i<256 ; i++) cBuffer[i] = 0 ;
Le bool bResult = InternetReadFile(hURL, cBuffer, 1024, dwBytesRead) ;
si(dwBytesRead[0] == 0) break ;
string text = "" ;
pour(i = 0 ; i < 256 ; i++)
{
texte = texte + CharToStr(cBuffer[i] & 0x000000FF) ;
si(StringLen(text) == dwBytesRead[0]) break ;
texte = texte + CharToStr(cBuffer[i] >> 8 & 0x000000FF) ;
si(StringLen(text) == dwBytesRead[0]) break ;
texte = texte + CharToStr(cBuffer[i] >> 16 & 0x000000FF) ;
si(StringLen(text) == dwBytesRead[0]) break ;
texte = texte + CharToStr(cBuffer[i] >> 24 & 0x000000FF) ;
}
TXT = TXT + texte ;
Sleep(1) ;
}
if(TXT == "") Alert("Aucune donnée lue") ;
InternetCloseHandle(hInternetSession) ;

retour(TXT) ;
}

// -----------------------------------------------------------------------------------------------------------------------------
 
vlandex:
Essayez
Dossiers :
news.mq4  18 kb
 

Je supprime le reste du fil. Combien de spamming pouvez-vous faire ?

 

Et si d'autres spams apparaissent, j'aurai la possibilité de vous bannir. C'est juste un avertissement.