MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 853

 
Priffekt :
안녕하세요, 모든 값을 변경했지만 전문가 설정 에서 기능 자체를 비활성화하는 가능성에 관심이 있습니다.

좋은 아침.

코드를 삽입할 때 </> 버튼을 사용하면 훨씬 가독성이 높아집니다. 위에서 "이렇게 붙이면 더 좋습니다."라고 썼습니다.

8518번 포스트에서 이미 스위치를 추가한 고유한 코드를 보냈습니다. 첫 번째 줄은 들어오는 매개변수에, 두 번째 줄은 OnTik에 펼치기만 하면 됩니다.

 
Sergey Voytsekhovsky :

물론 제가 어드바이저라는 역할에는 별로 어울리지 않는데 그 일을 하는 것이 어렵지는 않은 것 같습니다.

나는 당신의 코드 자체에 맞지 않는다는 점에 유의하십시오. 당신의 함수가 void 유형이라는 사실부터 시작하여 저(찻주전자)에게도 매우 논란의 여지가 많습니다. 이 유형은 함수가 값을 반환하지 않음 을 나타내 거나 함수 매개변수로 매개변수가 없음을 나타내는 데 사용됩니다. 그리고 코드 끝에서 - return(Exist);

들어오는 변수를 선언하고 함수에 매개변수로 쓰고 'incoming' 변수가 False로 설정되어 있으면 함수를 종료합니다.

강조 표시된 것은 완전히 잘못된 것입니다. 아무도 전역 수준에서 선언된 변수를 처리하는 것을 금지하지 않습니다.

 int n = 0 ;

int OnInit ()
 {
  f();
 }

void OnTick ()
 {
  Print (n);
  f();
 }

void f()
 {
  n += n* 3 + 12 ;
 }
 
Priffekt :
안녕하세요, 모든 값을 변경했지만 전문가 설정 에서 기능 자체를 비활성화하는 가능성에 관심이 있습니다.

어드바이저 설정에서 일부 기능을 비활성화하는 기능이 필요한 경우 플래그 변수를 설정해야 합니다.

 input bool flag = true ; // флаг отключения

void OnTick ()
 {
   if (flag)
   f();
 }

void f()
 {
   // что-то выполняем
 }
f() 함수는 플래그 == true인 경우에만 실행됩니다.
 
Alexey Viktorov :

강조 표시된 것은 완전히 잘못된 것입니다. 아무도 전역 수준에서 선언된 변수를 처리하는 것을 금지하지 않습니다.

이상하게도 이것은 MQL5 참조의 인용문이며 다음과 같습니다.

"Void 유형 및 NULL 상수

구문적으로 void 유형은 char, uchar, bool, short, ushort, int, uint, color, long, ulong, datetime, float, double 및 string 유형과 함께 기본 유형입니다. 이 유형은 함수가 값을 반환하지 않음 을 나타내거나 함수 매개변수로 매개변수가 없음을 나타내는 데 사용됩니다.

미리 정의된 상수 변수 NULL 은 void 유형입니다. 변환 없이 다른 기본 유형의 변수에 할당할 수 있습니다. 기본 유형의 변수를 NULL 값과 비교할 수도 있습니다."


주제 작성자가 void 유형의 함수를 가지고 있기 때문에 이 텍스트를 인용했습니다. 즉, 아무 것도 반환하지 않아야 하지만 "... return (Exist);"를 반환합니다. 무슨 일이야, 어떻게 생각해?

데이터 처리에 대한 언급은 전혀 없었습니다. 사실, 나는 기초를 배우는 중이기 때문에 어딘가에 틀렸다는 것을 인정합니다. 어쨌든 정보 감사합니다.

 
 
 
Alekseu Fedotov :

"... 반환 (존재);",

반환 값, 함수

이 같은
 

네, 맞습니다. 제가 부주의했고 이 반환을 이전(어느 것보다) 기능 때문이라고 생각했습니다.

 
Alexey Viktorov :

이것은 ...에 관한 것이 아닙니다. 나는 선택을주의 깊게 읽지 않았습니다.

강조 표시된 viod는 매개변수가 없음을 의미합니다. 하지만 반드시 쓸 필요는 없습니다. 매개 변수가 없습니다. 글쎄요, 필요하지 않습니다 ...

네 맞아요 저도 부주의했습니다.

 

전문가에게 질문 plz.

선사시대 - 어드바이저를 쓰려고 하는데 기능면에서 나에게 맞는 스크립트를 찾았습니다. 기능을 만들고 싶습니다. 환경을 준비 중입니다. 물론 표준 라이브러리 에는 교차점이 있습니다. 클래스 객체가 생성되면 자연스럽게 약간 다르게 호출됩니다. 이러한 항목이 어떻게 다른지 이해하고 "*"기호가 비밀 의미를 담고 있는지, 미래 기능 내에서 단일 뷰로 이름을 바꿀 수 있습니까 ???

CTrade         trade;
CPositionInfo  apos;
CSymbolInfo    asymbol;


CTrade         *m_trade;
CSymbolInfo    *m_symbol;
CPositionInfo  *m_position_info; 

 

도움말, 추세선의 첫 번째 좌표 를 찾는 방법은 무엇입니까?

price = NormalizeDouble (ObjectGetValueByShift( "trend" , 0 ), Digits ); //ЦЕНА НА ТЕКУЩЕМ