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

 

안녕하세요 !

문제가 갑자기 발생하고 어드바이저가 작동했으며 문제가 없었지만 새 기능(후행 정지)을 삽입하자마자 OrderSelect 가 전체 어드바이저에서 작동을 멈췄습니다. 오류 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Invalid value of the 함수 매개변수. 처음에는 이해하지 못했습니다. 어딘가에서 변경하고 후행 중지를 제거하고 모든 것을 있는 그대로 반환했지만 OrderSelect에서 여전히 오류가 발생했을 수 있다고 생각했습니다.

다음은 만일의 경우에 대비한 코드입니다.

         for ( int i = OrdersTotal (); i > 0 ; i--)
           {
             if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) == true )
              {
               if ( OrderType () == OP_SELL )
                 {
                   if (! OrderClose ( OrderTicket (), Lots, Ask , slippage, clrRed ))
                    { Print ("Error Order Close SELL = ", GetLastError ());}
                 }
              }
             else
              { Print ("Error order select, try order close SELL = ", GetLastError ());}
           }


 
Vitaliy Sendyaev :

안녕하세요 !

문제가 갑자기 발생하고 어드바이저가 작동했으며 문제가 없었지만 새 기능(후행 정지)을 삽입하자마자 OrderSelect가 전체 어드바이저에서 작동을 멈췄습니다. 오류 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Invalid value of the 함수 매개변수. 처음에는 이해하지 못했습니다. 어딘가에서 변경하고 후행 중지를 제거하고 모든 것을 있는 그대로 반환했지만 OrderSelect에서 여전히 오류가 발생했을 수 있다고 생각했습니다.

다음은 만일의 경우에 대비한 코드입니다.



이것은 완전한 코드가 아닙니다. 브래킷이 제거된 위치에 있을 가능성이 큽니다.
 
Vitaliy Sendyaev : OrderSelect는 오류 4051을 제공합니다. ERR_INVALID_FUNCTION_PARAMVALUE - 잘못된 함수 매개변수 값

다음은 만일의 경우에 대비한 코드입니다: for(int i = OrdersTotal(); i > 0; i--)

(int i = OrdersTotal() -1 ; i >= 0; i--) 주문에 대한 필요는 0부터 번호가 매겨지므로 가장 큰 숫자는 숫자보다 1이 작습니다.

 
STARIJ :

(int i = OrdersTotal() -1 ; i >= 0; i--) 주문에 대한 필요는 0부터 번호가 매겨지므로 가장 큰 숫자는 숫자보다 1이 작습니다.

정확히! 그리고 나는 눈치 채지 못했습니다 ... 당신은 더 자야합니다


 
STARIJ :

(int i = OrdersTotal() -1 ; i >= 0; i--) 주문에 대한 필요는 0부터 번호가 매겨지므로 가장 큰 숫자는 숫자보다 1이 작습니다.


고맙습니다 !

 
Valerius :

이것은 심각하지 않습니다. 왜 그것들(input 및 extern)이 필요한가요?

그리고 심각하지 않은 것은 무엇입니까? 코드 스레드에서 질문을 하고 적절한 답변을 얻었습니다.
글쎄, 터미널을 다시 시작할 생각을하지 않았다면 이미 서비스 데스크에 응답했습니다.

 
Valerius : 예를 들어 오늘 Expert Advisor에서 설정을 지정하고 다음 날 일부 설정이 비어 있는 경우 어떻게 해야 합니까?

어떻게 했는지 짐작하기 어렵습니다. 고문의 코드를 나열하는 것은 유감이며, 나는 그것을 모두보기에 너무 게으르다. 다른 이름으로 복사본을 만들고 매개변수와 빈 OnTick (또는 Start???) 함수를 제외한 모든 것을 제거합니다. 효과가 지속되나요? 수신된 코드 표시

 
Vitaliy Sendyaev : 감사합니다!

도움이 되었나요? 이전에는 어떻게 작동했습니까?

 

죄송합니다. 알아냈지만 oncalculate에서 사전 정의된 변수 가 전역 변수이고 사용 가능한 경우 해당 값을 전달하는 이유가 명확하지 않습니다.

 
ijonhson :

안녕하세요, 표시기를 기반으로 Expert Advisor를 만들고 싶습니다. 표시기 코드를 ontick으로 복사했습니다 . onCalculate 함수의 변수가 충분하지 않습니다. 이 모든 것을 copytime, copyhigh copylow 등을 통해 가져와야 합니다. 아니면 더 간단하고 빠른 옵션이 있습니까?

구출에 iCustom

iCustom - Технические индикаторы - Справочник MQL4
iCustom - Технические индикаторы - Справочник MQL4
  • docs.mql4.com
[in] input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию.