뉴스 표시기가 Windows 7에서 작동하지 않는 이유는 무엇입니까?

 
하지만?
 
위로
 

90% - 프로그램 폴더 파일에서 터미널을 꺼내십시오...

 
xrust :

90% - 프로그램 폴더 파일에서 터미널을 꺼내십시오...

D 드라이브에 터미널이 있습니다. 그런 폴더가 없습니다...
 

그런 다음 방화벽을 뒤집니다(그러나 먼저 파일이 저장된 위치를 확인하십시오).

 
무슨 방화벽? 그것에 관한 것이 아닙니다. Kaspersky Crystal의 가치가 있습니다.
 
vlandex :


스킨트 히어 인디케이터
 
Mischek :

스킨트 히어 인디케이터
//+----------------------------------------------- --------------------+
//| 뉴스.mq4 |
//| * |
//| * |
//+----------------------------------------------- --------------------+
#property copyright "Bulagin Andrey"
#속성 링크 "andre9@ya.ru"
#속성 표시기_차트_창
#속성 표시기_버퍼 0

//----
#가져오기 "wininet.dll"
int InternetAttemptConnect(int x);
int InternetOpenA(문자열 sAgent, int lAccessType,
문자열 sProxyName = "", 문자열 sProxyBypass = "",
int lFlags = 0);
int InternetOpenUrlA(int hInternetSession, 문자열 sUrl,
문자열 sHeaders = "", int lHeadersLength = 0,
int lFlags = 0, int lContext = 0);
int InternetReadFile(int hFile, int& sBuffer[], int lNumBytesToRead,
int&lNumberOfBytesRead[]);
int InternetCloseHandle(int hInet);
#수입
extern bool 오늘 = false; // 오늘의 뉴스만 표시(dd$)
extern 부울 라인 = true; // 보도 당시 차트에 세로선 표시
extern bool 텍스트 = true; // 뉴스 설명과 함께 텍스트 레이블 표시
extern bool 주석 = true; // 다가오는 미래 및 과거 뉴스 목록을 표시합니다.
외부 정수 total_in_list = 22; // 목록의 뉴스 수

extern 부울 높음 = true; // 중요한 뉴스 표시
extern bool 매체 = true; // 중간 중요도의 뉴스 표시
extern 부울 낮음 = true; // 중요도가 낮은 뉴스 표시

외부 정수 업데이트 = 15; // 15분마다 뉴스 목록 업데이트

extern 부울 자동 = true; // 차트의 통화 쌍에 적합한 뉴스 자동 선택
extern bool 유로 = true; // 특정 통화에 대한 뉴스 표시
extern bool usd = true;
extern bool jpy = true;
extern bool gbp = true;
extern 부울 chf = true;
extern bool cad = true;
extern bool aud = true;
extern 부울 nzd = true;

외부 색상 high_color = 적갈색; // 중요한 뉴스의 색상
extern color medium_color = 시에나; // 일반 뉴스의 색상
외부 색상 low_color = DarkSlateGray; // 마이너 뉴스의 색상

extern 부울 영어 = 거짓; // 뉴스 러시아어화를 위한 번역 파일 사용

extern int server_timezone = 2; // 서버 시간대(Alpary - GMT+2)
extern int show_timezone = 4; // 시간대 표시(모스크바 - GMT+4)

extern bool 경고 = false; // 소리 신호로 보도 자료에 대해 경고합니다.
외부 int alert_before = 5; // 뉴스 발표 5분 전에 경고
외부 int alert_every = 30; // 30초마다 신호음

// ------------------------------------------------ -------------------------------------------------- --------------------------
정수 TotalNews = 0;
stringNews[1000][10];
날짜 시간 마지막 업데이트 = 0;
정수 NextNewsLine = 0;
정수 마지막 경고 = 0;
문자열 번역[1000][2];
정수 TotalTranslate = 0;

// ------------------------------------------------ -------------------------------------------------- --------------------------
정수 초기화()
{
if(auto) // 현재 통화 쌍에 적합한 뉴스 자동 선택
{
문자열 기호 = 기호();
if(StringFind(sym, "EUR") != -1) eur = true; 그렇지 않으면 유로 = 거짓;
if(StringFind(sym, "USD") != -1) usd = true; 그렇지 않으면 usd = 거짓;
if(StringFind(sym, "JPY") != -1) jpy = true; elsejpy=거짓;
if(StringFind(sym, "GBP") != -1) gbp = true; 그렇지 않으면 gbp = 거짓;
if(StringFind(sym, "CHF") != -1) chf = true; 그렇지 않으면 chf = 거짓;
if(StringFind(sym, "CAD") != -1) cad = true; 그렇지 않으면 캐드 = 거짓;
if(StringFind(sym, "AUD") != -1) aud = true; elseaud=거짓;
if(StringFind(sym, "NZD") != -1) nzd = true; 그렇지 않으면 nzd = 거짓;
}

if(russian) // 뉴스 번역 템플릿 준비
{
int fhandle = FileOpen("translate.txt", FILE_READ);
if(핸들>0)
{
정수 i = 0;
동안(!FileIsEnding(핸들))
{
문자열 str = FileReadString(fhandle);
if(str == "") 중단;
번역[i][0] = str;
번역[i][1] = FileReadString(fhandle);
if(번역[i][1] == "") 번역[i][1] = 번역[i][0] 번역;
나는 ++;
}
TotalTranslate = 나;
파일 닫기(핸들);
}
}

리턴(0);
}

// ------------------------------------------------ -------------------------------------------------- --------------------------
정수 초기화()
{
for(int i=0; i<TotalNews; i++)
{
ObjectDelete("뉴스 라인 "+i);
ObjectDelete("뉴스 텍스트 "+i);
}

리턴(0);
}

// ------------------------------------------------ -------------------------------------------------- --------------------------
정수 시작()
{
문자열 필터1 = "";
if(!eur) 필터1 = 필터1 + "EUR|";
if(!usd) Filter1 = Filter1 + "USD|";
if(!jpy) 필터1 = 필터1 + "JPY|";
if(!gbp) 필터1 = 필터1 + "GBP|";
if(!chf) 필터1 = 필터1 + "CHF|";
if(!cad) 필터1 = 필터1 + "CAD|";
if(!aud) 필터1 = 필터1 + "AUD|";
if(!nzd) 필터1 = 필터1 + "NZD|";

문자열 필터2 = "";
if(!high) Filter2 = Filter2 + "높음|";
if(!medium) Filter2 = Filter2 + "중간|";
if(!low) Filter2 = Filter2 + "낮음|";

날짜 시간 = TimeCurrent();
if(time >= LastUpdate+update*60) // 뉴스 목록 업데이트
{
for(int i=0; i<TotalNews; i++)
{
ObjectDelete("뉴스 라인 "+i);
ObjectDelete("뉴스 텍스트 "+i);
}

마지막 업데이트 = 시간;
if(오늘==참)
{
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)));


문자열 arr[1000];
TotalNews = 폭발(str, "\r\n\r\n\r\n", arr);
for( i=0; i<TotalNews; i++)
{
문자열 arr1[10];
폭발(arr[i], ",", arr1);
for( 정수 j=0; j<10; j++ )
뉴스[i][j] = rr1[j];
문자열 tmp[3], tmp1[2];
폭발(뉴스[i][0], " ", tmp);
int 몬 = 0;
if(tmp[1]=="1월") mon=1; 또 다른
if(tmp[1]=="2월") 월=2; 또 다른
if(tmp[1]=="3월") mon=3; 또 다른
if(tmp[1]=="4월") mon=4; 또 다른
if(tmp[1]=="5월") mon=5; 또 다른
if(tmp[1]=="6월") mon=6; 또 다른
if(tmp[1]=="7월") mon=7; 또 다른
if(tmp[1]=="8월") mon=8; 또 다른
if(tmp[1]=="9월") mon=9; 또 다른
if(tmp[1]=="10월") mon=10; 또 다른
if(tmp[1]=="11월") 월=11; 또 다른
if(tmp[1]=="12월") mon=12;
뉴스[i][0] = Year()+"."+mon+"."+tmp[2];

폭발(뉴스[i][1], " ", tmp);
부울 오후 = tmp[1]=="오후";
폭발(tmp[0], ":", tmp1);
tmp1[0] = StrToInteger(tmp1[0])%12;
if(pm) tmp1[0] = StrToInteger(tmp1[0])+12;
뉴스[i][1] = tmp1[0]+":"+tmp1[1];

날짜 시간 dt = StrToTime(뉴스[i][0]+" "+뉴스[i][1]);
뉴스[i][0] = TimeToStr(dt + server_timezone*60*60, TIME_DATE);
뉴스[i][1] = TimeToStr(dt + server_timezone*60*60, TIME_MINUTES);
뉴스[i][9] = TimeToStr(dt + show_timezone*60*60, TIME_MINUTES);

if(러시아어)
{
for(j=0; j<TotalTranslate; j++)
{
pos = StringFind(뉴스[i][4], 번역[j][0]);
if(pos != -1) 뉴스[i][4] = StringSubstr(뉴스[i][4], 0, pos) + 번역[j][1] + StringSubstr(뉴스[i][4], pos +StringLen(번역[j][0]));
}
}

}

날짜/시간 현재 = 0;
for( i=0; i<TotalNews; i++) // 차트에 뉴스 라인과 레이블 생성
{
if(StrToTime(뉴스[i][0]+" "+뉴스[i][1]) == 현재) 계속;
현재 = StrToTime(뉴스[i][0]+" "+뉴스[i][1]);
색상 clr;
if(뉴스[i][5] == "낮음") clr = low_color; 또 다른
if(뉴스[i][5] == "중간") clr = 매체_색상; 또 다른
if(뉴스[i][5] == "높음") clr = high_color;

문자열 텍스트 = "";
if(뉴스[i][8] != "" || 뉴스[i][7] != "") text = "[" + 뉴스[i][8] + ", " + 뉴스[i][ 7] + "]";
if(뉴스[i][6] != "") 텍스트 = 텍스트 + " " + 뉴스[i][6];

if(줄)
{
ObjectCreate("뉴스 라인 "+i, OBJ_VLINE, 0, 현재, 0);
ObjectSet("뉴스 라인 "+i, OBJPROP_COLOR, clr);
ObjectSet("뉴스 라인 "+i, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet("뉴스 라인 "+i, OBJPROP_BACK, true);
ObjectSetText("뉴스 라인 "+i, 뉴스[i][9] + " " + 뉴스[i][4] + " " + 텍스트, 8);
}

만약 (텍스트)
{
ObjectCreate("뉴스 텍스트 "+i, OBJ_TEXT, 0, 현재, WindowPriceMin()+(WindowPriceMax()-WindowPriceMin())*0.8 );
ObjectSet("뉴스 텍스트 "+i, OBJPROP_COLOR, clr);
ObjectSet("뉴스 텍스트 "+i, OBJPROP_ANGLE, 90);
ObjectSetText("뉴스 텍스트 "+i, 뉴스[i][9] + " " + 뉴스[i][4] + " " + 텍스트, 8);
}


}

for(i=0; i<TotalNews; i++)
if(StrToTime(News[i][0]+" "+News[i][1]) > time) break;
NextNewsLine = 나;
마지막 경고 = 0;

if(comments) // 차트에 뉴스 목록 생성
{
정수 시작 = 0;
if(NextNewsLine >= 5) 시작 = NextNewsLine - 5;
string com = "_____ 과거 뉴스 ______________________\n";
for(i=start; i<start+total_in_list && i<TotalNews; i++)
{
텍스트 = "";
if(뉴스[i][8] != "" || 뉴스[i][7] != "") text = "[" + 뉴스[i][8] + ", " + 뉴스[i][ 7] + "]";
if(뉴스[i][6] != "") 텍스트 = 텍스트 + " " + 뉴스[i][6];
com = com + 뉴스[i][9] + " " + StringSubstr(뉴스[i][5], 0, 1) + " " + 뉴스[i][4] + " " + 텍스트 + "\n" ;
if(i==NextNewsLine-1) com = com + "_____ 미래 뉴스 ____________________________\n";
}
댓글(com);
}
} // 뉴스 목록 업데이트 끝

datetime next_time = StrToTime(뉴스[NextNewsLine][0]+" "+뉴스[NextNewsLine][1]);
if(time >= next_time) // 다음 뉴스가 나옴
{
LastUpdate = 시간 - 업데이트*60 + 60; // 다음 뉴스가 나온 후 1분 안에 뉴스 목록을 업데이트합니다.
for(i=0; i<TotalNews; i++)
if(StrToTime(News[i][0]+" "+News[i][1]) > time) break;
NextNewsLine = 나;

마지막 경고 = 0;
if(주석)
{
시작 = 0;
if(NextNewsLine >= 5) 시작 = NextNewsLine - 5;
com="";
for(i=start; i<start+10 && i<TotalNews; i++)
{
텍스트 = "";
if(뉴스[i][8] != "" || 뉴스[i][7] != "") text = "[" + 뉴스[i][8] + ", " + 뉴스[i][ 7] + "]";
if(뉴스[i][6] != "") 텍스트 = 텍스트 + " " + 뉴스[i][6];
com = com + 뉴스[i][9] + " " + StringSubstr(뉴스[i][5], 0, 1) + " " + 뉴스[i][4] + " " + 텍스트 + "\n" ;
}
댓글(com);
}
}

next_time = StrToTime(뉴스[다음뉴스라인][0]+" "+뉴스[다음뉴스라인][1]);
if(time >= next_time - alert_before*60) // 다음 뉴스가 곧 나옵니다.
{
if(시간 >= LastAlert + alert_every)
{
if(alerts) PlaySound("alert.wav");
Print("다음 뉴스는 " + (((next_time-time)-(next_time-time)%60)/60) + " 분 " + ((next_time-time)%60) + " 초 (들) ).");
마지막 경고 = 시간;
}
}


리턴(0);
}

// ------------------------------------------------ -------------------------------------------------- --------------------------
int Explode(문자열 str, 문자열 구분 기호, string& arr[])
{
정수 i = 0;
int pos = StringFind(문자열, 구분 기호);
동안(위치 != -1)
{
if(pos == 0) arr[i] = ""; 그렇지 않으면 arr[i] = StringSubstr(문자열, 0, 위치);
나는 ++;
str = StringSubstr(str, pos+StringLen(구분자));
pos = StringFind(문자열, 구분 기호);
if(pos == -1 || str == "") break;
}
arr[i] = str;

리턴(i+1);
}

// ------------------------------------------------ -------------------------------------------------- --------------------------
문자열 ReadWebPage(문자열 URL)
{
if(!IsDllsAllowed())
{
Alert("설정에서 DLL 사용을 허용해야 합니다.");
반품("");
}
int rv = InternetAttemptConnect(0);
if(rv != 0)
{
Alert("InternetAttemptConnect() 호출 오류");
반품("");
}
int hInternetSession = InternetOpenA("마이크로소프트 인터넷 익스플로러",
0, "", "", 0);
if(hInternetSession <= 0)
{
Alert("InternetOpenA() 호출 오류");
반품("");
}
int hURL = InternetOpenUrlA(hInternetSession,
URL, "", 0, 0, 0);
if(hURL <= 0)
{
Alert("InternetOpenUrlA() 호출 오류");
InternetCloseHandle(hInternetSession);
리턴(0);
}
int cBuffer[256];
정수 dwBytesRead[1];
문자열 TXT = "";
동안(!Isstopped())
{
for(int i = 0; i<256; i++) cBuffer[i] = 0;
bool bResult = InternetReadFile(hURL, cBuffer, 1024, dwBytesRead);
if(dwBytesRead[0] == 0) 중단;
문자열 텍스트 = "";
for(i = 0, i < 256, i++)
{
텍스트 = 텍스트 + CharToStr(cBuffer[i] & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) 중단;
텍스트 = 텍스트 + CharToStr(cBuffer[i] >> 8 & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) 중단;
텍스트 = 텍스트 + CharToStr(cBuffer[i] >> 16 & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) 중단;
텍스트 = 텍스트 + CharToStr(cBuffer[i] >> 24 & 0x000000FF);
}
txt=txt+텍스트;
수면(1);
}
if(TXT == "") Alert("읽은 데이터가 없습니다.");
InternetCloseHandle(hInternetSession);

리턴(TXT);
}

// ------------------------------------------------ -------------------------------------------------- --------------------------
 
vlandex :
노력하다
파일:
news.mq4  18 kb
 

나머지 스레드는 삭제하겠습니다. 스팸을 얼마나 보낼 수 있습니까?

 

그리고 스팸이 더 나오면 차단 조치하겠습니다. 이것은 단지 경고일 뿐입니다.