Warum funktioniert der Nachrichtenindikator in Windows 7 nicht?

 
А?
 
Nach oben
 

90% - Nehmen Sie das Terminal aus dem Programmordner filec...

 
xrust:

90% - Nehmen Sie das Terminal aus dem Programmordner filec...

Ich habe das Terminal auf meinem Laufwerk D. Es gibt keinen solchen Ordner...
 

dann in der Firewall nachsehen (aber zuerst nachsehen, wo die Dateien gespeichert sind)

 
Welche Firewall? Das ist nicht der Punkt. Das ist Kaspersky Crystal.
 
vlandex:


Senden Sie den Indikator hier
 
Mischek:

Senden Sie den Indikator hier
//+------------------------------------------------------------------+
//| News.mq4 |
//| * |
//| * |
//+------------------------------------------------------------------+
#eigentum copyright "Bulagin Andrey"
#property link "andre9@ya.ru"
#property indicator_chart_window
#Eigenschaft 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);
#Importieren.
extern bool today = false; // nur Nachrichten für heute anzeigen (dd$)
extern bool lines = true; // zeige vertikale Linien auf dem Diagramm zu den Zeitpunkten der Nachrichtenveröffentlichung
extern bool texts = true; // Textbeschriftungen mit Nachrichtenbeschreibungen anzeigen
extern bool comments = true; // Anzeige einer Liste mit den nächsten zukünftigen und vergangenen Nachrichten
extern int int total_in_list = 22; // Anzahl der Nachrichten in der Liste

extern bool high = true; // Anzeige wichtiger Nachrichten
extern bool medium = true; // Anzeige von Nachrichten mit mittlerer Bedeutung
extern bool low = true; // Nachrichten von geringer Bedeutung anzeigen

extern int update = 15; // Aktualisierung der Nachrichtenliste alle 15 Minuten

extern bool auto = true; // automatische Auswahl von Nachrichten, die für das Währungspaar im Diagramm geeignet sind
extern bool eur = true; // Anzeige von Nachrichten für bestimmte Währungen
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; // Farbe der wichtigen Nachrichten
extern color medium_color = Sienna; // Farbe für allgemeine Nachrichten
extern color low_color = DarkSlateGray; // Farbe für kleine Nachrichten

extern bool russian = false; // Verwendung einer Übersetzungsdatei für die Russifizierung von Nachrichten

extern int server_timezone = 2; // Server-Zeitzone (Alpary - GMT+2)
extern int show_timezone = 4; // Anzeige der Zeitzone (Moskau - GMT+4)

extern bool alerts = false; // Alarmierung des Servers durch Tonsignale.
extern int alert_before = 5; // Warnung 5 Minuten vor der Veröffentlichung der Nachricht.
extern int alert_every = 30; // Signalton alle 30 Sekunden

// -----------------------------------------------------------------------------------------------------------------------------
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) // automatische Auswahl von Nachrichten, die für das aktuelle Währungspaar geeignet sind
{
string sym = Symbol();
if(StringFind(sym, "EUR") != -1) eur = true; sonst eur = false;
if(StringFind(sym, "USD") != -1) usd = true; sonst usd = false;
if(StringFind(sym, "JPY") != -1) jpy = true; sonst jpy = false;
if(StringFind(sym, "GBP") != -1) gbp = true; sonst gbp = false;
if(StringFind(sym, "CHF") != -1) chf = true; sonst chf = false;
if(StringFind(sym, "CAD") != -1) cad = true; sonst cad = false;
if(StringFind(sym, "AUD") != -1) aud = true; sonst aud = false;
if(StringFind(sym, "NZD") != -1) nzd = true; sonst nzd = false;
}

if(russisch) //Vorbereitung der Übersetzungsmuster für Nachrichten
{
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;
Übersetzen[i][1] = FileReadString(fhandle);
if(Translate[i][1] == "") Translate[i][1] = Translate[i][0];
i++;
}
TotalTranslate = i;
FileClose(fhandle);
}
}

zurück(0);
}

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

zurück(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(!hoch) Filter2 = Filter2 + "hoch|";
if(!Medium) Filter2 = Filter2 + "Medium|";
if(!low) Filter2 = Filter2 + "Low|";

datetime time = TimeCurrent();
if(time >= LastUpdate+update*60) // Aktualisieren der Nachrichtenliste
{
for(int i=0; i<TotalNews; i++)
{
ObjectDelete("Nachrichtenzeile "+i);
ObjectDelete("News Text "+i);
}

LastUpdate = Zeit;
if(heute==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\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++)
{
Zeichenfolge arr1[10];
Explode(arr[i], ",", arr1);
for( int j=0; j<10; j++ )
News[i][j] = arr1[j];
Zeichenkette tmp[3], tmp1[2];
Explode(News[i][0], " ", tmp);
int mon = 0;
if(tmp[1]=="Jan") mon=1; sonst
if(tmp[1]=="Feb") mon=2; sonst
if(tmp[1]=="Mar") mon=3; sonst
if(tmp[1]=="Apr") mon=4; sonst
if(tmp[1]=="Mai") mon=5; sonst
if(tmp[1]=="Jun") mon=6; sonst
if(tmp[1]=="Jul") mon=7; sonst
if(tmp[1]=="Aug") mon=8; sonst
if(tmp[1]=="Sep") mon=9; sonst
if(tmp[1]=="Oct") mon=10; sonst
if(tmp[1]=="Nov") mon=11; sonst
if(tmp[1]=="Dec") mon=12;
News[i][0] = Jahr()+". "+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(russisch)
{
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++) // Zeilen und Titel der Nachrichten im Diagramm erstellen
{
if(StrToTime(News[i][0]+""+News[i][1]) == current) continue;
aktuell = StrToTime(News[i][0]+""+News[i][1]);
Farbe clr;
if(News[i][5] == "Low") clr = low_color; sonst
if(News[i][5] == "Medium") clr = medium_color; sonst
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(Zeilen)
{
ObjectCreate("News Line "+i, OBJ_VLINE, 0, current, 0);
ObjectSet("News Line "+i, OBJPROP_COLOR, clr);
ObjectSet("Nachrichtenzeile "+i, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet("News Line "+i, OBJPROP_BACK, true);
ObjectSetText("News Line "+i, News[i][9] + " " + News[i][4] + " + text, 8);
}

wenn (Texte)
{
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;
LetzterAlarm = 0;

if(comments) //Erstellung der Nachrichtenliste im Diagramm
{
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";
}
Kommentar (com);
}
} // Ende der Aktualisierung der Nachrichtenliste

datetime next_time = StrToTime(News[NextNewsLine][0]+""+News[NextNewsLine][1]);
if(time >= next_time) // nächste Nachricht ist raus
{
LastUpdate = time - update*60 + 60; // Aktualisieren der Nachrichtenliste eine Minute nach der nächsten Nachrichtenveröffentlichung
for(i=0; i<TotalNews; i++)
if(StrToTime(News[i][0]+""+News[i][1]) > time) break;
NextNewsLine = i;

LetzterAlarm = 0;
if(Kommentare)
{
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";
}
Kommentar (com);
}
}

next_time = StrToTime(News[NextNewsLine][0]+""+News[NextNewsLine][1]);
if(time >= next_time - alert_before*60) // die nächste Nachricht wird in Kürze veröffentlicht
{
if(Zeit >= LastAlert + alert_every)
{
if(alerts) PlaySound("alert.wav");
Print("Die nächsten Nachrichten werden in " + (((next_time-time)-(next_time-time)%60)/60) + " " + ((next_time-time)%60) + " Sekunden veröffentlicht.");
LastAlert = Zeit;
}
}


zurück(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] = ""; sonst 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;

zurück(i+1);
}

// -----------------------------------------------------------------------------------------------------------------------------
string ReadWebPage(string url)
{
if(!IsDllsAllowed())
{
Alert("Wir müssen DLLs in den Einstellungen zulassen;)
zurück(");
}
int rv = InternetAttemptConnect(0);
if(rv != 0)
{
Alert("Fehler beim Aufruf von InternetAttemptConnect()");
zurück(");
}
int hInternetSession = InternetOpenA("Microsoft Internet Explorer",
0, "", "", 0);
if(hInternetSession <= 0)
{
Alert("Fehler beim Aufruf von InternetOpenA()");
zurück(");
}
int hURL = InternetOpenUrlA(hInternetSession,
url, "", 0, 0, 0);
if(hURL <= 0)
{
Alert("Fehler beim Aufruf von InternetOpenUrlA();
InternetCloseHandle(hInternetSession);
zurück(0);
}
int cPuffer[256];
int dwBytesRead[1];
string TXT = "";
while(!IsStopped())
{
for(int i = 0; i<256; i++) cBuffer[i] = 0;
Das bool bResult = InternetReadFile(hURL, cBuffer, 1024, dwBytesRead);
if(dwBytesRead[0] == 0) break;
string text = "";
for(i = 0; i < 256; i++)
{
text = text + CharToStr(cPuffer[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;
Schlafen(1);
}
if(TXT == "") Alert("Keine Daten gelesen");
InternetCloseHandle(hInternetSession);

zurück(TXT);
}

// -----------------------------------------------------------------------------------------------------------------------------
 
vlandex:
Versuchen Sie
Dateien:
news.mq4  18 kb
 

Ich lösche den Rest des Threads. Wie viel Spamming kann man machen?

 

Und wenn mehr Spam auftaucht, werde ich die Möglichkeit haben, Sie zu sperren. Dies ist nur eine Warnung.