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

 
-Aleks- :

도움을 요청합니다. i>0 값에서 VesMass 배열을 계산할 때 0이 나오는 이유를 이해할 수 없습니까?

4와 5가 아니라 4.0과 5.0을 작성해야한다는 것이 밝혀졌습니다. 어떤 종류의 논리인지 - 나에게 명확하지 않습니다 ...
 
-Aleks- :

4와 5가 아니라 4.0과 5.0을 작성해야한다는 것이 밝혀졌습니다. 어떤 종류의 논리인지 - 나에게 명확하지 않습니다 ...
문서를 읽으면 명확해질 것입니다. 그가 직접 해서 좋았다.
 
Alexey Viktorov :
문서를 읽으면 명확해질 것입니다. 그가 직접 해서 좋았다.

예, 전에 비슷한 내용을 읽었습니다. 그래서 시도하기로 결정했지만 이것의 논리가 명확하지 않은 경우 ... 그런데 문서에서 답을 찾을 수 없었습니다.
 
-Aleks- :

예, 전에 비슷한 내용을 읽었습니다. 그래서 시도하기로 결정했지만 이것의 논리가 명확하지 않은 경우 ... 그런데 문서에서 답을 찾을 수 없었습니다.


이것은 MCL의 기능일 뿐만 아니라 C ++ 및 기타 프로그래밍 언어에서도 동일합니다. 두 개의 정수 또는 유형(int)의 변수를 나누면 결과가 정수로 잘립니다. 귀하의 경우 4/5=0입니다.

4.0/5 또는 (double)4/5를 쓸 수 있습니다. 그러면 결과는 실수가 됩니다.
 
Vitalie Postolache :


이것은 MCL의 기능일 뿐만 아니라 C ++ 및 기타 프로그래밍 언어에서도 동일합니다. 두 개의 정수 또는 유형(int)의 변수를 나누면 결과가 정수로 잘립니다. 귀하의 경우 4/5=0입니다.

4.0/5 또는 (double)4/5를 쓸 수 있습니다. 그러면 결과는 실수가 됩니다.

나는 이것을 이해했지만 솔루션의 논리를 이해하지 못했습니다. 즉, 필요.

 
-Aleks- :

나는 이것을 이해했지만 솔루션의 논리를 이해하지 못했습니다. 즉, 필요.


글쎄, 당신은 "산술에서 왜 2 * 2 = 4, 해의 논리는 무엇입니까"라고 주장하지 않습니까? 그냥 공리로 받아들이고 사용하십시오. 따라서 두 정수의 나눗셈도 마찬가지입니다.
 
Vitalie Postolache :

글쎄, 당신은 "산술에서 왜 2 * 2 = 4, 해의 논리는 무엇입니까"라고 주장하지 않습니까? 그냥 공리로 받아들이고 사용하십시오. 따라서 두 정수의 나눗셈도 마찬가지입니다.

추가로 확인하겠습니다...

 


고양이 :


선은 추세선입니다. 속성을 빔으로 변경했습니다. 도움이되지 않았습니다. 이상적으로는 제로 바(상단, 하단)의 위치에 관계없이 가격을 표시해야 합니다.

이 코드도 작동하지 않습니다.

정수 시작() {

이중 pr=ObjectGetValueByShift("줄", 0);

‌ 경우(입찰가==pr){

경고(pr);}

반환(0);‌}‌


줄 이름의 철자가 정확합니까?

이 스크립트를 시도하고 로그에 기록된 내용을 보여줍니다.

 void OnStart ()
  {
     double pr;
     int obj_total= ObjectsTotal (); 
     string name;
     int i; 
     
   for (i= 0 ;i<obj_total;i++) 
     { 
      name= ObjectName (i); 
       if ( ObjectType (name)!= OBJ_TREND ) continue ; 
       PrintFormat ( "Объект %d:     Имя объекта - %s" ,i,name); 
      pr= ObjectGetValueByShift (name, 0 );
       PrintFormat ( "Объект %d:     Цена - %.5f" ,i,pr);
      
     }  

}

‌스크립트는 개체를 결정하고 올바른 이름을 씁니다. 그러나 가격은 절대적으로 좌우됩니다. 사진에 가로선으로 표시해두었습니다. 막대가 선을 넘었는지 여부에 관계없이 이러한 가격을 제공합니다.

파일:
23.png  62 kb
 
Kot :


선은 추세선입니다. 속성을 빔으로 변경했습니다. 도움이되지 않았습니다. 이상적으로는 제로 바(상단, 하단)의 위치에 관계없이 가격을 표시해야 합니다.

이 코드도 작동하지 않습니다.

정수 시작() {

이중 pr=ObjectGetValueByShift("줄", 0);

‌ 경우 (입찰가==pr) {

경고(pr);}

반환(0);‌}

입찰가는 쉽게 선을 넘을 수 있으며 각 지점에 머물지 않아도 됩니다(즉, 정확히 동일하지 않음).

예를 들어 조건을 if ( ( MathMin (Close[1],Open[0])<=pr && Bid>=pr) || (MathMax(Close[1],Open[0])>=pr && Bid <= pr)) 또는 이와 유사한..

 
Maxim Kuznetsov :

입찰가는 쉽게 선을 넘을 수 있으며 각 지점에 머물지 않아도 됩니다(즉, 정확히 동일하지 않음).

예를 들어 조건을 if ( (MathMin(Close[1],Open[0])<=pr && Bid>=pr) || (MathMax(Close[1],Open[0])>=pr && Bid <= pr)) 또는 이와 유사한..


고맙습니다! 아이디어를 이해했습니다.

상황이 다르다면? 차트에는 이름이 다른 수평선 이 있습니다. 스크립트는 어떤 라인이 어떤 가격에 해당하는지 계산해야 합니다.