MQL 전문가를 위한 질문 - 페이지 3

 
 
granit77 :

예, 다음과 같이 표시기의 이름이 hilo.mq4라고 가정하면 다음과 같습니다.

 extern int iR = 3 ;
extern int SignalBar = 1 ;
//.......
//---получение значения  HighBuffer 
double buy =   iCustom ( NULL , 0 , " hilo " ,
                       iR ,
                       0 , // № буффера
                       SignalBar ) ; // № бара    
 
//---получение значения  LowBuffer
double sell =   iCustom ( NULL , 0 , " hilo " ,
                       iR ,
                       1 , // № буффера
                       SignalBar ) ; // № бара

작은 문제. 표시기 EA가 작동 중입니다. 하지만 .... 짧은 거래의 구현으로만!

저것들. 버퍼 번호=1 및 0과 첫 번째 막대의 값

 if    (    ( sell_0 > Bid )   &&   ( sell_1 <= Bid ))

판매 조건은 완벽하게 작동합니다.

그러나 전문가는 사고 싶지 않습니다! 나는 무엇이 잘못되었는지 이해하지 못한다! 적절한 조건을 설정하고 있는 것 같습니다. 버퍼 번호=0

 (    ( buy0 >= Ask )   &&       ( buy1 < Ask )    )

사지 않는다! 또는 구매합니다. 드물게 "랜턴!

비주얼 모드 차트의 표시선이 올바르게 구축된 것처럼 보이지만!


여기서 문제가 될 수 있는 것은 무엇입니까?

 
rid :
그라니77 :

예, 다음과 같이 표시기의 이름이 hilo.mq4라고 가정하면 다음과 같습니다.

 extern int iR = 3 ;
extern int SignalBar = 1 ;
//.......
//---получение значения  HighBuffer 
double buy =   iCustom ( NULL , 0 , " hilo " ,
                       iR ,
                       0 , // № буффера
                       SignalBar ) ; // № бара    
 
//---получение значения  LowBuffer
double sell =   iCustom ( NULL , 0 , " hilo " ,
                       iR ,
                       1 , // № буффера
                       SignalBar ) ; // № бара

작은 문제. 표시기 EA가 작동 중입니다. 하지만 .... 짧은 거래의 구현으로만!

저것들. 버퍼 번호=1 및 0과 첫 번째 막대의 값

 if    (    ( sell_0 > Bid )   &&   ( sell_1 <= Bid ))

판매 조건은 완벽하게 작동합니다.

그러나 전문가는 사고 싶지 않습니다! 무슨 일인지 이해가 안 돼요! 조건을 제대로 맞춘 것 같습니다. 버퍼 번호=0

 (    ( buy0 >= Ask )   &&       ( buy1 < Ask )    )

사지 않는다! 또는 och를 구입합니다. 드물게 "랜턴!

비주얼 모드 차트의 표시선이 올바르게 구축된 것처럼 보이지만!


여기서 문제가 될 수 있는 것은 무엇입니까?

아이디어가 있는 사람이 있습니까? 나는 또한이 질문에 관심이 있습니다

 

사용자 지정 표시기로 작업하면서 다음을 확인했습니다.


 // так РАБОТАЕТ !!!
int FATLsB = iCustom ( NULL , 0 , " FATLs " , 0 , 0 ) ;
int FATLsS = iCustom ( NULL , 0 , " FATLs " , 1 , 0 ) ;

// а вот так НЕТ ...
double FATLsB = iCustom ( NULL , 0 , " FATLs " , 0 , 0 ) ;
double FATLsS = iCustom ( NULL , 0 , " FATLs " , 1 , 0 ) ;


// если потом в коде есть сранвнение с 0 или 1, например
if ( FATLsB == 1 ) { CloseSell () ; SetBuy () ; }
 
kombat :

사용자 지정 표시기로 작업하면서 다음을 확인했습니다.


 // так РАБОТАЕТ !!!
int FATLsB = iCustom ( NULL , 0 , " FATLs " , 0 , 0 ) ;
int FATLsS = iCustom ( NULL , 0 , " FATLs " , 1 , 0 ) ;

// а вот так НЕТ ...
double FATLsB = iCustom ( NULL , 0 , " FATLs " , 0 , 0 ) ;
double FATLsS = iCustom ( NULL , 0 , " FATLs " , 1 , 0 ) ;


// если потом в коде есть сранвнение с 0 или 1, например
if ( FATLsB == 1 ) { CloseSell () ; SetBuy () ; }

첫 번째 경우 할당 작업 은 대상 유형 int로의 캐스트가 선행됩니다. 따라서 비교 조건이 올바르게 작동합니다.

두 번째 경우, 비교하기 전에 함수를 사용하여 부동 소수점 숫자를 지정된 정확도로 반올림해야 합니다.

 NormalizeDouble ( double value , int digits )



 

죄송합니다...

위의 예는 버그를 기반으로 합니다.

할당이 반환 가격 표시기 FATL 에 있다는 것 입니다.

그리고 EURUSD 쌍 에서 이것을 눈치채지 못했습니다. "화살표 모양"을 황소 0과 1로 착각했습니다.


그러나 이 옵션은 상황을 수정했습니다.


 bool FATLsB = iCustom ( NULL , 0 , " FATLs " , 0 , 0 ) > 0 ;
bool FATLsS = iCustom ( NULL , 0 , " FATLs " , 1 , 0 ) > 0 ;
//--- открытие БАЙ закрытие СЕЛЛ ------------------
   if ( FATLsB == 1 && TotalBuy () == 0 ) { CloseSell () ; SetBuy () ; }
 

모두에게 좋은 하루!

제발. 말하다.

내 차트에 느린 MA와 빠른 MA가 교차한다고 가정합니다. 첫 번째 바에서.

몇 개의 바를 더 지나도록 하십시오.

과거에 주어진 MA의 마지막 교차가 발생한 막대를 어떻게 결정할 수 있습니까?

------------------------------

나는 문제에 접근하는 방법조차 모른다?

 
Rita :

내 차트에 느린 MA와 빠른 MA가 교차한다고 가정합니다. 첫 번째 바에서.

몇 개의 바를 더 지나도록 하십시오.

과거에 주어진 MA의 마지막 교차가 발생한 막대를 어떻게 결정할 수 있습니까?

당신의 주요 차이점은 무엇입니까? 첫 번째 막대의 교차점은 다른 막대와 동일한 방식으로 조회/검색됩니다. 눈금 값의 값을 보고 분석하는 주기(예: 0 막대에서 막대까지)를 구성합니다. 문제가 이해가 안되네요...
 

현재 막대에서 알아내야 합니다.

MA_1 및 MA_2 두 mamas의 마지막 교차 이후로 몇 개의 막대가 지나갔습니까?

그러한 주기를 구성하는 방법은 무엇입니까?

(MA_1>MA_2) {

 
Rita :

현재 막대에서 알아내야 합니다.

두 MA_1 MA_2의 마지막 교차 이후로 몇 개의 막대가 지나갔습니까?

그러한 주기를 구성하는 방법은 무엇입니까?

MA가 위치를 변경할 때까지 현재 막대에서 이동합니다. 그리고 카운트.