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

 
Yedelkin :
글쎄, 당신의 코드를 직접보십시오. 그대로, if (timeOntrade.hour== 4 || timeOntrade.hour== 15 || timeOntrade.hour== 16 ) 조건은 완전히 쓸모가 없습니다. 어떤 결과를 반환하든 bool timeOntrade() 함수는 항상 true를 반환합니다.
논리적으로 들립니다. 그게 내가 관심있는거야. 불필요하고 불필요하게 쓴 것 같지만 필요한 것을 놓쳤을 수도 있습니다.
 
Interesting :

alph, Yedelkin이 이에 대해 이야기하고 있습니다.

우리가 이해하는 이러한 기능의 변형은 동일합니다.

이제 알겠습니다.
 
alph :
논리적으로 들립니다. 그게 내가 관심있는거야. 불필요하고 불필요하게 쓴 것 같지만 필요한 것을 놓쳤을 수도 있습니다.


나에게 아직 명확하지 않은 또 다른 점

    timeOntrade.hour= 0 ;
   timeOntrade.min = 0 ;
   timeOntrade.sec = 1 ;
   if (timeOntrade.hour== 4 || timeOntrade.hour== 15 || timeOntrade.hour== 16 ) return ( true );

저것들. 내가 모든 것을 올바르게 이해했다면 먼저 시계에 0을 할당한 다음 비교합니다.

논리는 어디에 있습니까?
 
Interesting :


나에게 아직 명확하지 않은 또 다른 점

저것들. 내가 모든 것을 올바르게 이해했다면 먼저 시계에 0을 할당한 다음 비교합니다.

논리는 어디에 있습니까?
아직 true로 줄을 제거하지 않았지만 제거하면 ontik의 특정 값이나 매개 변수로 시계와 비교할 수 없을 것 같습니다.
 
alph :
아직 true로 줄을 제거하지 않았지만 제거하면 ontik의 특정 값이나 매개 변수로 시계와 비교할 수 없을 것 같습니다.

현재 이러한 옵션은 제 생각에 동일합니다.

 bool timeOntrade( int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer (timeOntrade);
   if (timeOntrade.hour!=TradeHour) return ( false );
   timeOntrade.hour= 0 ;
   timeOntrade.min = 0 ;
   timeOntrade.sec = 1 ;
   if (timeOntrade.hour== 4 || timeOntrade.hour== 15 || timeOntrade.hour== 16 ) return ( true );
   return ( true );
   }

bool timeOntrade( int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer (timeOntrade);
   if (timeOntrade.hour!=TradeHour) return ( false );
   return ( true );
   }

값을 할당해야 하는 이유를 정말로 이해하지 못합니까?

저것들. 내가 이해하는 한 가장 실행 가능한 옵션은

 bool timeOntrade( int TradeHour)
   {
   MqlDateTime timetrade;
   TimeTradeServer (timetrade);
   if (timetrade.hour!=TradeHour) return ( false );
   return ( true );
   }
이 경우 서버의 현재 시간 (시간에 대해서만 이야기하고 있음)이 지정된 시간과 같지 않으면 false가 반환되고, 그렇지 않으면 true가 반환됩니다.
 
Interesting :

이러한 옵션은 현재 동일합니다.

값을 할당해야 하는 이유를 정말로 이해하지 못합니까?

이것을 쓰려면:

무효 OnTick()

{...

//------------------------------------------------ ------------------------------------------+

//Open으로의 전환 근거

MqlRates rt[1];

if(CopyRates(Symbol(),MyTframe,0,1,rt)<0) 반환;

if(rt[0].tick_volume>1) 반환;

if(!PositionSelect(_Symbol) && (timeOntrade(4) || ((timeOntrade(15) || timeOntrade(16))&& timeOntrade2(0)))) Open(); // 포지션 개방 으로 전환

timeOntrade.min = 0 ;

이 맥락에서 그것은 확실히 불필요합니다.


   timeOntrade.min = 0 ;
   timeOntrade.sec = 1 ;
 

alph :

이것을 쓰려면:

무효 OnTick()

이 옵션을 시도하십시오. 그렇지 않다면 당신이 얻고자 하는 것을 이해하지 못합니다...

 bool timeOntrade( int TradeHour)
   {
   MqlDateTime timetrade;
   TimeTradeServer (timetrade);
   if (timetrade.hour!=TradeHour) return ( false );
   return ( true );
   }
 
Interesting :

이 옵션을 시도하십시오. 그렇지 않다면 당신이 얻고자 하는 것을 이해하지 못합니다...

예, 예, 하지만 다음에서:

  bool  timeOntrade2( int  TradeMin)  
   {
   MqlDateTime timetrade2;
   TimeTradeServer (timetrade);
   if (timetrade.min!=TradeMin) return ( false );
   return ( true );
   }
 
alph :

예, 예, 하지만 다음에서:

그런 다음 이미 그렇습니다(충실도를 위해). 그러나 원칙적으로 당신은 나를 올바르게 이해했습니다.

 bool timeOntrade2( int TradeMin)  
   {
   MqlDateTime timetrade;
   TimeTradeServer (timetrade);
   if (timetrade.min!=TradeMin) return ( false );
   return ( true );
   }
 
Interesting :

그런 다음 이미 그렇습니다(충실도를 위해). 그러나 원칙적으로 당신은 나를 올바르게 이해했습니다.

고맙습니다! 나머지 코드가 맞습니까?