[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 98

 

김에는 다음과 같은 기능이 있습니다.

 //+------------------------------------------------------------------+
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
bool isTradeTimeInt( int hb= 0 , int mb= 0 , int he= 0 , int me= 0 ) {
   datetime db, de;           // Время начала и окончания работы
   int       hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr( TimeCurrent (), TIME_DATE)+ " " +hb+ ":" +mb);
  de=StrToTime(TimeToStr( TimeCurrent (), TIME_DATE)+ " " +he+ ":" +me);
  hc=TimeHour( TimeCurrent ());
   if (db>=de) {
     if (hc>=he) de+= 24 * 60 * 60 ; else db-= 24 * 60 * 60 ;
  }

   if ( TimeCurrent ()>=db && TimeCurrent ()<=de) return (True);
   else return (False);
} 

2가지 질문이 있습니다.

1. 시간을 한 번에 문자열로 변환한 다음 문자열을 시간으로 변환하는 이유는 무엇입니까?

2. 함수에 이 조건이 있는 이유는 무엇입니까?

   if (db>=de) {
     if (hc>=he) de+= 24 * 60 * 60 ; else db-= 24 * 60 * 60 ;
  }

결국, 시간 확인은 아래에 있습니다 .. 여기:

 if ( TimeCurrent ()>=db && TimeCurrent ()<=de) return (True);
   else return (False);

예, 그리고 함수 매개변수에서 시간 변수는 날짜/시간 유형이 아니지만 어떤 이유로 int ...

 
하, 진실에 도달했습니다. 사실은 내가 편집 중이던 파일이 어제 플래시 드라이브에서 열렸습니다. 텍스트가 열려 있고 모든 것이 정상이지만 오늘 플래시 드라이브를 연결하지 않았습니다. 여기 ME4가 있고 이해할 수 없습니다. 컴파일하고 싶은 텍스트가 있지만 편집할 수 없습니다. 젠장, 이렇게 됩니다.
 
hoz :

김에는 다음과 같은 기능이 있습니다.

2가지 질문이 있습니다.

1. 시간을 한 번에 문자열로 변환한 다음 문자열을 시간으로 변환하는 이유는 무엇입니까?

2. 함수에 이 조건이 있는 이유는 무엇입니까?

결국, 시간 확인은 아래에 있습니다 .. 여기:

예, 그리고 함수 매개변수에서 시간 변수는 날짜/시간 유형이 아니지만 어떤 이유로 int ...


1. 시와 분의 현재 값을 함수 매개변수에 지정된 값으로 대체하려면

나는 이것을 할 것입니다 :

db= TimeCurrent ()- TimeCurrent ()% 86400 +hb* 3600 +mb* 60 ;

2. 하루의 시작일 또는 종료일의 추가 수정을 위해

datetime 및 int - 전체적으로는 동일하지만 매개 변수는 전체 날짜가 아니라 시간 및 분 수입니다.

 
MikeM :


2. 하루의 시작일 또는 종료일의 추가 수정을 위해

무엇 때문에? 여기에서 고문의 거래 시간을 제한해야 합니다. 그리고 거래 시간이 끝나는 시간 부터 거래 시간이 시작되는 시간까지의 시간은 우리에게 관심이 없습니다. 이때 어드바이저는 거래하지 않습니다! 무의미한 말..

마이크엠 :

datetime 및 int - 전체적으로는 동일하지만 매개 변수는 전체 날짜가 아니라 시간 및 분 수입니다.

그러나 시간은 시간이어야 합니다. 그것이 어떻게 중요합니까?
 
hoz :


그러나 시간은 시간이어야 하는데 어떻게 차이가 없습니까?


시간은 숫자이고 정수입니다.
 
Vinin :

시간은 숫자이고 정수입니다.


시간이 지남에 따라 나는 이것이 날짜가 아니라는 것을 깨달았습니다. 왜냐하면 우리는 숫자를 선언했기 때문입니다. 이건 어떤가요:

   if (db>=de) {
     if (hc>=he) de+= 24 * 60 * 60 ; else db-= 24 * 60 * 60 ;
  }

얼마나 많은 옵션을 만났는지, 나는 이것을 아직 보지 못했습니다 ... 어쩐지 이상합니다. 또한 여기에는 사이클이 없으며 거래의 시작과 끝 시간은 마이너스와 플러스입니다. 나는 이 순간이 이해가 되지 않는다.

사실, 우리는 위에서 dbde 거래의 시작과 끝 시간을 얻었습니다. 따라서 이 조각을 지울 수 있으며 여기에서 시간을 확인합니다.

   if ( TimeCurrent ()>=db && TimeCurrent ()<=de) return (True);
   else return (False);

추가 코드를 작성하는 요점은 무엇입니까? 이 점을 설명해 주십시오. 정말 논리적이지 않습니다.

 
hoz :


시간이 지남에 따라 나는 이것이 날짜가 아니라는 것을 깨달았습니다. 왜냐하면 우리는 숫자를 선언했기 때문입니다. 이건 어떤가요:

얼마나 많은 옵션을 만났는지, 나는 이것을 아직 보지 못했습니다 ... 어쩐지 이상합니다. 또한 여기에는 사이클이 없으며 거래의 시작과 끝 시간은 마이너스와 플러스입니다. 나는 이 순간이 이해가 되지 않는다.

사실, 우리는 위에서 dbde 거래의 시작과 끝 시간을 얻었습니다. 따라서 이 조각을 지울 수 있으며 여기에서 시간을 확인합니다.

추가 코드를 작성하는 요점은 무엇입니까? 이 점을 설명해 주십시오. 정말 논리적이지 않습니다.


모든 사람은 자신의 일을 할 자유가 있습니다. 이고르가 해냈습니다. 나는 다르게 한다.

플러스 마이너스. 따라서 거래 시간에 따라 다릅니다. 예를 들어 21:00에서 5:00까지 거래를 구성하는 방법.

분을 사용하지 않으면 모든 것이 크게 단순화 될 수 있습니다.

 
Vinin :


모든 사람은 자신의 일을 할 자유가 있습니다. 이고르가 해냈습니다. 나는 다르게 한다.

플러스 마이너스. 따라서 거래 시간에 따라 다릅니다. 예를 들어 21:00에서 5:00까지 거래를 구성하는 방법.

그리고 코드가 중복된다는 사실. 그것은 모든 사람에게 발생합니다.

분을 사용하지 않으면 모든 것이 크게 단순화 될 수 있습니다.


거래 시간이 21.00에서 23.59로, 그런 다음 00.01에서 5.00이 되도록 합니다.

다른 옵션은 무엇입니까?

 
hoz :


거래 시간이 21.00에서 23.59로, 그런 다음 00.01에서 5.00이 되도록 합니다.

다른 옵션은 무엇입니까?

if(Hour() >= 21 || Hour() < 5)라고 쓰면 21.00에서 4.59가 됩니다.
 
borilunad :
if(Hour() >= 21 || Hour() < 5)라고 쓰면 21.00에서 4.59가 됩니다.

기이한. 그것은 자정 이후에 건너 뛰고 이것을 전혀 고려하지 않습니까?