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

 
여러 막대 중에서 High[] 의 최대값을 찾는 방법은 무엇입니까?
 

새로운 mql4 CopyHigh 기능MathMax 수학 함수를 활용하는 것이 가장 좋습니다.

또는 iHighest

 

좋은 아침, 오류가 어디에 있는지 알려주세요.

/////////////////////////////////////////////////////////////////////////////////////////////////////

  //////////////////////////////////Зона консолидации/////////////////////////////////////////////////

  ///////////////////////////////////////////////////////////////////////////////////////////////////

  if(Hour()>=10)

  {

   for(x9=2; x9<=5; x9++)

   {

    x10=Hour()-x9;//x10 -номер свечи от которой считаем восемь свечей назад

    if(x10>=0)

    {

     int Minn=iLowest(NULL, PERIOD_H1, MODE_LOW , x10+8, x10);

     int Maxx=iHighest(NULL, PERIOD_H1, MODE_HIGH, x10+8, x10);

     z11 =iHigh(NULL,PERIOD_H1,Maxx);

     z12 =iLow(NULL, PERIOD_H1,Minn);

     ZPB     =iTime(NULL,PERIOD_H1,x10+8);

     ZPB1     =iTime(NULL,PERIOD_H1,x10);

     if(z11-z12<=z10)

     {

      y4=ObjectCreate("Зона консолидации",OBJ_RECTANGLE,0,0,0,0,0);

      y4=ObjectSet("Зона консолидации",OBJPROP_WIDTH,2);

      y4=ObjectSet("Зона консолидации",OBJPROP_COLOR,Blue);

      y4=ObjectSet("Зона консолидации",OBJPROP_BACK,true);

      y4=ObjectMove("Зона консолидации",0,ZPB,z11);

      y4=ObjectMove("Зона консолидации",1,ZPB1,z12);

     }

    }

   }

  }

  ////////////////////////////////////////////////////////////////////////////////////////////////////

계획대로 각 반복에서 코드는 채널 너비를 확인해야 하며 현재 값( z11-z12<=z10 )보다 작거나 같으면 직사각형을 그려야 하지만 출력에서는 다음과 같이 나타납니다. 모든 반복을 먼저 거친 다음 규정 준수를 확인합니다.
 
AlexeyVik :

새로운 mql4 CopyHigh 기능MathMax 수학 함수를 활용하는 것이 가장 좋습니다.

또는 iHighest

CopyHigh 이면 ArrayMaximum , IMHO...
 

오류 번호 1(ERR_NO_RESULT 오류는 없지만 결과는 알 수 없음)을 처리하는 방법을 알려주십시오.

EURUSD 쌍 에서 주문의 손실이 $1(0.01이 많은 100포인트) 이상인 경우 EA는 주문을 수정하려고 시도합니다(주문의 TakeProfit을 시작 가격으로 설정).

이 오류가 발생합니다. 어떻게 해야 합니까?

 
evillive :
CopyHigh 이면 ArrayMaximum , IMHO...
그래, 그게 내가 생각했던거야. 실수와 누락이 모두 있습니다. 약 한 달 반 전에 다섯 번째 포럼에서 같은 질문이 있었습니다. 그래서 거기에서 ArrayMaximum에 대해 이야기하고 있었지만 여기서 약간 혼란스러워했습니다 ...
 

안녕하세요, 저는 2000개 단위의 이동 평균 (MA)으로 작업합니다.

작업은 Close[1]에서 MA 가격의 반복 횟수를 계산하는 것입니다.

- 최소한의 자원으로 이 작업을 실현하는 방법.

 
Top2n :

안녕하세요, 저는 2000개 단위의 이동 평균(MA)으로 작업합니다.

작업은 Close[1]에서 MA 가격의 반복 횟수를 계산하는 것입니다.

- 최소한의 자원으로 이 작업을 실현하는 방법.

종가에서 기간 1을 사용하지 않으면 반복 횟수는 0이 됩니다. 그러나 우리가 특정 범위에 들어가는 것을 고려한다면 문제가 해결되고 더 흥미로울 수 있습니다. 또는 최대값과 최소값을 찾으십시오. 차이를 범위로 나눕니다. 그런 다음 각 이동 평균에 대해 해당 범위를 결정합니다(여기에서는 범위 또는 간격에 해당하는 배열에 대해 설명합니다). 가장 많은 히트를 기록한 배열 인덱스 가 승자입니다. 어쩌면 내가 내 자신을 명확하게 표현하지 못했을 수도 있습니다. 별도의 주제로 문제를 해결하는 것이 좋습니다. 여러 가지 해결책이 있을 수 있습니다. 그리고 미래에 누군가가 그것을 필요로 할 수도 있습니다. 그리고 때때로 그들은 끝을 찾지 못할 것입니다.
 

안녕하세요, GV 변수에 대해 튜토리얼을 읽고 있습니다. 나는 그들이 어떻게 작동하는지 이해할 수 없습니다. 예를 들어, 튜토리얼에서는 GV 변수가 double 유형 만 될 수 있다고 말합니다. 좋아요, 더블은 더블입니다). 그러나 GlobalVariableSet(), GlobalVariableGet(), GlobalVariableDel( ) 함수를 나열할 때 그 중 하나는 시간, 두 번째 bool 등을 반환한다고 작성합니다. 머리가 어지러웠고 어떻게 정리되어 있는지 도무지 이해할 수 없었다. 또한 최근에 MQL4를 공부하기 시작하면서 새로운 정보가 머리에 많이 들어옵니다. 가능하다면 교과서에 있는 작업의 예를 사용하여 설명하십시오.

문제 24. 여러 전문가가 동시에 터미널에서 작업합니다. 입금액은 $10,000이며, 모든 미결 주문의 총액은 입금액의 30%를 초과할 수 없습니다. 각 전문가에게는 동일한 금액이 할당되어야 합니다. 거래에 할당된 금액 계산이 포함된 Expert Advisor 프로그램을 만듭니다.

정수     전문가 ; // 수량 전문가

더블 Depo =10000.0, // 지정된 보증금

       Percent =30, // 백분율 설정

       ; // 자금 검색

문자열 수량 = "GV_Quantity"; // GV 변수 이름

//------------------------------------------------ --------------------

int init() // 사양. 초기화 기능

{

Experts=GlobalVariableGet(수량); // 현재 가져오기. 값

전문가=전문가+1; // 수량 전문가

GlobalVariableSet(수량, 전문가); // 새 값

돈=예금*현금/100/전문가; // exp를 위한 자금.

경고 ("창에 있는 전문가 고문", 기호 (),"강조 표시됨", Money );

   반품; // init() 종료

}

//------------------------------------------------ --------------------

int start() // 사양. 시작 기능

{

int New_Experts= GlobalVariableGet(Quantity);// 새로운 수량. 특급

if (Experts!=New_Experts) // 변경된 경우

{

Experts=New_Experts; // 현재. 그런

돈=예금*현금/100/전문가; // 새 값 자금

Alert ("EA의 새 값 ", Symbol (),": ", Money );

}

/*

...

여기에 전문가의 주요 코드를 지정해야 합니다.

Money 변수 의 값을 사용하는

...

*/

   반환 ; // 시작에서 종료 ( )

}

//------------------------------------------------ --------------------

정수 deinit () // 사양. 기능 초기화

{

   if ( Experts ==1) // 전문가가 한 명뿐인 경우..

      GlobalVariableDel ( 수량 ); //..GV 변수 제거

   else // 그렇지 않으면..

      GlobalVariableSet(수량, 전문가-1); //..1만큼 감소

경고 ("전문가가 창에서 언로드됨", 기호 ()); // 메시지 언로드에 대해

   반품; // deinit() 종료

   }  

 
Vinin :
종가에서 기간 1을 사용하지 않으면 반복 횟수는 0이 됩니다. 그러나 우리가 특정 범위에 들어가는 것을 고려한다면 문제가 해결되고 더 흥미로울 수 있습니다. 또는 최대값과 최소값을 찾으십시오. 차이를 범위로 나눕니다. 그런 다음 각 이동 평균에 대해 해당 범위를 결정합니다(여기에서는 범위 또는 간격에 해당하는 배열에 대해 설명합니다). 가장 많은 히트를 기록한 배열 인덱스가 승자입니다. 어쩌면 내가 내 자신을 명확하게 표현하지 못했을 수도 있습니다. 별도의 주제로 문제를 해결하는 것이 좋습니다. 여러 가지 해결책이 있을 수 있습니다. 그리고 미래에 누군가가 그것을 필요로 할 수도 있습니다. 그리고 때때로 그들은 끝을 찾지 못할 것입니다.

생각해봐야겠네요 감사합니다.

별도 주제 - https://forum.mql4.com/en/66882