공개 거래 확인 문제 - 페이지 3

 
extern int      iOpenHour                = 6 ;

int start()
  {
                                                            
int b, scannedhour;
datetime bartime;
double dibsclose, dibsopen, prevdayrange[ 4 ];       //  prevdayrange Array Categorys ( 1  EURUSD, 2 GBPUSD, 3 USDCHF, 4 USDJPY )

//----------------------------------------------------------------------------------------------
//        EURUSD PREV DAY RANGE CALC

for (b= 0 ; b<= 24 ; b++)                               // scans the last 24 bars on eurusd
   {
      bartime = iTime ( "EURUSD" , 60 , b);               // checks the open time of each bar
      scannedhour = TimeHour (bartime);                 // extracts the hour of that bar
    
       if ( scannedhour == iOpenHour )                     // Check to see if scanned hour = Dibs hour
         {
            dibsclose    = iOpen ( "EURUSD" , 60 , b);     // Get the open value of that bar (Close of 6gmt day) 
            dibsopen     = iOpen ( "EURUSD" , 60 , b+ 24 ); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
            prevdayrange[ 1 ] = (dibsclose-dibsopen);   // Calculate the range of the Dibs day
         }                                                   // End of if statement
    }                                                       // End of for statement
    

//----------------------------------------------------------------------------------------------
//        GBPUSD PREV DAY RANGE CALC

for (b= 0 ; b<= 24 ; b++)                               // scans the last 24 bars on eurusd
   {
      bartime = iTime ( "GBPUSD" , 60 , b);               // checks the open time of each bar
      scannedhour = TimeHour (bartime);                 // extracts the hour of that bar
    
       if ( scannedhour == iOpenHour )                     // Check to see if scanned hour = Dibs hour
         {
            dibsclose    = iOpen ( "GBPUSD" , 60 , b);     // Get the open value of that bar (Close of 6gmt day) 
            dibsopen    = iOpen ( "GBPUSD" , 60 , b+ 24 ); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
            prevdayrange[ 2 ] = (dibsclose-dibsopen);   // Calculate the range of the Dibs day
         }                                                   // End of if statement
    }                                                       // End of for statement



//----------------------------------------------------------------------------------------------
//        USDCHF PREV DAY RANGE CALC

for (b= 0 ; b<= 24 ; b++)                               // scans the last 24 bars on eurusd
   {
      bartime = iTime ( "EURUSD" , 60 , b);               // checks the open time of each bar
      scannedhour = TimeHour (bartime);                 // extracts the hour of that bar
    
       if ( scannedhour == iOpenHour )                     // Check to see if scanned hour = Dibs hour
         {
            dibsclose    = iOpen ( "USDCHF" , 60 , b);     // Get the open value of that bar (Close of 6gmt day) 
            dibsopen     = iOpen ( "USDCHF" , 60 , b+ 24 ); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
            prevdayrange[ 3 ] = (dibsclose-dibsopen);   // Calculate the range of the Dibs day
         }                                                   // End of if statement
    }                                                       // End of for statement



//----------------------------------------------------------------------------------------------
//        USDJPY PREV DAY RANGE CALC

for (b= 0 ; b<= 24 ; b++)                               // scans the last 24 bars on eurusd
   {
      bartime = iTime ( "USDJPY" , 60 , b);               // checks the open time of each bar
      scannedhour = TimeHour (bartime);                 // extracts the hour of that bar
    
       if ( scannedhour == iOpenHour )                     // Check to see if scanned hour = Dibs hour
         {
            dibsclose    = iOpen ( "USDJPY" , 60 , b);     // Get the open value of that bar (Close of 6gmt day) 
            dibsopen     = iOpen ( "USDJPY" , 60 , b+ 24 ); // Get the value of the bar 24 bars before the Dibs bar (Open of 6gmt day)
            prevdayrange[ 4 ] = (dibsclose-dibsopen);   // Calculate the range of the Dibs day
         }                                                   // End of if statement
    }                                                       // End of for statement


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



Comment ( "EURUSD RANGE=" , prevdayrange[ 1 ],         //Display Ranges of each pair
         "GBPUSD RANGE=" , prevdayrange[ 2 ],
         "USDCHF RANGE=" , prevdayrange[ 3 ],
         "USDJPY RANGE=" , prevdayrange[ 4 ]);      


   return ( 0 );
  }

좋아, 그래서 prevdayrange가 유일한 배열이 되도록 수정했습니다. 이제 어떤 이유로 코드의 USDJPY 섹션이 작동하지 않습니다. iopen에서 쌍이 변경되고 올바른 배열 값이 있는 다른 4개 명령문과 동일합니다.

이것이 하는 일입니다 ---> http://clip2net.com/s/13WDY

주석 기능 에 공백을 어떻게 넣고 다음 줄에 인쇄하도록 할 수 있습니까?

 
dazamate :

좋아, 그래서 prevdayrange가 유일한 배열이 되도록 수정했습니다. 이제 어떤 이유로 코드의 USDJPY 섹션이 작동하지 않습니다. iopen에서 쌍이 변경되고 올바른 배열 값이 있는 다른 4개 명령문과 동일합니다.

이것이 하는 일입니다 ---> http://clip2net.com/s/13WDY

주석 기능에 공백을 어떻게 넣고 다음 줄에 인쇄하도록 할 수 있습니까?


배열의 첫 번째 요소는 0이고, 배열에 4개의 요소가 있으면 마지막 요소는 4가 아닌 3이 됩니다. ;-) https://docs.mql4.com/basis/variables

논평()

 Comment ( "This adds some spaces " , "   " , "this adds a carriage return" , "\n" );
 

좋습니다. 이 코드는 새로운 6:00 촛불이 열릴 때를 제외하고는 의미하는 바를 거의 수행하고 있습니다. 정보를 업데이트하지 않습니다. 현재 양초가 6:00 양초인 경우 열린 막대를 스캔하고 24개의 막대로 돌아가서 열린 막대를 스캔하고 모든 계산을 수행하고 현재 막대가 6:00 막대가 아닌 경우 계속 뒤로 마지막 6:00 촛불을 찾을 때까지 바. 한발짝 물러서는 것 같지만 현재 촛불이 6시라면 마음에 들지 않는 것 같다. 해결할 수 없습니다. 전설이 문제를 발견할 수 있습니까?


여기에 게시하기에는 코드가 너무 광범위해져서 소스 코드를 업로드해야 했습니다.

파일:
hothand.mq4  11 kb
 
dazamate :

한발짝 물러서는 것 같지만 현재 촛불이 6시라면 마음에 들지 않는 것 같다. 해결할 수 없습니다. 전설이 문제를 발견할 수 있습니까?


전략 테스터를 사용하고 있습니까? 만약 그랬다면 . . .

WH로더 2011.07.18 18:30

테스터 제한 : 다른 시간대 또는 쌍에 대한 테스터에서 바 제로 데이터를 가져올 수 없습니다. 노력하다:

 

아니 랩터 이거 라이브 차트에 있었는데 바꿔야 하나


 for (b= 0 ; b<= 24 ; b++) to for (b= -1 ; b<= 24 ; b++)
큰 소리로 생각하는 것만으로는 문제가 해결될지 확신이 서지 않습니다.
 
dazamate :

아니 랩터 이거 라이브 차트에 있었는데 바꿔야 하나


큰 소리로 생각하는 것만으로는 문제가 해결될지 확신이 서지 않습니다.
아, 알겠습니다. 귀하의 코드를 다시 살펴보겠습니다. . .
 
명백한 것을 볼 수 없기 때문에 다음 시간 변경 시 코드를 테스트하겠습니다. . . 서버 시간으로 오전 6시에 확인 하고 있었습니까? 로컬 PC 시간이 반드시 서버 시간과 같은 시간은 아니며, 서버 시간은 코드와 차트에서 사용되는 시간입니다.
 

모든 것이 잘 작동하는 것 같지만 의미가 있는 경우 현재 막대 뒤에 있지 않는 한 6:00 막대를 선택하지 않습니다.


시간 내주셔서 감사합니다

 
dazamate :

모든 것이 잘 작동하는 것 같지만 의미가 있는 경우 현재 막대 뒤에 있지 않는 한 6:00 막대를 선택하지 않습니다.


시간 내주셔서 감사합니다

예, 나는 당신이 말하는 것을 이해한다고 생각합니다. 시간이 05:59에서 06:00으로 변경되면 업데이트되지 않습니다. . .

테스트를 위해 MBT를 사용하고 있으며 현재 H1 막대의 서버 시간 이 04:00이므로 iOpenHour를 5로 설정했습니다. 20분 후에 어떻게 되는지 보겠습니다.

 

알겠습니다. 동일한 문제가 있습니다. 현재 촛불이 05:00에 열렸을 때 업데이트가 없습니다. . . . 흥미로운.