기고글 토론 ""New Bar" 이벤트 핸들러" - 페이지 6

 

모두 좋은 하루, 좋은 기분!

이 코드가

bool IsNewBar()
  {
   static datetime TimeOld;
   datetime TimeNew[1];
   CopyTime(_Symbol,PERIOD_CURRENT,0,1,TimeNew);
   if(TimeNew[0]!=TimeOld)
     {
      TimeOld=TimeNew[0];
      return(true);
     }
   return(false);
  }

작동할까요? 오래 전에 MQL5 웹 사이트에서 찾았는데 누구에게서 복사했는지 기억이 나지 않습니다.

안부, 블라디미르

 
MrBrooklin #:

모두 좋은 하루 되세요!

이런 코드가 있는지 궁금합니다:

작동할까요? 오래 전에 MQL5 웹 사이트에서 찾았는데 누구에게서 복사했는지 기억이 나지 않습니다.

안부, 블라디미르

그건 그렇고, 나는 또한이 코드를 사용하고 꽤 잘 작동하지만 조금 더 넓고 모든 TF에 사용할 수 있습니다!

bool isNewBar(string INST,int K, ENUM_TIMEFRAMES timeFrame)
  {
//----
   bool res=false;               // 분석 결과 변수 
   int  i=0;                     // 배열 셀 번호 old_Times[] 
   datetime new_Time[1];         // 새 막대의 시간

   switch(K)
     {
      case 0:  i= 0; break;
      case 1:  i= 1; break;
      case 2:  i= 2; break;
      case 3:  i= 3; break;
      case 4:  i= 4; break;
      case 5:  i= 5; break;
      case 6: i= 6; break;
      case 7: i= 7; break;
      case 8: i= 8; break;
      case 9: i= 9; break;
      case 10: i=10; break;
      case 11:  i=11; break;
      case 12:  i=12; break;
      case 13:  i=13; break;
     }
   // 마지막 막대의 시간을 셀 new_Time[0]에 복사합니다. 
   int copied=CopyTime(INST,timeFrame,0,1,new_Time);
   
   if(copied>0) // 모두 완료. 데이터 복사 완료
      {
      if(old_Times[i]!=new_Time[0])       // 이전 막대 시간이 새 막대 시간과 같지 않은 경우
         {
         if(old_Times[i]!=0) res=true;    // 첫 번째 실행이 아닌 경우 true = 새 막대
         old_Times[i]=new_Time[0];        // 바의 시간 기억하기 
         }
      }      
//----
   return(res);
  }
 
switch(K)
     {
      case 0:  i= 0; break;
      case 1:  i= 1; break;
      case 2:  i= 2; break;
      case 3:  i= 3; break;
      case 4:  i= 4; break;
      case 5:  i= 5; break;
      case 6: i= 6; break;
      case 7: i= 7; break;
      case 8: i= 8; break;
      case 9: i= 9; break;
      case 10: i=10; break;
      case 11:  i=11; break;
      case 12:  i=12; break;
      case 13:  i=13; break;
     }

와우.)

 
Dmitry Fedoseev #:

와우.)

K에 누가 있죠? 다 본 것 같은데요.

배열 비교

나는 새로운 바에 실망했고, 거래의 우연이 없었고, 어떤 이유로 나에게 명확하지 않은 이유로 인쇄가 없거나, 즉 트리거링이나 시리즈 마지막 바 또는 시간 지연이 없으며, 핑이 높습니다 (140), 아마도 그 이유 일 수 있습니다.

나는 새로운 바의 많은 변형을 시도했고, 모든 곳에서 끊김이 있었고, 한 컴퓨터의 3 터미널에서 테스트했습니다.

나는 새로운 바를 제거했고 모든 터미널은 며칠 동안 서버에서 1 대 1 100 % 거래되었습니다.

 
Fast235 #:

K에 누가 있죠? 다 본 것 같은데요.

배열 비교

나는 새로운 바에 실망하고, 거래의 우연이 없으며, 내가 이해하지 못하는 이유로 인쇄물이 없으며, 즉 트리거링이나 시리즈 마지막 바 또는 시간 지연이 없으며, 핑이 높습니다 (140), 아마도 그 이유 일 수 있습니다.

K 매개 변수에서.

이 기능을 사용하면 주문에 오류가 발생할 경우 두 번째 시도가 없기 때문입니다.

 

그리고 거래는 OnTick이 아니라 OnChartEvent(스파이)에 의해 이루어지며 가능한 가장 빠른 구현에서 ID를 통해서만 나머지는 전송되지 않습니다.

7 개의 기호, 많은 수의 조건과 카운트에 대한 하나의 기호 통과, 미국 세션에서 0.5-0.7 % 라이젠 3700 배

지표에서 새로운 막대를 통해 새로운 막대를 시도하고, 또한 거래를 발산하고, 5 개의 정상, 그 다음 하나에서, 그리고 다른 말더듬이에서.

 
어쨌든 알고리즘은 마지막 막대를보고이 경우 거래가 취소되면 스프레드 및 "편차"제한 한도 내에서 아무데도 가지 않을 것이라는 이점도 있습니다.
 
Mihail Marchukajtes #:

그건 그렇고 예 저도이 코드를 사용하며 꽤 잘 작동하며 조금 더 넓을 뿐이며 모든 TF에 사용할 수 있습니다!

고마워요, 미하일, 내 함수 라이브러리에 추가하겠습니다.

안부, 블라디미르.

 
Armen Shahinyan #:


현재 막대의 시작 시간을 추적하고 각 틱마다 비교합니다.


코드에서 첫 번째 함수를 제거하세요. 그러면 삶이 더 나아질 것입니다.

 

일반적으로 두 가지 상황이 흥미롭습니다:

1. 모든 사람이 어떤 이유로 금지된 경우.

2. 새 막대는 항상 이전 막대와 시간이 다릅니다. 항상 왼쪽에서 오른쪽으로 이동하기 때문에 언제든지. 아무 때나 가져가세요. 동일한 이전 막대와 일치하지 않으면 막대가 새 막대입니다.