안녕하세요. 파일 포인터에 대한 질문... MQL4에 있는 MQL 4에 대한 책에서. 커뮤니티 "표준 기능" 장의 "파일 작업" 섹션에 파일에서 데이터를 읽고 기호 창에 그래픽 개체를 표시하기 위한 timetablenews.mq4 스크립트의 예가 있습니다.
//--------------------------------------------------------------------// timetablenews.mq4// Предназначен для использования в качестве примера в учебнике MQL4.//--------------------------------------------------------------- 1 --int start() // Спец. функция start
{
//--------------------------------------------------------------- 2 --int Handle, // Файловый описатель
Stl; // Стиль вертикальной линииstring File_Name= "News.csv" , // Имя файла
Obj_Name, // Bмя объекта
Instr, // Название валюты
One,Two, // 1я и 2я чать названия инстр.
Text, // Текст описания события
Str_DtTm; // Дата и время события(строка)datetime Dat_DtTm; // Дата и время события(дата)color Col; // Цвет вертикальной линии//--------------------------------------------------------------- 3 --
Handle= FileOpen (File_Name, FILE_CSV | FILE_READ , ";" ); // Открытие файлаif (Handle< 0 ) // Неудача при открытии файла
{
if ( GetLastError ()== 4103 ) // Если файла не существует,..Alert ( "Нет файла с именем " ,File_Name); //.. извещаем трейдера else// При любой другой ошибке..Alert ( "Ошибка при открытии файла " ,File_Name); //..такое сообщPlaySound ( "Bzrrr.wav" ); // Звуковое сопровождениеreturn ; // Выход из start()
}
//--------------------------------------------------------------- 4 --while ( FileIsEnding (Handle)==false) // До тех пор, пока файловый ..
{ // ..указатель не в конце файла//--------------------------------------------------------- 5 --
Str_DtTm = FileReadString (Handle); // Дата и время события(дата)
Text = FileReadString (Handle); // Текст описания событияif ( FileIsEnding (Handle)==true) // Файловый указатель в концеbreak ; // Выход из чтения и рисования//--------------------------------------------------------- 6 --
Dat_DtTm = StrToTime (Str_DtTm); // Преобразование типа данных
Instr = StringSubstr (Text, 0 , 3 ); // Извлекаем первые 3 символа
One= StringSubstr ( Symbol (), 0 , 3 ); // Извлекаем первые 3 символа
Two= StringSubstr ( Symbol (), 3 , 3 ); // Извлекаем вторые 3 символа
Stl= STYLE_DOT ; // Для всех - стиль пунктир
Col= DarkOrange ; // Для всех - цвет такойif (Instr==One || Instr==Two) // А для событий по нашему ..
{ // .. финансовому инструменту..
Stl= STYLE_SOLID ; // .. такой стиль..
Col= Red ; // .. и такой цвет верт. линии
}
//--------------------------------------------------------- 7 --
Obj_Name= "News_Line " +Str_DtTm; // Имя объектаObjectCreate (Obj_Name, OBJ_VLINE , 0 ,Dat_DtTm, 0 ); //Создаем объект..ObjectSet (Obj_Name, OBJPROP_COLOR , Col); // ..и его цвет,..ObjectSet (Obj_Name, OBJPROP_STYLE , Stl); // ..стиль..ObjectSetText (Obj_Name,Text, 10 ); // ..и описание
}
//--------------------------------------------------------------- 8 --FileClose ( Handle ); // Закрываем файлPlaySound ( "bulk.wav" ); // Звуковое сопровождениеWindowRedraw (); // Перерисовываем объектыreturn ; // Выход из start()
}
//--------------------------------------------------------------- 9 --
아래에서 Book on MQL 4에서 이 스크립트를 분석할 때 다음 구가 제공됩니다. " 지정된 검사(블록 5-6의 마지막 2줄)가 삭제되면 프로그램 실행 중에 추가 개체가 생성됩니다. 그 후에야 while 루프 종료 조건이 작동하고 제어가 블록 8-9로 이전됩니다 .
내가 올바르게 이해하고 있습니까???... 파일 포인터가 텍스트 문자 사이가 아닙니다(예: tek | st, 여기서|파일 포인터), 그러나 할당이 있는 포인터입니다(예: te k st , 여기서 k 는 파일 포인터에 의해 강조 표시된 문자 " k "). 이것은 선이 있어야 할 필요성을 설명합니다(164페이지 참조).
if (FileIsEnding(Handle)== true ) // Файловый указатель в концеbreak ; // Выход из чтения и рисования//--------------------------------------------------------- 6 --
(여기서 o 는 파일 포인터로 강조 표시된 " o " 기호입니다.) 그런 다음 while 문의 헤드에 제어를 전달할 때 FileIsEnding(handle) 함수 는 분명히true를 반환합니다 . 파일 포인터는 파일의 끝이 아니라 해당 파일의 LAST CHARACTER에 있습니다. 그런 다음 처음 두 줄을 실행하면 파일 포인터가 EMPTY 위치로 이동하고 줄이 없으면
if (FileIsEnding(Handle)== true ) // Файловый указатель в концеbreak ; // Выход из чтения и рисования//--------------------------------------------------------- 6 --
스크립트는 설명이 비어 있고 시간 좌표가 0 에 해당하는 그래픽(즉, 선)을 생성합니다. " 지정된 검사(블록 5-6의 마지막 2줄)가 삭제되면 프로그램 실행 중에 추가 개체가 생성됩니다. "
질문 : 내가 올바르게 이해하고 있습니까?
a) 파일 포인터를 정의하는 단계;
b) 구문의 의미 " 지정된 검사(블록 5-6의 마지막 2줄)가 삭제되면 프로그램 실행 중에 추가 개체가 생성됩니다. 그리고 그 후에만 while 루프 종료 조건이 작업 및 제어가 블록 8-9로 이전됩니다. "
사람들!!! 시간별 막대를 여는 기능을 제공하십시오 (이전 양초의 열림을 결정하는 데 필요합니다) 그렇지 않으면 (TimeMinute( TimeCurrent() )==m && TimeSeconds(TimeCurrent())==n) 어떤 이유로 작동하지 않습니다. 나는 m=1 n =1로 설정합니다. 글쎄, 나는 당신에게 신경 쓰지 않습니다 ...
stater : 사람들!!! 시간별 막대를 여는 기능을 제공하십시오 (이전 촛불의 시작을 결정하는 데 필요합니다) 그렇지 않으면 (TimeMinute(TimeCurrent())==m && TimeSeconds(TimeCurrent())==n) 어떤 이유로 작동하지 않습니다. 나는 m=1 n =1을 넣습니다. 글쎄, 나는 당신에게 신경 쓰지 않습니다 ...
안녕하세요.
코드에 어떤 변경이 필요한지 알려주세요. 히스토그램이 약세 막대에 대한 값만 표시하도록 합니다.
지표 자체 https://www.mql5.com/en/code/8920
안녕하세요. 파일 포인터에 대한 질문... MQL4에 있는 MQL 4에 대한 책에서. 커뮤니티 "표준 기능" 장의 "파일 작업" 섹션에 파일에서 데이터를 읽고 기호 창에 그래픽 개체를 표시하기 위한 timetablenews.mq4 스크립트의 예가 있습니다.
아래에서 Book on MQL 4에서 이 스크립트를 분석할 때 다음 구가 제공됩니다. " 지정된 검사(블록 5-6의 마지막 2줄)가 삭제되면 프로그램 실행 중에 추가 개체가 생성됩니다. 그 후에야 while 루프 종료 조건이 작동하고 제어가 블록 8-9로 이전됩니다 .
내가 올바르게 이해하고 있습니까???... 파일 포인터가 텍스트 문자 사이가 아닙니다(예: tek | st , 여기서 | 파일 포인터), 그러나 할당이 있는 포인터입니다(예: te k st , 여기서 k 는 파일 포인터에 의해 강조 표시된 문자 " k "). 이것은 선이 있어야 할 필요성을 설명합니다(164페이지 참조).
정말로. 두 번째 반복에서 LAST 객체 생성 후
2007.05.11 18:30; 엔 공업 생산
파일 포인터는 마지막 개체의 위치에 있습니다. 즉:
2007.05.11 18:30; 엔 공업 생산
(여기서 o 는 파일 포인터로 강조 표시된 " o " 기호입니다.) 그런 다음 while 문의 헤드에 제어를 전달할 때 FileIsEnding ( handle ) 함수 는 분명히 true 를 반환합니다 . 파일 포인터는 파일의 끝이 아니라 해당 파일의 LAST CHARACTER에 있습니다. 그런 다음 처음 두 줄을 실행하면 파일 포인터가 EMPTY 위치로 이동하고 줄이 없으면
스크립트는 설명이 비어 있고 시간 좌표가 0 에 해당하는 그래픽(즉, 선)을 생성합니다. " 지정된 검사(블록 5-6의 마지막 2줄)가 삭제되면 프로그램 실행 중에 추가 개체가 생성됩니다. "
질문 : 내가 올바르게 이해하고 있습니까?
a) 파일 포인터를 정의하는 단계;
b) 구문의 의미 " 지정된 검사(블록 5-6의 마지막 2줄)가 삭제되면 프로그램 실행 중에 추가 개체가 생성됩니다. 그리고 그 후에만 while 루프 종료 조건이 작업 및 제어가 블록 8-9로 이전됩니다. "
피. 에스. 포럼을 어지럽히지 않기 위해 답변에 미리 감사드립니다.
사람들!!! 시간별 막대를 여는 기능을 제공하십시오 (이전 촛불의 시작을 결정하는 데 필요합니다) 그렇지 않으면 (TimeMinute(TimeCurrent())==m && TimeSeconds(TimeCurrent())==n) 어떤 이유로 작동하지 않습니다. 나는 m=1 n =1을 넣습니다. 글쎄, 나는 당신에게 신경 쓰지 않습니다 ...
https://docs.mql4.com/ru/series
응답에 감사하지만 시간별 촛불이 열렸는지 알아내는 기능의 도움으로 이해하지 못했습니다 ....
아이타임
아이타임
고문은 항상 오류 0을 제공합니다. 알려주십시오. 그가 그것을 제공하는 이유를 확인하는 방법,이 장소를 찾는 방법은 무엇입니까?
오류 0은 오류가 없다는 것입니다.
인쇄 중지(경고) =)
하나의 방정식이 여러 번 반복되는 경우 수식 작성을 줄이는 방법은 무엇입니까?