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

 
hoz :

기능이 있습니다. 그녀의 시작은 다음과 같습니다.

요점은 이것입니다. 함수의 두 번째 형식 매개변수의 기본값은 0 입니다. 두 번째 매개변수 없이 설명서에 따라 이 함수를 호출할 수 있습니다. 기본값은 0 입니다.

나는 이것을 다음과 같이 부른다:

컴파일러는 다음과 같이 불평합니다.

왜요?

라이브러리에서 what-the-doing 코드로 이동하십시오. 오류가 사라지면 what-the-doing 코드에서 라이브러리의 올바른 연결에 문제가 있는 것입니다. 주로.

사라지지 않으면 함수에 전달하는 매개 변수를 확인하십시오. 이론적으로 통화 쌍의 이름과 함께 문자열 유형 매개변수가 있어야 합니다. Symbol()만 전달

 
artmedia70 :

라이브러리에서 what-the-doing 코드로 이동하십시오. 오류가 사라지면 what-the-doing 코드에서 라이브러리의 올바른 연결에 문제가 있는 것입니다. 주로.

사라지지 않으면 함수에 전달하는 매개 변수를 확인하십시오. 이론적으로 통화 쌍의 이름과 함께 문자열 유형 매개변수가 있어야 합니다. Symbol()만 전달



그리고 그것은 정말로 도움이되었습니다 .. 제 생각에는 ..

너무 이상해. 그리고 매개변수 전달이 올바른 경우 라이브러리에서 무엇을 살펴봐야 할까요? 오류가 명확하게 기록되어 있습니다. 아니면 구체적인 내용이 없는 건가요? 여기에 필요한 것이 무엇인지 알고 싶습니다.

이 기능은 차용해서 작성자 연락처로 확인 중입니다.

 //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Получаем торговую информацию по символу                                    |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fGet_MarketInfo ( string fs_Symbol, int fi_Ticket = 0 )
{
//----
         if (fs_Symbol != bs_Symbol || fi_Ticket < 0 )
         {
                   if (fi_Ticket > 0 )
                  {
                     bs_Symbol = OrderSymbol();
                  }
                   else
                  {
                     bs_Symbol = fs_Symbol;
                  }
                   if (bs_Symbol == Symbol ())
                  {
                      bi_SymDigits = Digits ;
                      bd_SymPoint = Point ;
                  }
                   else
                  {
                      bi_SymDigits = MarketInfo (fs_Symbol, MODE_DIGITS);
                      bd_SymPoint = MarketInfo (fs_Symbol, MODE_POINT);
                  }
         if (bd_SymPoint == 0.0 )
        {
           bd_SymPoint = fGet_Point (fs_Symbol);
        }
                  bd_ProfitMIN = NDP (ProfitMIN_Pips);
         }
         if (fi_Ticket > 0 )
         {
            fGet_OrderDetails (fi_Ticket);
         }
     //---- Получаем текущие цены по инструменту
    RefreshRates();
    bda_Price[ 0 ] = NDD (fGet_TradePrice ( 0 , bb_RealTrade, bs_Symbol));
    bda_Price[ 1 ] = NDD (fGet_TradePrice ( 1 , bb_RealTrade, bs_Symbol));
    bd_Spread = NDD (bda_Price[ 1 ] - bda_Price[ 0 ]);
//----
}

다음과 같이 수입했습니다.

 #import "hoz_Base@Library.ex4"
     double ND ( double v);
     string DToS ( double v);
     string DToSByLots ( double v);
     void fGet_MarketInfo ( string fs_Symbol, int fi_Ticket = 0 );
#import

호출은 다음과 같습니다.

fGet_MarketInfo (fs_Symbol);

그러한 작업은 어떻게 해결됩니까?

 
hoz : 그러한 작업은 어떻게 해결됩니까?

문서 공부. 기본적으로 매개변수는 컴파일된 라이브러리에 전달되지 않습니다. 함수를 호출할 때 모든 매개변수를 전달해야 합니다. 주의 깊게 읽으십시오 . 발췌:

가져온 함수가 컴파일된 모듈 외부에 있기 때문에 컴파일러는 전달된 매개변수의 정확성을 확인할 수 없습니다. 따라서 런타임 오류를 방지하기 위해 가져온 함수에 전달되는 매개변수의 구성과 순서를 정확하게 설명해야 합니다. 가져온 함수(EX4 및 DLL 모듈 모두에서)에 전달된 매개변수는 기본값을 가질 수 없습니다.
 
TarasBY :

기본적으로 매개변수는 컴파일된 라이브러리에 전달되지 않습니다. 함수를 호출할 때 모든 매개변수를 전달해야 합니다. 주의 깊게 읽으십시오 . 발췌:

가져온 함수가 컴파일된 모듈 외부에 있기 때문에 컴파일러는 전달된 매개변수의 정확성을 확인할 수 없습니다. 따라서 런타임 오류를 방지하기 위해 가져온 함수에 전달되는 매개변수의 구성과 순서를 정확하게 설명해야 합니다. 가져온 함수(EX4 및 DLL 모듈 모두에서)에 전달된 매개변수는 기본값을 가질 수 없습니다.

아, 그게 다야 살고 배우십시오! 고마워, 내가 알게 될거야.
 

MT4에서 최적화를 시작할 때 "보고서" 탭에서 단일 패스 중에 형성된 것과 유사한 " 최적화 결과 " 탭에서 패스에 대한 정보를 수신해야 합니다.

이것을 어떻게 구현할 수 있습니까?

 

도서관을 둘러보기로 했다. 내 표시기에서 코드의 일부를 빨아들여 함수에 붙이고 함수를 곱하여 두 개의 라이브러리 파일에 삽입했습니다.

나는 첫 번째 것을 "indi.mqh"라고 불렀고 두 번째 것을 간단히 "djo.mq4"라고 불렀다.

 int countbars( int & hist, int obrax, bool tikk)
{ 
 int z= 0 ;
 static int PreBars= 0 ; 
 static datetime BarTime= 0 ;
 if ( Bars == PreBars && tikk== false ) return (- 1 );
 if ( Bars < hist+obrax)  
 {
   if ( Bars -obrax<= 1 ) { Alert ( " Недостатьньо історії" ); return (- 1 );}
  hist= Bars -obrax;
 }
 
 if ( Bars -PreBars == 0 && BarTime==Time[ 0 ] && tikk== true ) return ( 0 );
 else   
 {
   if ( Bars -PreBars == 1 && BarTime==Time[ 1 ]) z= 1 ;
   else   z=hist;
 }
 PreBars = Bars ;  
 BarTime=Time[ 0 ];
 return (z);
}

요점: 먼저 연락하면 모든 규칙이 계획대로 작동합니다.

 include <indi.mqh>

첫 번째를 두 번째로 바꾸고 두 번째 방법을 참조할 때:

#import "djo.ex4"    int countbars( int & hist, int obrax, bool tikk);  #import

그러나 아무 것도 작동하지 않습니다. 심지어 경고도 시작 후 아무데도 없습니다. 그리고 터미널은 방금 닫혔습니다))

가져온 함수 에 대한 호소에서 매번 모든 상수의 재초기화가 있다고 어떻게 생각합니까?

mql4로 가져오기, 수정되었거나 수정되지 않은 버그 등에 대한 자세한 내용은 어디에서 읽을 수 있습니까?

감사합니다 자러갑니다....

 
ALXIMIKS :

도서관을 둘러보기로 했다. 내 표시기에서 코드의 일부를 빨아들여 함수에 붙이고 함수를 곱하여 두 개의 라이브러리 파일에 삽입했습니다.

나는 첫 번째 것을 "indi.mqh"라고 불렀고 두 번째 것을 간단히 "djo.mq4"라고 불렀다.

요점: 첫 번째 연락할 때 모든 규칙은 계획대로 작동합니다.

첫 번째를 두 번째로 바꾸고 두 번째 방법을 참조할 때:

그러나 아무 것도 작동하지 않습니다. 심지어 경고도 시작 후 아무데도 없습니다. 그리고 터미널은 방금 닫혔습니다))

가져온 함수에 대한 호소에서 매번 모든 상수의 재초기화가 있다고 생각합니까?

mql4로 가져오기, 수정되었거나 수정되지 않은 버그 등에 대한 자세한 내용은 어디에서 읽을 수 있습니까?

감사합니다 자러갑니다....

참조로 매개변수를 전달할 수 있습니다. 이 경우 이러한 매개변수의 수정은 참조로 전달된 호출된 함수의 해당 변수에 반영됩니다. 배열 요소는 참조로 전달할 수 없습니다. 참조에 의한 매개변수는 단일 모듈 내에서만 전달할 수 있습니다. 이 가능성은 라이브러리 함수에 대해 제공되지 않습니다 . 매개변수가 참조로 전달되었음을 나타내려면 데이터 유형 뒤에 & 수정자를 배치해야 합니다. 그리고 여기에 몇 가지 더 많은 실험이 있습니다.
 
말해봐, 여기 두 개의 평균이 교차할 때 소리 메시지가 있습니다. 열리면 이 음성 메시지가 전체 역사에 교차점이 있었던 횟수만큼 반복됩니다. 문제. 현재 생성된 신호의 메시지만 강제로 발행하는 방법. 즉, 그 때와 그 순간에 문자 그대로 수신 된 신호 만 ...
 
Zolotai :
말해봐, 여기 두 개의 평균이 교차할 때 소리 메시지가 있습니다. 열리면 이 음성 메시지가 전체 역사에 교차점이 있었던 횟수만큼 반복됩니다. 문제. 현재 생성된 신호의 메시지만 강제로 발행하는 방법. 즉, 그 때와 그 순간에 문자 그대로 수신 된 신호 만 ...
무엇을 열 때? 지표인 것 같습니다. 많은 솔루션이 있습니다. 그것은 모두 코드에 달려 있습니다.
 
artmedia70 :
무엇을 열 때? 지표인 것 같습니다. 많은 솔루션이 있습니다. 그것은 모두 코드에 달려 있습니다.


예, 여기에는 코드가 없습니다. 나는 단지 적당한 조건이 필요하다. 문제는 현재 막대의 시간을 알 수 있는지 여부입니다. 바 시간을 어떻게 알 수 있습니까?