А?
Nach oben
90% - Nehmen Sie das Terminal aus dem Programmordner filec...
xrust:
Ich habe das Terminal auf meinem Laufwerk D. Es gibt keinen solchen Ordner...
90% - Nehmen Sie das Terminal aus dem Programmordner filec...
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
//+------------------------------------------------------------------+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¤cyFilter="+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¤cyFilter="+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);
}
// -----------------------------------------------------------------------------------------------------------------------------
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.
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich