OrderSend() 함수에 버그가 있습니까? - 페이지 5

 
Sepulca :

정적 작동 100%. 다음은 귀하를 위한 테스트입니다.

결과:


글쎄, 모든 것이 이전과 같은 방식으로 작동합니다 ... 변경 사항 없음! 새 막대 를 여는 기능도 있습니다.

 bool isNewBar()
   {
       static datetime lastBar;                                   // Задаём переменную для времени открытия последнего бара
       datetime currBar;                                                   // Задаём переменную для времени открытия текущего бара
      currBar = iTime( Symbol (), PERIOD_M1 , 0 );           // Находим время открытия текущего бара
       if (lastBar!=currBar)                                               // Если время открытия последнего бара не равно времени открытия текущего бара, то...
         {
            lastBar=currBar;
             return ( true );
         }
       return ( false );
   }

또한 잘 작동합니다. 따라서 내 코드에 대한 nit-picking은 이미 비합리적으로 진행되었습니다. 그리고 그 질문은 일반적으로 맞았습니다. 분명히 테스터는 버그가 있어서 판독값이 곡선입니다. M5 에서는 어쩐지 더 깨끗하고 M15 에서도 H1 은 이미 어딘지 모르게 깨끗해졌습니다.

 
hoz :


글쎄, 모든 것이 이전과 같은 방식으로 작동합니다 ... 변경 사항 없음! 새 막대를 여는 기능도 있습니다.

또한 잘 작동합니다. 따라서 내 코드에 대한 nit-picking은 이미 비합리적입니다. 그리고 그 질문은 일반적으로 맞았습니다. 분명히 테스터는 버그가 있어서 판독값이 곡선입니다. M5 에서는 어쩐지 더 깨끗하고 M15 에서도 H1 은 이미 어딘지 모르게 깨끗해졌습니다.


당장이라도 if(lastBar<currBar) 를 작성하는 것이 좋습니다만 이것이 아무 것도 변경하지 않을 것입니다. 나는 당신의 게시물을 살펴보고 내가 더 말할 수 있는지 확인하겠습니다.
 
hoz :


글쎄, 모든 것이 이전과 같은 방식으로 작동합니다 ... 변경 사항 없음! 새 막대를 여는 기능도 있습니다.

또한 잘 작동합니다. 따라서 내 코드에 대한 nit-picking은 이미 비합리적입니다. 그리고 그 질문은 일반적으로 맞았습니다. 분명히 테스터는 버그가 있어서 판독값이 곡선입니다. M5 에서는 어쩐지 더 깨끗하고 M15 에서도 H1 은 이미 어딘지 모르게 깨끗해졌습니다.



도움이 될 수 있습니다. start() 함수가 약간 재작업되었습니다. 충분히 깊지 않았지만 여전히:

 int start()
{
   fastMa = iMA ( NULL ,i_TF,i_fastMaPeriod, 0 , MODE_EMA ,MODE_CLOSE, 1 );
   slowMa = iMA ( NULL ,i_TF,i_slowMaPeriod, 0 , MODE_EMA ,MODE_CLOSE, 1 );
   
 /*  Print("Bid = ", Bid);
   Print("Ask = ", Ask);
   Print("fastMa = ", fastMa);
   Print("i_thresholdFromMa * pt = ", i_thresholdFromMa * pt);
   */
// Отслеживание открытия нового бара
   static datetime lastBarTime = iTime( NULL , 0 , 1 ));     // Время проведения последних рассчётов, изначально принимаем предыдущий бар
   
   if (lastBarTime < iTime( NULL , 0 , 0 ))         // Если случился новый бар
 // Рассчёт сигнала 
    {
     if ( "На этом баре случилось что-то, что вынуждает ждать следуещего бара" )
      {
       .......... // Выполняем действия открытия/закрытия или что-то там ещё...
       lastBarTime = iTime( NULL , 0 , 0 );               // На текущем баре все необходимые действия выполнены, ждём следуещего бара..
      }
     else
      {
       "Ничего не случилось, ждем до следуещего тика"
      }
    }
                                       // .. успешно выполнены
   return ( 0 );
}
 
Sepulca :



도움이 될 수 있습니다. start() 함수가 약간 재작업되었습니다. 충분히 깊지 않았지만 여전히:


자, 여기서 계산 시간은 이전 막대에서 가져옵니다. 이것은 어떻게 보면 논리적이지 않습니다. 현재 막대가 필요합니다.
 
PapaYozh :

개인적으로, 나는 작동하지 않는 정적을 만난 적이 없습니다.

다음은 차트에서 확인하려는 경우 Expert Advisor의 예입니다.

1. 전문가 고문을 시작합니다.

2. TF를 변경합니다.

3. cc가 20으로 돌아가지 않는지 확인하십시오.

 
hoz :


글쎄, 모든 것이 이전과 같은 방식으로 작동합니다 ... 변경 사항 없음! 새 막대를 여는 기능도 있습니다.

또한 잘 작동합니다. 따라서 내 코드에 대한 nit-picking은 이미 비합리적으로 진행되었습니다. 그리고 그 질문은 일반적으로 맞았습니다. 분명히 테스터는 버그가 있어서 판독값이 곡선입니다. M5 에서는 어쩐지 더 깨끗하고 M15 에서도 H1 은 이미 어딘지 모르게 깨끗해졌습니다.

귀하의 상황과 관련하여:

한 번 초기화된 시간 - EA가 런칭되면 다시 초기화되지 않으므로 M1에서 D1으로 전환 시 차트가 업데이트 될 때까지 하루 정도 기다려야 합니다. :(

 
tara :

귀하의 상황과 관련하여:

한 번 초기화된 시간 - EA가 런칭되면 다시 초기화되지 않으므로 M1에서 D1으로 전환 시 차트가 업데이트 될 때까지 하루 정도 기다려야 합니다. :(



그런 다음 Expert Advisor는 특정 TF에서 작업합니다. 갑자기 전환해야 하는 이유는 무엇입니까?
 
tara :

3. ss가 20으로 돌아가지 않는지 확인합니다.

이것은 Expert Advisors의 문서화된 기능입니다.
 
TheXpert :
이것은 Expert Advisors의 문서화된 기능입니다.


그렇다면 정적이란 무엇입니까? 더 파탈릭같은데..


그건 그렇고, 어디에 문서화되어 있습니까?

 
hoz :

그런 다음 Expert Advisor는 특정 TF에서 작업합니다. 갑자기 전환해야 하는 이유는 무엇입니까?

매개변수를 변경할 수 있습니다. 반응은 세트 TF에서 새 막대 의 첫 번째 틱 이후에만 나타납니다.

예, 당신 자신이 당혹스러웠습니다. 더 높은 기간에 대한 고문의 작업이 설명할 수 없는 이유는 무엇입니까?