오류, 버그, 질문 - 페이지 797

 
sergeev :

이거 야?


두 가지 질문이 있습니다

- 코드에서 계산을 4배에서 변경한 이유

- 이 표시기는 무엇을 보여줍니까? 그것을 거래하는 방법?

그것.

- 나는 변하지 않았다. 그는 모든 것을 하나씩 옮겼습니다. 거기에서 4개 코드의 f-ths 대신에 5개에서 OPEN, CLOSE, HIGH, LOW에 대한 느리고 빠른 이동 평균에서 이전에 계산된 MA 배열의 값을 즉시 사용하고 다시 해당 기기를 곱합니다. 계수.

예를 들어 4개의 FINAL 코드는 다음과 같습니다.

 if ( Symbol () == "EURUSD" ){
               OPEN=EUR(Mode, PRICE_OPEN ,i,per1,per2)-USD(Mode, PRICE_OPEN ,i,per1,per2);
               HIGH=EUR(Mode, PRICE_HIGH ,i,per1,per2)-USD(Mode, PRICE_HIGH ,i,per1,per2);
               LOW=EUR(Mode, PRICE_LOW ,i,per1,per2)-USD(Mode, PRICE_LOW ,i,per1,per2);
               CLOSE=EUR(Mode, PRICE_CLOSE ,i,per1,per2)-USD(Mode, PRICE_CLOSE ,i,per1,per2);
...
 pair[i]=(OPEN+HIGH+LOW+CLOSE)/ 4 ;

여기 EUR f-th 중 하나가 있습니다. 대신 상위 5개 항목에 사용합니다(아래 참조). 내부 공식에 따라 즉시 계산합니다. 모든 것이 일대일로 이깁니다.

double EUR( int Mode, int Price, int i, int per1, int per2){
   return (
            ( iMA ( "EURUSD" , 0 ,per2, 0 ,Mode,Price,i)-
             iMA ( "EURUSD" , 0 ,per1, 0 ,Mode,Price,i))* 10000 *kUSD
            +
            ( iMA ( "EURGBP" , 0 ,per2, 0 ,Mode,Price,i)-
             iMA ( "EURGBP" , 0 ,per1, 0 ,Mode,Price,i))* 10000 *kGBP
            +
            ( iMA ( "EURJPY" , 0 ,per2, 0 ,Mode,Price,i)-
             iMA ( "EURJPY" , 0 ,per1, 0 ,Mode,Price,i))* 100 *kJPY
          ); 

상위 5개에서 이 계산은 다음과 같습니다. 상위 4개와 같이 함수가 없지만 이전에 계산된 배열을 바로 사용합니다.

 if ( Symbol () == "EURUSD" )
        {     
// ----  OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2);          
         OPEN=((OPEN_F_EURUSD[i]-OPEN_S_EURUSD[i])* 10000 *kUSD+(OPEN_F_EURGBP[i]-OPEN_S_EURGBP[i])* 10000 *kGBP+(OPEN_F_EURJPY[i]-OPEN_S_EURJPY[i])* 100 *kJPY -
               (OPEN_S_EURUSD[i]-OPEN_F_EURUSD[i])* 10000 *kEUR+(OPEN_S_GBPUSD[i]-OPEN_F_GBPUSD[i])* 10000 *kGBP+(OPEN_F_USDJPY[i]-OPEN_S_USDJPY[i])* 100 *kJPY);
               
// ----  HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2);              
         HIGH=((HIGH_F_EURUSD[i]-HIGH_S_EURUSD[i])* 10000 *kUSD+(HIGH_F_EURGBP[i]-HIGH_S_EURGBP[i])* 10000 *kGBP+(HIGH_F_EURJPY[i]-HIGH_S_EURJPY[i])* 100 *kJPY -
               (HIGH_S_EURUSD[i]-HIGH_F_EURUSD[i])* 10000 *kEUR+(HIGH_S_GBPUSD[i]-HIGH_F_GBPUSD[i])* 10000 *kGBP+(HIGH_F_USDJPY[i]-HIGH_S_USDJPY[i])* 100 *kJPY);
               
// ----  LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2);
         LOW=((LOW_F_EURUSD[i]-LOW_S_EURUSD[i])* 10000 *kUSD+(LOW_F_EURGBP[i]-LOW_S_EURGBP[i])* 10000 *kGBP+(LOW_F_EURJPY[i]-LOW_S_EURJPY[i])* 100 *kJPY -
               (LOW_S_EURUSD[i]-LOW_F_EURUSD[i])* 10000 *kEUR+(LOW_S_GBPUSD[i]-LOW_F_GBPUSD[i])* 10000 *kGBP+(LOW_F_USDJPY[i]-LOW_S_USDJPY[i])* 100 *kJPY);
               
// ---   CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2);
         CLOSE=((CLOSE_F_EURUSD[i]-CLOSE_S_EURUSD[i])* 10000 *kUSD+(CLOSE_F_EURGBP[i]-CLOSE_S_EURGBP[i])* 10000 *kGBP+(CLOSE_F_EURJPY[i]-CLOSE_S_EURJPY[i])* 100 *kJPY -
               (CLOSE_S_EURUSD[i]-CLOSE_F_EURUSD[i])* 10000 *kEUR+(CLOSE_S_GBPUSD[i]-CLOSE_F_GBPUSD[i])* 10000 *kGBP+(CLOSE_F_USDJPY[i]-CLOSE_S_USDJPY[i])* 100 *kJPY);
         }
      
      pair[i]=(OPEN+HIGH+LOW+CLOSE)/ 4 ;    

- 여러 악기의 움직임의 누적(누적) 효과, OPEN, HIGH, LOW, CLOSE에서 빠르고 느린 MA 악기의 차이가 취해집니다. 그것들은 함께 더해지고 4로 나뉩니다. 또한 최적화의 대상이 되는 빠르고 느린 MA 기기의 차이의 승수 계수를 고려합니다.

거래: 1. 0선을 넘음 + 다름(거짓 입력을 필터링하기 위한 0과의 거리)을 아래에서 위로 교차한 다음 구매, 위에서 아래로, 그런 다음 매도합니다. 트레일러에서 전문가를 만나보세요.

2. 라인 굴절 기준: 굴절이 0보다 낮으면 매수, MA 상품의 이 총 차이 라인 굴절이 0보다 크면 매도(이 옵션은 아직 올빼미에서 사용할 수 없음).

첫 번째 또는 두 번째 옵션을 챔피언십에서 사용하고 싶습니다.

파일:
 

차트의 잘못된 표시(막대 모드).

터미널이 실행되면 표시기 버퍼 기호의 이미지가 참조하는 막대의 이미지에 비해 크게 이동합니다.

빌드 687

또한 시각화 모드에서 차트가 이동할 때 표시기 버퍼 의 기호는 매우 강력하고 가시적인 지연으로 해당 막대 뒤로 이동합니다.

 
R0MAN :

- 나는 변하지 않았다. 그는 모든 것을 하나씩 옮겼습니다.

결과가 일치하지 않습니다.

왜 항상 mqh를 키트에 착용하는지 이해가 되지 않습니다.

전체적으로. 코드를 수정했습니다. 2개의 클래스 추가

CSeries - 4개의 어레이와 4개의 버퍼를 제공하는 클래스 + INDICATOR_CALCULATION에 설정됨
CPair - 2개의 CSeries를 제공하는 클래스 - 빠르고 느림

음, USD / JPY / EUR / GBP + 시작 기능은 MT4에서와 같이 이전되었습니다.


결과를 MT4와 비교했습니다 - 일대일 - 완전히 일치합니다.

맥주와 함께 :)


첫 번째 또는 두 번째 옵션을 챔피언십에서 사용하고 싶습니다.

유익한 결과가 있습니까? 무엇을 도울 수 있습니까? 첫 번째 장소가 될 것입니다.

파일:
 

이것은 당신이 원래 하려고 했던 일종의 지표입니다.

파일:
 
sergeev :

1. 결과가 일치하지 않습니다.

왜 키트에 mqh를 항상 착용하는지 이해하지 못합니다.

전체적으로. 코드를 수정했습니다. 2개의 클래스 추가

CSeries - 4개의 어레이와 4개의 버퍼를 제공하는 클래스 + INDICATOR_CALCULATION에 설정됨
CPair - 두 개의 CSeries를 제공하는 클래스 - 빠르고 느림

음, USD / JPY / EUR / GBP + 시작 기능은 MT4에서와 같이 이전되었습니다.


2. MT4와의 결과 비교 - 일대일 - 완전히 일치합니다.

맥주와 함께 :)

3. 수익성 있는 결과가 있습니까? 무엇을 도울 수 있습니까? 첫 번째 장소가 될 것입니다.


1. 오! 진심으로 감사드립니다! 아직 보지 않았습니다. 그리고 그는 iCustom - 굴복?

5시에 올빼미가 없는 동안. 나는 아카이브에서 이 표시를 오랫동안 가지고 있었습니다.

2. MASD를 가진 외과의사 - 영감을 받았습니다! 그는 모든 신경 다중 스펙트럼 울트라 챔피언십 기간 동안 11 번의 트레이드로 코를 닦았습니다. :-)

그렇게 하는 것이 일반적입니다. 지금 당장, 그것이 iCustom에 굴복하는지 파악하고 신호를 올빼미에 붙이고 계속 진행하십시오 - 최적화!

3. 5에 부엉이가 없는데... 아이커스텀에 어울리나요? - 첫 번째, 두 번째, 세 번째 막대의 값이 필요합니다(두 가지 시장 진입 조건 인코딩: 제로 크로싱 및 (또는) 0 위/아래 변곡점).

4. "당신의 맥주" :-) + 개인에 썼습니다.

 
R0MAN :

3. 5에 올빼미가 없는데... 아이커스텀에 어울리나요? - 첫 번째, 두 번째, 세 번째 막대의 값이 필요합니다(두 가지 시장 진입 조건 인코딩: 제로 크로싱 및 (또는) 0 위/아래 변곡점).

모든 것이 iCustom에서 제공됩니다.
 
Rosh :
테스터에서 디버깅을 사용할 수 없습니다.
어떤 계획이 있습니까? 온라인 디버깅은 조건의 재현 불가능성으로 인해 거의 사용되지 않습니다.
 
테스터에서 실행한 후 열리는 차트 창에 칠면조가 자동으로 표시되도록 하는 방법을 알려주세요. 이전에는 이 작업을 수행하는 데 필요한 것이 없었습니다.
 
marketeer :
온라인 디버깅은 조건의 재현 불가능성으로 인해 거의 사용되지 않습니다.

그런 편지가 있습니다. 크고 뚱뚱합니다.

어떤 계획이 있습니까?

MetaQuotes가 테스터와 디버거를 교차시키려는 열정을 가지고 있지는 않을 것입니다. 이해할 수 있습니다. 문제는 전혀 곡선입니다.

여기에서 " 가상 서버 "에 대한 아이디어가 로밍됩니다. 이것은 특히 임의의 입력 데이터(임의의 속도로)를 허용하는 경우 현실에 더 가깝습니다. 그러나 그것은 또한 metaquotes에 대해 매우 성가신 옵션이기도 합니다(분명히 한 번에 여러 가지 이유로).

그러나 다른 방법도 가능합니다. 뭔가 세 번째. 디버거의 "마이크로 테스터"와 같습니다. 우리는 쌍을 설정하고 중단점을 설정하고 실행하고 짜잔. 디버거에서 실행합니다. 중단점에서 중지하고 "디버그 기간"이 끝날 때까지 "다음"을 실행하고 실행할 수 있습니다.

이 같은.

// 그러나 이것은 모두 내 추측입니다. 아마도 Stringo는 다른 것을 생각해 낼 것입니다.

하지만 해야 할 일이 있습니다. 그건 확실합니다.

 

MetaDriver :

여기에서 "가상 서버"에 대한 아이디어가 로밍됩니다. 이것은 특히 임의의 입력 데이터(임의의 속도로)를 허용하는 경우 현실에 더 가깝습니다. 그러나 그것은 또한 metaquotes에 대해 매우 성가신 옵션이기도 합니다(분명히 한 번에 여러 가지 이유로).

아, 디버깅 기능이 있는 테스터는 매우 현실적일 것 같지만, 이런 방향은 꿈도 꾸지 말아야 합니다.