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

 
aharata :
도움말에서 BarsCalculated에 대해 읽어보십시오. 그런데 필요한 예가 즉시 제공됩니다.

이것들을 사용해 봅시다. 고맙습니다!
 
Im_hungry :

즉, CopyBuffer>0 동안 계산하고 새 매개변수(Close())

포지션이 닫힐 때 나타납니다. 즉, While을 반복해야 합니다. 이렇게 나옵니다.

" CopyBuffer <0인 동안 이 함수에 대한 호출을 반복합니다."

While (vhandle> 0 ) 줄은 특별한 부하를 전달하지 않는 것 같습니다. 첫 번째 CopyBuffer<0의 경우 반환 ( 0 );

나는 이 방향으로 일할 것이다:

 if (! PositionSelect (Symbol1) && ! PositionSelect (Symbol2))
  {
   for ( uchar u= 0 ;u< 100 ;u++)  //запускаем цикл с ограниченным количеством шагов
    {
     if ( CopyBuffer (vhandle, 0 , 0 , 50 ,Sp1Buffer) && CopyBuffer (vhandle, 1 , 0 , 50 ,Sp2Buffer))
      {
       return ( true );  //дождались копирования буферов - выходим
      }
     else
      {
       if (u== 99 ) //т.е. выявляем последний шаг нашего цикла for, который не принёс ожидаемых результатов
         {
           Alert ( "Ошибка копирования буферов индикатора номер ошибки:" , GetLastError ());
           return ( 0 );
         }
       Sleep ( 50 );  //засыпаем ненадолго (хотя я сам не сторонник использования Sleep в теле OnTick)
      }
    }
  }

일반적으로 작성자의 재량에 따라 이와 같은 것입니다. 올바르게 언급했듯이 참고서는 아프지 않을 것입니다.

 
aharata :
도움말에서 BarsCalculated에 대해 읽어보십시오. 그런데 필요한 예가 즉시 제공됩니다.

내가 한 방향에 감사드립니다. 작동합니다. 잼이없는 것 같습니다 (1 개월 테스트)

다음은 첫 번째 쌍의 작업 코드입니다.

 void OnTick ()
{ 
   if (isNewBar()== true && proverkaHANDLA()== true )
     {
       if (! PositionSelect (Symbol1))
         {
          BSOpen();
         }
     }    
}
//+==================================================================+
bool proverkaHANDLA()
{
   ArraySetAsSeries (Sp1Buffer, true );
   ArraySetAsSeries (Sp2Buffer, true );
  vhandle= iCustom ( NULL , 0 , "МТ5" ,Symbol1, 100 ,Lots, 1 ,Close());
   ResetLastError ();
   int copied0= CopyBuffer (vhandle, 0 , 0 , 50 ,Sp1Buffer);
   int copied1= CopyBuffer (vhandle, 1 , 0 , 50 ,Sp2Buffer);
   if (copied0<= 0 || copied1<= 0 )
     {
       Sleep ( 50 );
       for ( int i= 0 ;i< 100 ;i++)
        {
         if ( BarsCalculated (vhandle)> 0 )
         break ;
         Sleep ( 50 );
        }
      copied0= CopyBuffer (vhandle, 0 , 0 , 50 ,Sp1Buffer);
      copied1= CopyBuffer (vhandle, 1 , 0 , 50 ,Sp2Buffer);
       if (copied0<= 0 || copied1<= 0 )
        {
         Print ( "Не удалось скопировать Буфера индюков :-)" , GetLastError (),
         "copied0" ,copied0, "copied1=" ,copied1);
         return ( false ); 
        }
       Print ( "Удалось скопировать Буфера :-)copied0" ,copied0, "copied1=" ,copied1);
       return ( true );
     }
   Print ( "Удалось скопировать Буфера. Sp1Buffer=" , ArraySize (Sp1Buffer),
         "Sp2Buffer=" , ArraySize (Sp2Buffer));
   return ( true );
}
 
Yedelkin :

나는 이렇게 말하고 싶다: "CopyBuffer<0 동안, 우리는 이 함수에 대한 호출을 반복한다."

While (vhandle> 0 ) 줄은 특별한 부하를 전달하지 않는 것 같습니다. 첫 번째 CopyBuffer<0의 경우 반환 ( 0 );

나는 이 방향으로 일할 것이다:

일반적으로 작성자의 재량에 따라 이와 같은 것입니다. 올바르게 언급했듯이 참조 도서는 손상되지 않습니다.

훨씬 더 쉽습니다. 이 두 가지 접근 방식 중 어느 것이 더 좋고 더 빠른지 봅시다.

모두 감사합니다! 시험에 갔다.

[삭제]  
개발자는 요청 #33601에 주의하십시오(다른 운영 체제에서 거래 레버리지에 대한 "훌륭한 기능"이 있음) ...
 
Interesting :
개발자는 요청 #33601에 주의하십시오(다른 운영 체제에서 거래 레버리지에 대한 "훌륭한 기능"이 있음) ...

원래 다른 브로커에서 설치 한 터미널을 사용하고 있습니까? 지원서에 세부정보를 추가하세요.
[삭제]  
Rosh :
원래 다른 브로커에서 설치 한 터미널을 사용하고 있습니까? 지원서에 세부정보를 추가하세요.
나는 터미널과 내가 궁극적으로 얻을 필요가 있는 것에 대해 명확히 했습니다.
[삭제]  

개발자에게 질문합니다.

스프레드로 모든 것이 명확하고 막대에 저장되며 테스터는 변화하는 스프레드를 고려하여 전체 히스토리를 실행할 수 있습니다(히스토리가 정상적으로 로드되는 경우). 그러나 스왑은 어떻습니까?

저것들. DC/브로커가 예를 선택하고 스왑 또는 커미션의 크기를 변경하면 어떻게 됩니까?

좀 터무니없다는 건 알지만, 그래도.

내가 올바르게 이해한다면 이제 테스터는 MT4에서와 같이 후자가 스왑과 커미션을 가져갈 것입니다....

추신

다시 한 번, 이제 스크린샷과 함께 ....

 
Interesting :

개발자에게 질문합니다.

스프레드로 모든 것이 명확하고 막대에 저장되며 테스터는 변화하는 스프레드를 고려하여 전체 히스토리를 실행할 수 있습니다(히스토리가 정상적으로 로드되는 경우). 그러나 스왑은 어떻습니까?

저것들. DC/브로커가 예를 선택하고 스왑 또는 커미션의 크기를 변경하면 어떻게 됩니까?

스왑 및 커미션 내역은 저장되지 않으며 이러한 설정은 마지막 연결에서 가져옵니다.
[삭제]  
Rosh :
스왑 및 커미션 내역은 저장되지 않으며 이러한 설정은 마지막 연결에서 가져옵니다.
물론 그렇게 생각했습니다. 자주 바꾸지 않고/전혀 바꾸지 않고 충분히 섭취합시다.