[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 174

 
tpg_k156 :
좋은 하루 되세요. Metatrader 4에서 거래를 복사하는 방법을 알려주실 수 있습니까? 한 터미널에서 거래를 열면 다른 터미널에서 열린 거래를 얻을 수 있습니다.

CodeBase 에서 복사기를 검색하십시오. 물론 최고는 아니지만 자유롭게 사용할 수 있습니다.
 
Hour(), Minute() 및 Seconds() 전역 변수 를 만들어 자정(0.00)에 EA의 새 PP 수준 및 기타 행에 대한 DailyPivotPoints 표시기의 변경을 제어할 수 있는지 누가 알겠습니까? 나는 Hour(), Minute(), Seconds()를 사용하여 표시기에서 바로 수행했는데 매일 밤 컴파일하지 않고도 작동했습니다. 그리고 최근에 빌드 변경에서 자체 변경을 중지 했습니까? 고맙습니다!
 
borilunad :
Hour(), Minute() 및 Seconds() 전역 변수를 만들어 자정(0.00)에 EA의 새 PP 수준 및 기타 행에 대한 DailyPivotPoints 표시기의 변경을 제어할 수 있는지 누가 알겠습니까? 나는 Hour(), Minute(), Seconds()를 사용하여 표시기에서 바로 수행했는데 매일 밤 컴파일하지 않고도 작동했습니다. 그리고 최근에 빌드 변경에서 자체 변경을 중지 했습니까? 고맙습니다!

새로운 날의 첫 번째 틱에 트리거되어야 합니다.
 
borilunad :

빅터 감사합니다! 제 짧은 버전이 마음에 드셨나요?


네, 보리스 , 그런데 아주, 나타났습니다! 고맙습니다. 그게 내가 원했던거야. 트위스트 .. spun .. 하지만 그것을 보기 위해 트위스트 하지 않았다. 아직 경험이 많지 않고 뇌도 프로처럼 생각하지 않는다. 갑자기 뭉툭한 뭉치가 있습니다 .. :(

바로 묻고 싶지는 않았지만 물어볼 수밖에 없었다. 왜냐하면 그것은 바로 컷에서 작동하지 않았습니다.

 
프랙탈을 통과하는 채널을 만드는 방법을 알려주십시오. 그러나 0 bar로 제한되어 있습니다. 새로운 막대 가 나타나면 더 다시 그렸습니다. 문제는 한계에 있습니다.
 
beginner :
프랙탈을 통과하는 채널을 만드는 방법을 알려주십시오. 그러나 0 bar로 제한되어 있습니다. 새 막대가 나타나면 더 다시 그려집니다. 문제는 한계에 있습니다.

"0 bar로 제한"의 개념 확장
 

기능은 다음과 같습니다.

 bool IsUpFractal( int index)
{
   double centerHigh = High[index + g_center];     // За точку отсчета берется средний..
                                                   // ..бар на участке из i_fractalPeriod
                                                   // ..баров
// - 1 - == Поиск максимумов справа от центрального бара ================================
   int cnt = 0 , i = index + g_center - 1 ;
   for (; i >= 0 && cnt < g_center; i--)           // Справа от центрального бара должно
   {                                               // ..быть g_center-1 баров с низшим..
       if (centerHigh <= High[i])                   // ..максимумом. Не позволяется..
         return ( false );                           // ..наличие баров с большим или..
      cnt++;                                       // ..равным максимумом.
   }
   
   if (i < 0 )                                       // g_center-1 низших максимумов не..
       return ( false );                               // ..найдено. Фрактала нет
// - 1 - == Окончание блока =============================================================

// - 2 - == Поиск максимумов слева от центрального бара =================================
   cnt = 0 ;
   i = index + g_center + 1 ;
   int total = Bars - 1 ;
   for (; i < total && cnt < g_center; i++)         // Слева от центрального бара должно
   {                                               // ..быть g_center-1 баров с низшим..
       if (centerHigh == High[i])                   // ..максимумом. Не позволяется..
         continue ;                                 // ..наличие баров с большим..
       if (centerHigh < High[i])                     // ..максимумом. Равный - позволяется
         return ( false );
      cnt++;                                    
   }
   
   if (i >= total)                                 // g_center-1 низших максимумов не..
       return ( false );                               // ..найдено. Фрактала нет
// - 2 - == Окончание блока =============================================================
                                                   
   return ( true );                                   // Фрактал найден                 
}
//+-------------------------------------------------------------------------------------+
//| Определение наличия нижнего фрактала на указанном баре                              |
//+-------------------------------------------------------------------------------------+
bool IsDnFractal( int index)
{
   double centerLow = Low[index + g_center];       // За точку отсчета берется средний..
                                                   // ..бар на участке из i_fractalPeriod
                                                   // ..баров
// - 1 - == Поиск минимумов справа от центрального бара =================================
   int cnt = 0 , i = index + g_center - 1 ;
   for (; i >= 0 && cnt < g_center; i--)           // Справа от центрального бара должно
   {                                               // ..быть g_center-1 баров с большим..
       if (centerLow >= Low[i])                     // ..минимумом. Не позволяется..
         return ( false );                           // ..наличие баров с меньшим или..
      cnt++;                                       // .. равным минимумом
   }
   
   if (i < 0 )                                       // g_center-1 больших минимумов не..
       return ( false );                               // ..найдено. Фрактала нет
// - 1 - == Окончание блока =============================================================

// - 2 - == Поиск минимумов слева от центрального бара ==================================
   cnt = 0 ;
   i = index + g_center + 1 ;
   int total = Bars - 1 ;
   for (; i < total && cnt < g_center; i++)         // Слева от центрального бара должно
   {                                               // ..быть g_center-1 баров с большим..
       if (centerLow == Low[i])                     // ..минимумом. Не позволяется..
         continue ;                                 // ..наличие баров с меньшим минимумом
       if (centerLow > Low[i])                       // ..Равный минимум - разрешается
         return ( false );
      cnt++;   
   }
   
   if (i >= total)                                 // g_center-1 больших минимумов не..
       return ( false );                               // ..найдено. Фрактала нет
// - 2 - == Окончание блока =============================================================
                                                   
   return ( true );                                   // Фрактал найден                 
}

함수는 계산 0 또는 1에 대한 막대 값을 갖는 인덱스 값을 수신합니다. 루프는 흥미로운 방식으로 작성됩니다.

 for (; i >= 0 && cnt < g_center; i--)

저것들. 계산을 시작할 변수 값이 없습니다. 기계의 논리에 따르면 이 경우 계산이 시작되는 막대는 무엇입니까? 감소가 있는 경우 i-- 는 최대값에서 의미합니까?

다시, i = index + g_center - 1 이 있습니다. 하지만 여기에 순간이 있습니다. 여기서 index첫 번째 값은 무엇입니까 ? 최대 또는 최소?

 
hoz :

저것들. 계산을 시작할 변수 값이 없습니다. 기계의 논리에 따르면 이 경우 계산이 시작되는 막대는 무엇입니까? 감소가 있는 경우 i-- 는 최대값에서 의미합니까?


아니요, 루프 전에 내가 가진 하나의 변수에서. 녹음

   int cnt = 0 , i = index + g_center - 1 ;
   for (; i >= 0 && cnt < g_center; i--)

동일한

   int cnt,i;
   for (cnt = 0 , i = index + g_center - 1 ; i >= 0 && cnt < g_center; i--)
 
다시 말해서, for 루프의 첫 번째 표현식은 그 자리와 루프 전에 모두 쓸 수 있으며, 결과는 이것에서 변경되지 않습니다.
 
hoz :

다시, i = index + g_center - 1이 있고 여기가 그 순간입니다. 여기서 index첫 번째 값은 무엇입니까 ? 최대 또는 최소?


index는 매개변수로 함수에 전달된 것입니다.