찻주전자의 질문 - 페이지 197

 
FiftyStars :

다음 막대, 즉 아직 형성되지 않은 막대 의 여는 시간 을 결정하는 방법은 무엇입니까?

일반적으로 - 어떤 식으로든; 30분에서 시작하는 시간대의 경우 정확한 예측 확률이 99.9%를 초과하지만
 

이와 같이 주문을 여는 요청을 반복할 수 있습니까? )

       while (result.retcode!= TRADE_RETCODE_DONE )
      {
         if ( OrderCheck (request,check))
        {
           OrderSend (request,result);
        }
         if (( MQL5InfoInteger ( MQL5_TESTING )|| MQL5InfoInteger ( MQL5_OPTIMIZATION ))) break ;
      }
 
G001 : 수 있습니까? )
탐탁지 않은. 예를 들어, TRADE_RETCODE_DONE 대신 서버가 주문이 접수되었다는 응답을 반환한다고 상상해보십시오. 그런 다음 코드는 동일한 유형의 요청으로 서버를 채웁니다.
 
Yedelkin :
탐탁지 않은. 예를 들어, TRADE_RETCODE_DONE 대신 서버가 주문이 접수되었다는 응답을 반환한다고 상상해보십시오. 그런 다음 코드는 동일한 유형의 요청으로 서버를 채웁니다.

이렇게 하면 더 좋겠죠?

       int ResBear = - 1 ;
       while (ResBear == - 1 )
      {
         if ( OrderCheck (request,check))
        {
          ResBear = OrderSend (request,result);
        }
         if (( MQL5InfoInteger ( MQL5_TESTING )|| MQL5InfoInteger ( MQL5_OPTIMIZATION ))) break ;
      }
 
G001 : 더 나을까요?

할 것 같지 않은. OrderSend () 함수에 대한 설명을 보십시오. 성공하면 반환 코드를 확인해야 한다고 나와 있어야 합니다. 따라서 가장 지루한 방법을 택해야 합니다. 즉, 반환 코드 목록을 가져와서 각 코드에 대한 프로그램의 동작을 생각해야 합니다. 저것들. " OrderSend()를 보냈고, 반환 코드를 받았고, 받은 retcode에 응답했습니다."

두 번째 순간. 이벤트 모델을 사용하는 것이 좋습니다. 저것들. 하나의 틱이 도착한 후 함수 실행을 반복하지 않고 종료하고 새 틱을 기다리려는 여러 번의 실패 시도 후에.

 
감사합니다. 정말 지루합니다. 시도 횟수를 더 잘 제한하겠습니다.
 
G001 : 고마워요, 정말 지루합니다. 시도 횟수를 더 잘 제한하겠습니다.

어쨌든 언젠가는 해야 할 일이겠죠. :) 제 경험담입니다.

 
확신합니다만, 지금까지는 지식이 충분하지 않습니다.
 

실례지만 테스터에는 존재하지 않지만 비주얼 모드에서는 테스터에 존재하도록 조건을 만드는 방법은 무엇입니까?

속성 목록 에서는 이를 허용하지 않지만 어떤 이유로 인해 이 조건이 작동하지 않습니다.

if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_TESTER)==1 && MQL5InfoInteger(MQL5_VISUAL_MODE)==1)

 
if ( MQL5InfoInteger (MQL5_TESTER)!= 1 || MQL5InfoInteger (MQL5_TESTER)== 1 && MQL5InfoInteger ( MQL5_VISUAL_MODE )== 1 )

이 조건에서 다음 세 가지 상황에서 수행됩니다.

1) 테스터가 작동 중일 때

2) 테스터가 작동하지 않을 때

3) 비주얼 테스터가 실행 중일 때

이런 식으로 함수는 항상 작동합니다. 아마도 두 번째 조건을 제거하고 첫 번째와 세 번째를 &&로 연결해야 할 것입니다.