[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 352

 
sss2019 :


따라서 이론적으로 FileReadString 함수를 사용하는 이유는 전체 문자열을 변수에 넣거나 구분 기호까지 그리고 첫 번째 구분 기호에 대한 포인터를 고려해야 합니다.

간단히 말해서, csv 파일의 이러한 행에서 구분 기호 사이의 모든 데이터를 추출하는 방법의 예를 보여 주시겠습니까?

131322608; EURUSD;2;1;0;0;1346149440


당신은 전혀 읽을 수 있습니까??? 위에서 모든 것을 자세히 설명했습니다.

예: FileOpen ( 파일 이름 ,FILE_CSV|FILE_READ,";");

int 파일열기 ( 문자열 파일 이름, int 모드, int 구분 기호=';')
입력 및/또는 출력을 위해 파일을 엽니다. 열린 파일의 파일 설명자를 반환하거나 실패 시 -1을 반환합니다. 오류에 대한 자세한 정보를 얻으려면 GetLastError() 함수를 호출해야 합니다.
참고: 파일은 terminal_dir\experts\files 폴더(Expert Advisor를 테스트하는 경우에는 terminal_dir\tester\files ) 또는 그 하위 폴더에서만 열 수 있습니다.
FILE_BIN 및 FILE_CSV 모드를 동시에 사용할 수 없습니다.
FILE_WRITE가 FILE_READ와 결합되지 않으면 길이가 0인 파일이 열립니다. 파일을 열기 전에 파일에 데이터가 있더라도 파기됩니다. 기존 파일에 데이터를 추가해야 하는 경우 FILE_READ | 파일_쓰기.
FILE_READ가 FILE_WRITE와 결합되지 않으면 파일이 이미 있는 경우에만 파일이 열립니다. 파일이 존재하지 않는 경우 FILE_WRITE 모드를 사용하여 생성할 수 있습니다.
단일 실행 모듈 내에서 최대 32개의 파일을 동시에 열 수 있습니다. 한 모듈에서 열린 파일 디스크립터는 다른 모듈(라이브러리)로 전달할 수 없습니다.
옵션:
파일 이름 - 파일 이름.
방법 - 개봉방법. 하나의 값 또는 FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE의 조합일 수 있습니다.
구분자 - csv 파일의 구분 문자입니다. 기본 문자는 ';'입니다.

 
FAQ :


개그가 필요 없습니다.

FileReadString()은 구분 기호까지 읽습니다(지정된 경우). 구분 기호가 지정되지 않거나 존재하지 않는 구분 기호가 지정되면 FileReadString()은 줄 끝까지(캐리지 리턴 문자)를 읽습니다. 따라서 위의 예에서 FileFlush()는 문자열 길이 오프셋을 가리킵니다.

이 경우 StrToInteger()는 문자열의 첫 번째 숫자 값을 선택하고 [int] 유형으로 변환합니다.


구분 기호까지 읽는 것은 이것에 의문의 여지가 없습니다. 그러나 여기서 파일 포인터는 줄 끝에 있습니다. 너무 게으르지 않고 대본을 썼습니다. 그렇기 때문에 이렇게 글을 씁니다.

 //+------------------------------------------------------------------+
//|                                                          111.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int fileid = FileOpen ( "File.csv" , FILE_CSV | FILE_READ );
     int n1, n2;
      
       string ticket, ticket1;
      
       FileSeek (fileid, 0 , SEEK_SET );
      
      ticket = FileReadString (fileid);
       Print (ticket, " " , FileTell (fileid));
      ticket1= FileReadString (fileid);
       Print (ticket1, " " , FileTell (fileid));
      n1= FileReadNumber (fileid);
       Print (n1, " " , FileTell (fileid));      
      n2= FileReadNumber (fileid);
       Print (n2, " " , FileTell (fileid)); 
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+

보시다시피 구분 기호가 지정되지 않았습니다.

06:54:18 111 EURUSD,H1: 성공적으로 로드됨
06:54:18 111 EURUSD,H1: 131322608 37
06:54:18 111 EURUSD,H1: EURUSD 37
06:54:18 111 EURUSD,H1: 2 37
06:54:18 111 EURUSD,H1: 1 37
06:54:18 111 EURUSD,H1: 단위 이유 0
06:54:18 111 EURUSD,H1: 제거됨

 
Mislaid :


06:54:18 111 EURUSD,H1: 131322608 37


이 경우 StrToInteger()는 문자열의 첫 번째 숫자 값을 선택하고 [int] 유형으로 변환합니다.
 

안녕하세요! ObjectCreate를 사용하여 구축된 OBJ_TREND 유형의 개체(즉, 추세선)가 있습니다.

질문: 이 추세선이 현재 시점(시간[0])과 같이 언제든지 취하는 숫자 값을 어떻게 얻을 수 있습니까?

 
ikatsko :

안녕하세요! ObjectCreate를 사용하여 구축된 OBJ_TREND 유형의 개체(즉, 추세선)가 있습니다.

질문: 이 추세선이 현재 시점(Time[0])과 같이 언제든지 취하는 NUMERICAL 값을 어떻게 얻을 수 있습니까?


ObjectGetValueByShift()
 
drknn :

ObjectGetValueByShift()

신속한 응답에 감사드립니다.

 
SendMail 기능을 사용 하여 WindowScreenshot 기능으로 찍은 스크린샷을 메일로 보내는 방법은 무엇입니까?
 
아니요, 파일을 FTP로 보낼 수 있습니다.
 
FAQ :
아니요, 파일을 FTP로 보낼 수 있습니다.

좋은.

그럼 반대편으로 가겠습니다.

FTP의 이미지가 들어오는 편지에 표시되도록 할 수 있습니까? (즉, 사진은 첨부 파일이 아니며 편지에는 ftp에 대한 링크만 포함됩니다.)

 

전문가, 올빼미에게 말하세요.

결론은 다음과 같습니다. 거래(아직 마감되지 않음)의 이익이 감소하기 시작합니다(거래를 열었습니다). 내가 설정한 트랜잭션 금액의 X%에 도달하면 로봇이 트랜잭션을 종료합니다. 수치로 보면 대략 1달러(우리는 거래에서 이미 가지고 있음) 이익이 증가하고 있습니다. 올빼미는 80% 정지를 시켰습니다. 이익 1.2$(80% 가치도 있음). 시장이 역전되어 (1.2*80%=0.96) 올빼미가 거래를 마감했습니다.

내가 거기에서 포인트를 찾은 것은 %, 손익분기점 올빼미였습니다):

고맙습니다.

사유: