오류, 버그, 질문 - 페이지 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 :
스왑 및 커미션 내역은 저장되지 않으며 이러한 설정은 마지막 연결에서 가져옵니다.
물론 그렇게 생각했습니다. 자주 바꾸지 않고/전혀 바꾸지 않고 충분히 섭취합시다.