MQL4
및 MetaTrader4를 처음 사용합니다. CSV 파일 형식이 다음과 같습니다.CSV 값을 사용자 지정 지표로 플롯하는 방법은 무엇입니까?
2017.2.1 0:00, 120
2017.2.1 0:05, 123
2017.2.1 0:10, 125
날짜 형식은 YYYY.M.D H:MM
입니다. 다른 포럼을 검색했지만 도움을 얻을 수 없습니다. 나는 이것이 지표로 그려지기를 바랍니다. 데이터 읽기에 대한
MQL4
및 MetaTrader4를 처음 사용합니다. CSV 파일 형식이 다음과 같습니다.CSV 값을 사용자 지정 지표로 플롯하는 방법은 무엇입니까?
2017.2.1 0:00, 120
2017.2.1 0:05, 123
2017.2.1 0:10, 125
날짜 형식은 YYYY.M.D H:MM
입니다. 다른 포럼을 검색했지만 도움을 얻을 수 없습니다. 나는 이것이 지표로 그려지기를 바랍니다. 데이터 읽기에 대한
: 위 획득 텍스트의 각 행 구문 분석에 대한
bool ReadFile(const string fileName, string &data){
const int handle=FileOpen(fileName,FILE_READ|FILE_TXT);
if (handle==INVALID_HANDLE) return false;
string collector = "";
int SIZE = (int)FileSize(handle);
int size=StringLen(collector);
while(size < SIZE && !IsStopped()){
collector = StringConcatenate(collector, "\n", FileReadString(handle, SIZE - size));
size = StringLen(collector);
}
FileClose(handle);
if (!FileDelete(fileName))
Print("FileDelete(", fileName, ") FAILED"); // to delete this file after it is read
data = collector;
return true;
}
: 데이터를 열 필요가 다음의 내용을 읽을 그 이후
MqlTime mql;
int st_pos=0,end_pos=0;
int year = 0;
end_pos = StringFind(line, ".", st_pos);
int year = StrToInteger(StringSubStr(line,st_pos+1,end_pos-st_pos-1));
mql.year = year;
// same with month, day, hour and minute
datetime time = StructToTime(mql); - this is your date
을 - iBarShift()
를 사용하여 인덱스를 찾아 그 귀하의 날짜와 Buffer [i] = 같은 라인에서 파싱 된 값
표시기가 틱마다 업데이트되므로 잠시 후에 새 파일을 받아야합니다. 괜찮아? 어쨌든, 당신의 작업은 두 가지로 나누어 져야합니다 : 파일을 읽고 파싱하여 올바른 시간 포맷을 얻고, 지시자를 플롯 팅 –
@ 대니얼, 예. 정기적으로 파일에 데이터를 추가하겠습니다. 지금까지 나는 그것에 개월 데이터를 넣었다. 표시 할 데이터의 최소 시간 간격은 5 분입니다. – John