포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 768

 
AlexeyVik :

글쎄요, 제 현지 시간은 서버 시간보다 1시간 더 깁니다.

이를 바탕으로 이러한 가치에서 무엇이 당신을 혼란스럽게 하는지 설명하십시오.

이 가치에는 당혹스러운 것이 없으며 모든 것이 정확하지만 이것은 그것에 관한 것이 아닙니다.

특히 금요일에 대한 문제는 현지 시간이 브로커의 시간보다 X시간 더 많다면 관련이 없습니다.

그러나 로컬 컴퓨터의 브로커와 +1이 아니라 -1시간의 차이가 있다고 상상해 보십시오.

그리고 다음과 같은 간단한 조건이 있습니다.

 if (TimeDayOfWeek( TimeCurrent ()) == 5 && TimeCurrent () >= StringToTime ( "21:30" ))
   Print ( "Настала пятница и время больше чем  21:30 " );

이 경우:

1. 브로커는 금요일의 첫 번째 틱을 가질 것입니다. 예를 들어, 오늘의 틱은 시간이 2014.11.07 00:00입니다.

2. 우리는 1970-01-01 00:00에서 고려 된 틱 시간, 즉 2014/11/07 00:00 까지 경과 한 초 수를 취합니다.

3. 1970 년 1월 1 일 00시 00 분부터 2014 년 11월 6일 21시 30분까지 경과된 시간(초)을 취합니다(로컬 컴퓨터의 시간을 사용하기 때문에 정확히 어제 날짜입니다. 고려한 틱의 틱은 금요일이 아니라 6번째 숫자인 목요일, 더 정확히는 2014.11.06 23:00, 1시간 차이)

짜잔, 2번 지점의 시간이 3번 지점보다 큽니다.

이것은 코드에 지정된 인쇄가 첫 번째 금요일 틱에 실행된다는 것을 의미합니다. 그러나 StringToTime() 함수 가 브로커의 서버에서 날짜를 가져오면 모든 것이 의도한 대로 작동하지만 인쇄는 시간이 21:30 을 초과합니다

 
Leonid123456 :

안녕하세요.

그런 과제가 있습니다. (티크에 나사를 조일 수 없음)

보류 중인 주문이 실행되면 {then...}

주문 계산을 위해 EA에서 Terminal.mqh를 사용합니다.

터미널 // Mas_Tip[0] 오픈 매수

// Buy 주문 수가 1 증가하면...

if (Mas_Tip[0]+1)

{

기능

}

모든 것이 작동합니다. 그러나 다음 틱마다 작동합니다.

이 케이스를 진드기에 부착하는 방법은 무엇입니까? 그런 다음 이전 눈금과 현재 눈금의 값을 비교합니다.

선택한 줄을 우리 인간의 언어로 번역할 수 있습니까? 이 줄을 실행하면 무엇이 되고 어떻게 되는지...
 
AlexeyVik :
선택한 줄을 우리 인간의 언어로 번역할 수 있습니까? 이 줄을 실행하면 무엇이 되고 어떻게 되는지...

// Buy 주문 수가 1 증가하면...

{

예를 들어, 함수는 다른 주문을 열거나 닫습니다...

}

꼭 이럴 필요는 없습니다.. if (Mas_Tip[0]+1) if (Mas_Tip[0] > Mas_Tip[1]) // Cell보다 Buy order가 많을 경우. 그런 다음 지연된 예를 엽니다 ...

사실은 다음 틱에서 이 데이터가 다시 사실이라는 것입니다.

 
Leonid123456 :

// Buy 주문 수가 1 증가하면...

{

예를 들어 이 기능은 다른 주문을 열거나 닫습니다...

}

if (Mas_Tip[0]+1)

괄호 안은 bool이어야 하는 경우, 즉 true 또는 false입니다.

그리고 여기에는 분명히 int. 그것은 정수입니다.

물론, true는 1이고 false는 0입니다(제가 틀리지 않은 경우). 그러나 여전히 옳지 않습니다. Mas_Tip[0]은 무엇을 반환합니까?

 
ikatsko :

if (Mas_Tip[0]+1)

괄호 안은 bool이어야 하는 경우, 즉 true 또는 false입니다.

그리고 여기에는 분명히 int. 그것은 정수입니다.

물론, true는 1이고 false는 0입니다(제가 틀리지 않은 경우). 그러나 여전히 옳지 않습니다. Mas_Tip[0]은 무엇을 반환합니까?

열린 구매 주문의 수입니다.

 
Leonid123456 :

// Buy 주문 수가 1 증가하면...

{

예를 들어, 함수는 다른 주문을 열거나 닫습니다...

}

아니, 당신이 원하는 것입니다. 그리고 실제로는 그렇지 않습니다. Mas_Tip[0] 배열에 값이 있으며, 0보다 크면 if(Mas_Tip[0]) 조건이 이미 참이 됩니다. 그리고 이 값에 1을 더하면 열린 주문의 수가 -1과 같을 수 없기 때문에 항상 true가 됩니다.

 
AlexeyVik :

아니, 당신이 원하는 것입니다. 그리고 실제로는 그렇지 않습니다. Mas_Tip[0] 배열에 값이 있으며, 0보다 크면 if(Mas_Tip[0]) 조건이 이미 참이 됩니다. 그리고 이 값에 1을 더하면 열린 주문의 수가 -1과 같을 수 없기 때문에 항상 true가 됩니다.


그렇게 하려고 노력했다

   bool  Fact_1 = false ;                    // Глобальная перемен.
       bool  Fact_2 = false ;                    // Глобальная перемен.
//--------------------------------------------------------------------
int start ()                                     // Спец. функция start
  {
                          // Локальная перемен.
   if ( Fact_2 == true )                            //Если сообщение уже..
      return ;                                   //..было, то выходим
 
   if ( Mas_Tip[0]+1 )
      Fact_1 = true ;                            // Произошло событие 1
 
   
 
   return ;                                      // Выход из start()
  }
//--------------------------------------------------------------------
                               // Пользовательс. ф-ия
  {
             // Сообщение
   Fact_2 = true ;                               // Произошло событие 2
   return ;                                      // Выход из польз.ф-ии

}

한 번 나옵니다.

 
ikatsko :

if (Mas_Tip[0]+1)

괄호 안은 bool이어야 하는 경우, 즉 true 또는 false입니다.

그리고 여기에는 분명히 int. 그것은 정수입니다.

물론, true는 1이고 false는 0입니다(제가 틀리지 않은 경우). 그러나 여전히 옳지 않습니다. Mas_Tip[0]은 무엇을 반환합니까?

false는 0이고 0이 아니면 true

이 라인을 시도

 bool b;
b = 7.40 ;
if (b) Print ( "b = " , b);
컴파일러는 정밀도 손실 가능성에 대해 경고할 수 있지만 작동합니다.
 

Mas_Tip[0] 을(를) 삭제할 수 있습니다.

이벤트 받는 방법. 구매 오픈했습니다.

 
Leonid123456 :

Mas_Tip[0] 을(를) 삭제할 수 있습니다.

이벤트 받는 방법. 구매 오픈했습니다.

어떤 변수에 bais의 이전 수를 저장하고 bai count 함수에 의해 반환된 현재 값과 비교합니다. 그렇지 않으면 어떻게 될까요?