Why is the news indicator not working in Windows 7?

 
А?
 
Up
 

90% - take the terminal out of the programme folder filec...

 
xrust:

90% - take the terminal out of the programme folder filec...

I have the terminal on my D drive. There is no such folder...
 

then look in the firewall (but first, look where the files are saved)

 
What firewall? That's not the point. It's Kaspersky crystal.
 
vlandex:


Send the indicator here
 
Mischek:

Send the indicator here
//+------------------------------------------------------------------+
//| News.mq4 |
//| * |
//| * |
//+------------------------------------------------------------------+
#property copyright "Bulagin Andrey"
#property link "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; // show only news for today (dd$)
extern bool lines = true; // show vertical lines on the chart at news release moments
extern bool texts = true; // show text labels with news descriptions
extern bool comments = true; // show list of nearest future and past news
extern int int total_in_list = 22; // number of news in the list

extern bool high = true; // display important news
extern bool medium = true; // display news of medium importance
extern bool low = true; // show news of low importance

extern int update = 15; // update news list every 15 minutes

extern bool auto = true; // auto-select news suitable for the chart currency pair
extern bool eur = true; // display news for specified currencies
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; // colour of important news
extern color medium_color = Sienna; // colour for general news
extern color low_color = DarkSlateGray; // colour for minor news

extern bool russian = false; // use a translation file for news russification

extern int server_timezone = 2; // server time zone (Alpary - GMT+2)
extern int show_timezone = 4; // show time zone (Moscow - GMT+4)

extern bool alerts = false; // Alert the server by sound signals.
extern int alert_before = 5; // alert 5 minutes prior to news release.
extern int alert_every = 30; // beep every 30 seconds

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

// -----------------------------------------------------------------------------------------------------------------------------
int init()
{
if(auto) // auto-select news suitable for the current currency pair
{
string sym = Symbol();
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) //preparing news translation patterns
{
int fhandle = FileOpen("translate.txt", FILE_READ);
if(fhandle>0)
{
int i = 0;
while(!FileIsEnding(fhandle))
{
string 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);
}
}

return(0);
}

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

return(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) // updating the news list
{
for(int i=0; i<TotalNews; i++)
{
ObjectDelete("News Line "+i);
ObjectDelete("News Text "+i);
}

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

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


string arr[1000];
TotalNews = Explode(str, "\r\n\r\n\r\n", arr);
for( i=0; i<TotalNews; i++)
{
string arr1[10];
Explode(arr[i], ",", arr1);
for( int j=0; j<10; j++ )
News[i][j] = arr1[j];
string tmp[3], tmp1[2];
Explode(News[i][0], " ", tmp);
int mon = 0;
if(tmp[1]=="Jan") mon=1; else
if(tmp[1]=="Feb") mon=2; else
if(tmp[1]=="Mar") mon=3; else
if(tmp[1]=="Apr") mon=4; else
if(tmp[1]=="May") mon=5; else
if(tmp[1]=="Jun") mon=6; else
if(tmp[1]=="Jul") mon=7; else
if(tmp[1]=="Aug") mon=8; else
if(tmp[1]=="Sep") mon=9; else
if(tmp[1]=="Oct") mon=10; else
if(tmp[1]=="Nov") mon=11; else
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++) // create lines and titles of news on the chart
{
if(StrToTime(News[i][0]+""+News[i][1]) == current) continue;
current = StrToTime(News[i][0]+""+News[i][1]);
color 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];

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

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


}

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

if(comments) //creation of news list on the chart
{
int start = 0;
if(NextNewsLine >= 5) start = NextNewsLine - 5;
string com = "_____ LastNewsLine ______________________\n";
for(i=start; i<start+total_in_list && i<TotalNews; i++)
{
text = "";
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] + " + text + "\n";
if(i==NextNewsLine-1) com = com + "_____ Future News ________________________\n";
}
Comment(com);
}
} // end of news list update

datetime next_time = StrToTime(News[NextNewsLine][0]+""+News[NextNewsLine][1]);
if(time >= next_time) // next news is out
{
LastUpdate = time - update*60 + 60; // update news list one minute after the next news release
for(i=0; i<TotalNews; i++)
if(StrToTime(News[i][0]+""+News[i][1]) > time) break;
NextNewsLine = i;

LastAlert = 0;
if(comments)
{
start = 0;
if(NextNewsLine >= 5) start = NextNewsLine - 5;
com = "";
for(i=start; i<start+10 && i<TotalNews; i++)
{
text = "";
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] + " + text + "\n";
}
Comment(com);
}
}

next_time = StrToTime(News[NextNewsLine][0]+""+News[NextNewsLine][1]);
if(time >= next_time - alert_before*60) // next news is about to be published
{
if(time >= LastAlert + alert_every)
{
if(alerts) PlaySound("alert.wav");
Print("Next news will be released in " + (((next_time-time)-(next_time-time)%60)/60) + " " + ((next_time-time)%60) + " seconds(s).");
LastAlert = time;
}
}


return(0);
}

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

return(i+1);
}

// -----------------------------------------------------------------------------------------------------------------------------
string ReadWebPage(string url)
{
if(!IsDllsAllowed())
{
Alert("We must allow DLLs in settings;)
return(");
}
int rv = InternetAttemptConnect(0);
if(rv != 0)
{
Alert("Error while calling InternetAttemptConnect()");
return(");
}
int hInternetSession = InternetOpenA("Microsoft Internet Explorer",
0, "", "", 0);
if(hInternetSession <= 0)
{
Alert("Error calling InternetOpenA()");
return(");
}
int hURL = InternetOpenUrlA(hInternetSession,
url, "", 0, 0, 0);
if(hURL <= 0)
{
Alert("Error calling InternetOpenUrlA();
InternetCloseHandle(hInternetSession);
return(0);
}
int cBuffer[256];
int dwBytesRead[1];
string TXT = "";
while(!IsStopped())
{
for(int i = 0; i<256; i++) cBuffer[i] = 0;
The bool bResult = InternetReadFile(hURL, cBuffer, 1024, dwBytesRead);
if(dwBytesRead[0] == 0) break;
string text = "";
for(i = 0; i < 256; i++)
{
text = text + CharToStr(cBuffer[i] & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) break;
text = text + CharToStr(cBuffer[i] >> 8 & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) break;
text = text + CharToStr(cBuffer[i] >> 16 & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) break;
text = text + CharToStr(cBuffer[i] >> 24 & 0x000000FF);
}
TXT = TXT + text;
Sleep(1);
}
if(TXT == "") Alert("No data read");
InternetCloseHandle(hInternetSession);

return(TXT);
}

// -----------------------------------------------------------------------------------------------------------------------------
 
vlandex:
Try
Files:
news.mq4  18 kb
 

I'm deleting the rest of the thread. How much spamming can you do?

 

And if more spam appears, I'll be given the option of banning you. This is just a warning.

Reason: