포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 280

 
novator :
좋은 저녁입니다. 하나의 Expert Advisor에서 여러 마법을 사용할 수 있습니까?

친절한.

할 수 있다.

 
Integer :

오 내가 어떻게 됐어. 그리고 그가 나에게 이러한 출처가 필요하지 않다고 일반 텍스트로 발표한 후 문제가 해결되었습니다. 나는 그것들이 필요하지 않습니다. 그 안에 어떤 가치도 없습니다. 그것들은 당신을 위한 것입니다, Vadim, 큰 자부심일 뿐 그 이상은 아닙니다. 다시 한 번 상기시켜드립니다. 당신이 그것들을 어떻게 잡고 ... 깃발처럼 머리 위로 높이 들고 다니는 것이 재미있습니다.


Dmitry, 당신은 이미 Vadim과 싸우고 있습니다. 그들이 진정한 경로에 찾는 사람을 설정하면 더 좋을 것입니다 :) 나는 지금 며칠 동안 도서관을 엉망으로 만들고 있습니다. 내 질문은 이러한 발언의 압박으로 점점 더 어딘가로 간다..

글쎄, 이것은 엿보기를 측정하기위한 스레드가 아니라 문제를 논의하기위한 스레드입니다. 여러분 중 누가 더 똑똑한지는 여기서 결정할 문제가 아닙니다.

 
hoz :


드미트리, 토끼는 이미 Vadim과 맹세했습니다. 그들이 진정한 길에 찾는 사람을 설정하면 더 좋을 것입니다 :) 나는 며칠 동안 도서관을 엉망으로 만들었습니다. 내 질문은 이러한 발언의 압박으로 점점 더 어딘가로 간다..

글쎄, 이것은 엿보기를 측정하기위한 스레드가 아니라 문제를 논의하기위한 스레드입니다. 여러분 중 누가 더 똑똑한지는 여기서 결정할 문제가 아닙니다.


보았다. 잘 구성된 질문은 절반의 해결책입니다. 포함은 가져오기 가 아닙니다. 연결되지 않은 것으로 보이는 파일에서 일부 함수를 호출해야 합니다. 거기에 기록된 내용은 필요하지 않을 수 있으므로 주의를 기울이면 안 됩니다.
 
Integer :

보았다. 잘 구성된 질문은 절반의 해결책입니다. 포함은 가져오기가 아닙니다. 연결되지 않은 것으로 보이는 파일에서 일부 함수를 호출해야 합니다. 거기에 기록된 내용은 필요하지 않을 수 있으므로 주의를 기울이면 안 됩니다.

내일 전화해봐야겠네요. 디버거가 없으므로 이 작업에 접근하는 방법은 다음과 같습니다. 오류도 없습니다. 그리고 올빼미는 쟁기질하지 않습니다. 아무것도 인쇄되지 않습니다. 아무튼 내일 해보고 후기 올리도록 하겠습니다.
 
노베이터 24.11.2013 19:37 #
좋은 저녁입니다. 하나의 Expert Advisor에서 여러 마법을 사용할 수 있습니까?
할 수 있다.
 

작동하지 않는 이유

   int handle;
   handle= FileOpen ( "openorder.csv" , FILE_CSV | FILE_READ | FILE_WRITE , "\n" );
   if (handle> 0 )
     {
       FileWrite (handle,open_price_order, "\n" );
       FileClose (handle);
     }
 
itum :

작동하지 않는 이유


CSV 파일의 표준 구분 기호는 줄 바꿈이 아니라 쉼표 또는 구분 기호로 지정된 다른 문자인 것 같습니다. 또한 CSV에서 데이터를 문자열로 읽고 문자열 어딘가에 구분 기호가 아닌 쉼표가 있는 경우 전체 문자열을 따옴표로 묶어야 합니다.

이봐:

날짜시간,이름,국가,변동성,실제,이전,합의
"20131125 09:00:00","전국주택가격지수(y/y)","영국","2","","5.8%","6.0%"

파일의 첫 번째 줄에는 쉼표로 구분된 값이 포함됩니다. 일반적으로 읽습니다. 두 번째 줄에서 모든 데이터는 따옴표로 묶여 있지만 구분 기호로 쉼표도 있습니다. 그러나 쉼표가 구분 기호가 아닌 행 5.8%가 있습니다. 여기에서는 따옴표로 묶어야 합니다. 글쎄, 코드는 문자열의 시작과 끝에서 여분의 따옴표를 제거해야 합니다. 그렇게 하면 다음과 같이 됩니다.

   DatTim= FileReadString (handle);StrTrim(DatTim); if (DatTim != "DateTime" ) err= 1 ; else {
    Name= FileReadString (handle);StrTrim(Name); if (Name != "Name" ) err= 1 ; else {
     Country= FileReadString (handle);StrTrim(Country); if (Country != "Country" ) err= 1 ; else {
      Volatility= FileReadString (handle);StrTrim(Volatility); if (Volatility != "Volatility" ) err= 1 ; else {
       Actual= FileReadString (handle);StrTrim(Actual); if (Actual != "Actual" ) err= 1 ; else {
        Previous= FileReadString (handle);StrTrim(Previous); if (Previous != "Previous" ) err= 1 ; else {
         Consensus= FileReadString (handle);StrTrim(Consensus); if (Consensus != "Consensus" ) {err= 1 ;}}}}}}}

이것은 파일 헤더 구문 분석입니다. StrTrim(DatTim) 함수는 문자열의 시작과 끝에 있는 경우 추가 따옴표를 제거합니다. 그런 다음 파일을 읽고 문자열에서 원하는 형식으로 데이터를 변환합니다. 그러나 모두 CSV 파일에 있는 내용에 따라 다릅니다. 일반적으로 CSV에 줄이 있으면 잘 작동합니다.

FileReadString ( int 핸들, int 길이=0) 및 FileOpen( 문자열 파일 이름, int 모드, int delimiter=',' ) 참조

 

내가 원하는 것은 주문 시작 가격 을 CSV로 기록하는 것뿐입니다. 그것을 하는 방법?

 
itum :

내가 원하는 것은 주문 시작 가격을 CSV로 기록하는 것뿐입니다. 그것을 하는 방법?



글쎄, 모든 것이 맞는 것 같습니다.


handle=FileOpen("openorder.csv",FILE_CSV|FILE_READ|FILE_WRITE,",");

FileSeek(handle, 0, SEEK_END );// 기존 파일에 추가하려는 경우입니다.

FileWrite(핸들, open_price_order);

반대로 CSV를 읽습니다. "\n"을 구분 기호로 사용하지 마십시오. 각 FileWrite 후에 추가됩니다. "," 또는 ";"를 입력합니다. 그런 다음 Excel 또는 거기에 있는 사람을 열 때 구분 기호를 입력하라는 메시지가 표시됩니다. 작동해야 합니다. 테스터에 체크인할 시간이 없습니다. 왜냐하면 FileWrite(handle,open_price_order); 파일에 한 줄을 삽입하고 FileWrite(handle, open_price1_order, open_price2_order ); 여전히 한 줄이 있지만 열린 가격 사이에 구분 기호가 삽입됩니다. FileWrite에 대한 후속 호출은 파일에 새 행을 생성합니다.

 
여기요,
MT4에 대한 내용입니다.
누군가가 조언자가 월요일부터 금요일까지 거래하지만 금요일에는 23시간 미만으로 거래할 수 있도록 일주일에 요일을 할당하는 방법을 알려주지 않을 것입니다.

일반적으로 일부 알고리즘을 테스트할 때 기능을 발견했기 때문에 필요하며 테스트 시작 날짜의 영향을 받습니다.
미리 감사드립니다!
사유: