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

 

코리파이우스가 구하러 옵니다.

작업 은 array[]에서 최소 요소를 찾는 것 입니다.

 //+------------------------------------------------------------------+ 
//| Получим Lowest для заданного промежутка                          | 
//+------------------------------------------------------------------+ 
double iLowMin( int ot, int bands, double &buffer[])
  {
   double result=- 1 ;
   result=buffer[ ArrayMinimum (buffer,ot,bands)];
   return (result);
  }
//+------------------------------------------------------------------+ 
//| Получим High для заданного номера бара                           | 
//+------------------------------------------------------------------+ 
double iHighMax( int ot, int bands, double &buffer[])
  {
   double result=- 1 ;
   result=buffer[ ArrayMaximum (buffer,ot,bands)];
   return (result);
  }

최대를 추구하고 최소한 죽입니다. 나는 아무 것도 시도하지 않았고 입력 배열이 가득 찼습니다. 디버깅을 통해 살펴 보았습니다. 무슨 deeeeelllat?

 Print ( "DwMin  " ,iLowMin(rates_total- 50 , 49 ,ExtLowerBuffer));

아마도 약간의 뉘앙스가 있습니까?

통해 발표

   SetIndexBuffer ( 1 ,ExtLowerBuffer, INDICATOR_DATA );
 
Top2n :

코리파이우스가 구하러 옵니다.

작업 은 array[]에서 최소 요소를 찾는 것 입니다.

최대를 추구하고 최소한 죽입니다. 나는 아무 것도 시도하지 않았고 입력 배열이 가득 찼습니다. 디버깅을 통해 살펴 보았습니다. 무슨 deeeeelllat?

아마도 약간의 뉘앙스가 있습니까?

통해 발표

ArraySort를 시도하고 첫 번째 인덱스 출력을 확인하십시오.

 

지식권의 경우 질문을 삭제하자마자 추측이 머리에 떠오르기 시작했지만 배열에 0이 있고 min = 0을 제공합니다. 그러나 여전히 0이 아닌 값을 가진 섹션이 있고 최소값은 여전히 0입니다. 음, 신이 그것을 없애실 것입니다. 질문은 제거됩니다.)) 방금 읽은 사람들 덕분에 noosphere가 당신에게

 

주의 질문))

표시기에서 처리를 시작할 막대를 설정하는 방법은 무엇입니까?

 if(prev_calculated>rates_total-Bmax)

{ ... то что нужно обрабатывать начиная с бара[rates_total-Bmax]

}

그렇게 시도하면 표시기의 결과는 일반적으로 한 움직임을 만듭니다.

 

다시 안녕! 말해 주세요 . 배열 요소의 인덱스를 알고 있고 그 값을 찾기 위해 어떤 함수를 사용하는지 알고 있습니다.

int Totall=주문 총계();

이중 가격; // 선택한 주문의 가격

더블마스[]; //모든 주문을 위한 배열

for(int i=0; i<OrdersTotal(); i++) // 순서를 통해 루프

{

if(OrderSelect(i,SELECT_BY_POS)) // 다음이 있는 경우

{가격=주문오픈가격(); // 배열을 가격으로 채웁니다.

매스[i] = 가격;

}

}

ArraySort(Mas,WHOLE_ARRAY,0,MODE_ASCEND); // 이제 시가가 내림차순으로 정렬됩니다.

int Blizko2=ArrayBsearch(Mas,Ask,WHOLE_ARRAY,0,MODE_DESCEND) //현재 가격에 가장 가까운 큰 요소의 인덱스를 결정

 
Nauris Zukas :

예전에 수업을 들으면서 접했던 것처럼 글에 설명되지 않은 뉘앙스가 있거나 검색 엔진을 통해 찾을 수 없을 정도로 어딘가에 숨겨져 있는 뉘앙스가 있습니다. 하루 종일 설명을 찾느라 허비되었습니다. 예를 들어, 이 기호는 무엇을 의미하며 그렇지 않은 경우 어떤 영향을 미칩니다. 아래 기사 의 예에서 볼 수 있듯이 처음에는 있고 그 다음에는 없습니다. &

또한 이 기호가 의미하는 바가 명확하지 않습니다. ~

*

mql4, mql5에서 배열은 항상 참조(& == 앰퍼샌드)에 의해서만 함수에 전달됩니다.

첫째 - 함수의 형식 매개변수에 - 앰퍼샌드가 있으며 이는 배열 자체가 함수에 전달되지 않고 함수에 대한 참조가 전달됨을 의미합니다. 그런 다음 함수 내부에서 이미 링크로 작업하고 있으므로 다시 지정할 필요가 없습니다.

음, 물결표(~)는 클래스 소멸자 이름 앞에 쓰여집니다. 생성자와 소멸자는 클래스 자체와 이름이 같지만 소멸자에는 ~가 있습니다.

다음은 링크를 사용해야 하는 경우와 포인터를 사용해야 하는 경우에 대한 기사 입니다.

그러나 여전히 기본 사항을 읽어야 합니다.

 
vikzip :

다시 안녕! 말해 주세요 . 배열 요소의 인덱스를 알고 있고 그 값을 찾기 위해 어떤 함수를 사용하는지 알고 있습니다.

int Totall=주문 총계();

이중 가격; // 선택한 주문의 가격

더블마스[]; //모든 주문을 주문하기 위한 배열

for(int i=0; i<OrdersTotal(); i++) // 순서를 통해 루프

{

if(OrderSelect(i,SELECT_BY_POS)) // 다음이 있는 경우

{가격=주문오픈가격(); // 배열을 가격으로 채웁니다.

매스[i] = 가격;

}

}

ArraySort(Mas,WHOLE_ARRAY,0,MODE_ASCEND); // 이제 시가가 내림차순으로 정렬됩니다.

int Blizko2=ArrayBsearch(Mas,Ask,WHOLE_ARRAY,0,MODE_DESCEND) //현재 가격에 가장 가까운 큰 요소의 인덱스를 결정

Array_element_value = 배열[인덱스];

 

나에게 조언자가 있고 직장에서 일반 컴퓨터인 Windows xp에서 테스트했습니다. 모든 것이 잘 작동합니다.

집에 돌아와서 노트북 맥북을 집에 두고 같은 시간에 같은 도구에 대해 같은 매개변수를 사용하면 FREIMAM이 테스터에서 완전히 다른 결과를 보여줍니다. 추측이나 아이디어가 있는 이유가 무엇입니까?

 
Artyom Trishkin :

Array_element_value = 배열[인덱스];


감사합니다. 이제 새로운 문제가 생겼습니다. 다음 조건을 작성할 때 'PriceBlizko1' - 미선언 식별자가 발생합니다. 이유를 설명해 주세요.

이중 가격; // 선택한 주문의 가격

더블마스[]; //모든 주문을 위한 배열

for(int i=0; i<OrdersTotal(); i++) // 순서를 통해 루프

{

if(OrderSelect(i,SELECT_BY_POS)) // 다음이 있는 경우

{


가격=OrderOpenPrice(); // 배열을 가격으로 채웁니다.

매스[i] = 가격;

}

}

ArraySort(Mas, WHOLE_ARRAY ,0,MODE_ASCEND); // 이제 시가가 내림차순으로 정렬됩니다.

int Blizko1=ArrayBsearch(대량,입찰가,WHOLE_ARRAY,0,MODE_ASCEND); //현재 가격에 가장 가까운 낮은 값 요소의 인덱스가 결정됩니다.

더블 PriceBlizko1=마스[Blizko1];

}

if (PriceBlizko1-Bid>=30*Point) //하한가가 30포인트 이상일 경우 !!!!!!IN THIS LINE!!!!!

OrderSend(Symbol(),OP_SELL,LtsS,Bid,2,0,Bid+30*Point); //판매 주문을 엽니다.

경고(GetLastError()); //에러 메시지



 
vikzip :

버튼을 사용하여 코드를 붙여넣으세요!