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

 
first_may :


예, 동의합니다. 제 자신을 올바르게 표현하지 못했습니다. 도움말을 읽은 후 다음과 같이 작성하기로 결정했습니다.

// EA는 세션일마다 주문할 수 있습니다.
// 10-45에서 18-30 사이의 시간 간격
if (시()>=10 && 분()>=45 && 시()<=18 && 분()<=30)
{
...
}

그럼 시간 확인을 위한 조건이 제대로 쓰여졌나요?


아니요. Minute()>=45 && Minute()<=30은 원칙적으로 불가능하기 때문에 그러한 조건으로 거래하지 않을 것입니다.

 
sergeev :

아니요. Minute()>=45 && Minute()<=30은 원칙적으로 불가능하기 때문에 그러한 조건으로 거래하지 않을 것입니다.


시간과 분을 별도로 비교할 수 없다는 것이 밝혀졌습니다. 11>=10 및 55>=45이므로 11-55가 첫 번째 조건에 적합하지만 11<=18 및 55<=30이므로 두 번째 조건에는 적합하지 않습니다. 인생에서 11-55는 10-45에서 18-30 사이의 시간 간격에 있습니다.
 
first_may :

시간과 분을 별도로 비교할 수 없다는 것이 밝혀졌습니다. 11>=10 및 55>=45이므로 11-55가 첫 번째 조건에 적합하지만 11<=18 및 55<=30이므로 두 번째 조건에는 적합하지 않습니다. 인생에서 11-55는 10-45에서 18-30 사이의 시간 간격에 있습니다.

예를 들어 StrToTime을 통해 시작 및 종료 시간을 직접 만들어야 합니다.
 
sergeev :

예를 들어 StrToTime을 사용하여 자신의 시작 및 종료 시간을 만들어야 합니다.


여기 에서 서버의 마지막으로 알려진 시간 을 사용하여 다음과 같이 작성했습니다.
if (TimeCurrent()>=StrToTime("10:45") && TimeCurrent()<=StrToTime("18:30"))
{
...
}

이제 11-55는 10-45에서 18-30 사이의 간격으로 떨어질 것입니까?

 
first_may :

이제 11-55는 10-45에서 18-30 사이의 간격으로 떨어질 것입니까?

네.
 
sergeev :
네.


정말 감사합니다! :)
 

여러분, 이러한 전역 및 지역 변수를 사용하여 저는 곧 맨발로 거리를 달리고 참새를 비틀기 시작할 것입니다. 젠장, 갑자기 두통이 왜 이렇게 많은지 이해가 안 돼요!!!

 int Orders= 0 ;                          // Объявление глобальной еременной суммы ордеров
int start()                            // Спец. функция start
  {
     if (MA2_2<MA1_2 && MA2_1>MA1_1)  //Сигнал на пересечении МА
        {
          if ( OrdersTotal ()>= 1 ) 
              return ( 0 );               //Если ордеров больше 1, уходим.
   
          SL = 30 ;                     // Стоп лосс
          TP = 12 ;                     // Тейк профит
          S_Price = Low[ 1 ] - 1 * Point ; // Уровень установки SELLSTOP
          if ( OrderSend ( Symbol (), OP_SELLSTOP, Lots, S_Price, 0 , SL, TP, "My order" , Magic)> 0 ) // Установка
//ордера SELLSTOP. Если OrderSend возвращает больше 0, то выполняем следующее.
            {
               Orders++;               //Увеличить величину Orders на 1. 
               Alert ( "Ордер выставлен.Orders = " ,Orders ); //Вывод нового значения Orders.
            }
        }    
   return (0);                             // Выход из start()
  }
내가 MQL4 교과서에서 아는 한, 이제 Orders 전역 변수의 새 값은 1과 같아야 합니다. 다음 반복에서 - 2, 다음 3, 그 다음 4. 등등. 전문가가 보류 중인 주문을 하는 동안. 그런데 왜 변화가 없는지 이해가 되지 않습니다! 다음 SELLSTOP 보류 주문을 한 후 한 메시지만 표시될 때마다 Orders = 1! 이유는 무엇입니까? MetaEditor 자체 때문일 수 있습니까?
 
vovan-gogan :

여러분, 이러한 전역 및 지역 변수를 사용하여 저는 곧 맨발로 거리를 달리고 참새를 비틀기 시작할 것입니다. 젠장, 갑자기 두통이 왜 이렇게 많은지 이해가 안 돼요!!!

내가 MQL4 교과서에서 아는 한, 이제 Orders 전역 변수의 새 값은 1과 같아야 합니다. 다음 반복에서 - 2, 다음 3, 그 다음 4. 등등. 전문가가 보류 중인 주문을 하는 동안. 그런데 왜 변화가 없는지 이해가 되지 않습니다! 다음 SELLSTOP 보류 주문을 한 후 한 메시지만 표시될 때마다 Orders = 1! 이유는 무엇입니까? MetaEditor 자체 때문일 수 있습니까?

그 이유는 이 거래 계정 에 아직 시장가 주문이 열려 있기 때문입니다.
 
Roman. :

그 이유는 이 거래 계정에 아직 시장가 주문이 열려 있기 때문입니다.

가장 슬픈 것은 이것이 테스터에서 일어난다는 것입니다. 게다가, 고문은 보류 중인 주문 을 하고 주문은 항상 1과 같습니다.
 
vovan-gogan :

가장 슬픈 것은 이것이 테스터에서 일어난다는 것입니다. 또한 고문은 보류 중인 주문을 제출하고 주문은 항상 1과 같습니다.

분명히 당신은 질문을 올바르게 공식화하지 않았습니다.