Print

엑스퍼트 어드바이저 로그에 메시지를 입력. 매개변수는 어떤 유형이든 될 수 있습니다.

void  Print(
   argument,     // 첫 번째 값
   ...           // 다음 값
   );

매개변수

...

[in]  쉼표로 구분된 값. 매개변수의 수는 64개를 초과할 수 없습니다.

주의

배열을 Print() 함수에 전달할 수 없습니다. 배열은 요소별 입력이어야 합니다.

double 유형 데이터는 소수점 이후 최대 16자리의 정확도로 표시되며, 어떤 항목이 더 압축되느냐에 따라 기존 형식이나 과학적 형식으로 출력할 수 있습니다. float 유형의 데이터는 소수점 아래 5자리 숫자로 출력됩니다. 다른 정확도 또는 미리 정의된 형식으로 실제 숫자를 출력하려면 PrintFormat() 기능을 사용합니다.

bool 유형의 데이터는 "true" 또는 "false" 라인으로 출력됩니다. 날짜는 YYYY.MM.DD HH:MI:SS 로 표시됩니다. 데이터를 다른 형식으로 표시하려면 TimeToString()을 사용. 색상 유형 데이터는 색상 집합에 있는 경우, R,G,B 라인 또는 색상 이름으로 반환됨.

전략 테스터의 최적화 중에는 Print() 기능이 작동하지 않습니다.

예를 들어:

void OnStart()
  {
//--- Print()를 사용하여 DBL_MAX를 출력하며, 이는 PrintFormat(%%.16G,DBL_MAX)와 동일합니다
   Print("---- DBL_MAX의 모습 -----");
   Print("Print(DBL_MAX)=",DBL_MAX);
//--- PrintFormat()을 사용하여 DBL_MAX 번호를 출력
   PrintFormat("PrintFormat(%%.16G,DBL_MAX)=%.16G",DBL_MAX);
//--- 엑스퍼트 저널로 출력
// Print(DBL_MAX)=1.797693134862316e+308
// PrintFormat(%.16G,DBL_MAX)=1.797693134862316E+308
 
//--- float 출력 방법 보기
   float c=(float)M_PI// 목표 유형에 명시적으로 캐스팅해야 합니다
   Print("c=",c, "    Pi=",M_PI"    (float)M_PI=",(float)M_PI);
// c=3.14159    Pi=3.141592653589793    (float)M_PI=3.14159
   
//--- 실제 유형을 사용하여 산술 연산을 수행할 수 있는 작업 표시
   double a=7,b=200;
   Print("---- 산술 연산 전");
   Print("a=",a,"   b=",b);
   Print("Print(DoubleToString(b,16))=",DoubleToString(b,16));
//--- a를 b로 나눔 (7/200)
   a=a/b;
//--- 이제 변수 b의 값 복원을 에뮬레이트 함
   b=7.0/a; // Ib=7.0/(7.0/200.0)=>7.0/7.0*200.0=200 로 예상되지만 다름
//--- 새로 계산된 b 값을 출력
   Print("----- 산술 연산 후");
   Print("Print(b)=",b);
   Print("Print(DoubleToString(b,16))=",DoubleToString(b,16));
//--- 엑스퍼트 저널로 출력
// Print(b)=200.0
// Print(DoubleToString(b,16))=199.9999999999999716 (see that b is no more equal to 200.0)   
 
//--- 아주 작은 값 epsilon=1E-013 생성
   double epsilon=1e-13;
   Print("---- 아주 작은 값 생성");
   Print("epsilon=",epsilon); // epsilon=1E-013 가져오기
//--- 이제 b에서 epsilon을 뺀 후 다시 엑스퍼트 저널에 값을 출력
   b=b-epsilon;
//--- 두 가지 방법 사용
   Print("---- b 변수에서 epsilon을 뺀 후");
   Print("Print(b)=",b);
   Print("Print(DoubleToString(b,16))=",DoubleToString(b,16));
//--- 엑스퍼트 저널로 출력
// Print(b)=199.9999999999999  (이제 epsilon을 뺀 b의 값은 200으로 반올림할 수 없음)
// Print(DoubleToString(b,16))=199.9999999999998578
//    (이제 epsilon을 뺀 b 값은 200으로 반올림할 수 없음)
  }

추가 참조

DoubleToString, StringFormat