오류, 버그, 질문 - 페이지 1217

 
fyords :

주문을 마감하기 전과 후의 마감 시간을 표시하는 간단한 스크립트(MT4)가 있습니다.

고객에 대한 결과(711 빌드):

내 결과(711-719 빌드):

UPD: 컴파일된 제품을 줄 때만 발생합니다. 소스를 전송하면 그러한 문제가 없으며 모든 것이 시계처럼 작동합니다.
메시지를 보내주셔서 감사합니다. 수정되었습니다. 새 빌드(내일 예정) 릴리스를 기다려 주세요.
현재 빌드에서 작업하려면 OrderCloseTime, OrderOpenTime 및 OrderExpiration 함수에 대해 다음 구성을 사용합니다.
 int time=( int )OrderCloseTime();
TimeToString (time);
 
mql5 :
메시지를 보내주셔서 감사합니다. 수정되었습니다. 새 빌드(내일 예정) 릴리스를 기다려 주세요.
현재 빌드에서 작업하려면 OrderCloseTime, OrderOpenTime 및 OrderExpiration 함수에 대해 다음 구성을 사용합니다.
효율성에 감사드립니다.
 
러시아어 텍스트와 함께 작동하도록 WebRequest 기능을 개선할 계획입니까?
 

다음과 같이 작동하지 않습니다. 차트에 개체가 있습니다.

   double Pos_Buy=(- 1 );
   if ( ObjectFind ( "UP_Line" )== 0 )
   {
      Pos_Buy=ObjectGetValueByShift( "UP_Line" , 0 );
   }
   double Pos_Sell=(- 1 );
   if ( ObjectFind ( "DN_Line" )== 0 )
   {
      Pos_Sell=ObjectGetValueByShift( "DN_Line" , 0 );
   }
   double Pos_Buy_CH=(- 1 );
   if ( ObjectFind ( "UP_Line1" )== 0 )
   {
      Pos_Buy_CH=ObjectGetValueByShift( "UP_Line1" , 0 );
   }
   double Pos_Sell_CH=(- 1 );
   if ( ObjectFind ( "DN_Line1" )== 0 )
   {
      Pos_Sell_CH=ObjectGetValueByShift( "DN_Line1" , 0 );
   }
   Print (Pos_Buy, " " ,Pos_Sell, " " ,Pos_Buy_CH, " " ,Pos_Sell_CH);
   if (Pos_Buy==(- 1 )&&Pos_Sell==(- 1 )&&Pos_Buy_CH==(- 1 )&&Pos_Sell_CH==(- 1 )) return ;
   Print ( 2 );


2014.10 . 09 20 : 10 : 37.906 2014.10 . 02 14 : 52   cat_in_the_bagLast2 EURUSD,H4: - 1 - 1 - 1 - 1 1
2014.10 . 09 20 : 10 : 37.906 2014.10 . 02 14 : 52   cat_in_the_bagLast2 EURUSD,H4: - 1 - 1 - 1 - 1 1
2014.10 . 09 20 : 10 : 37.890 2014.10 . 02 14 : 52   cat_in_the_bagLast2 EURUSD,H4: - 1 - 1 - 1 - 1 1
2014.10 . 09 20 : 10 : 37.890 2014.10 . 02 14 : 52   cat_in_the_bagLast2 EURUSD,H4: - 1 - 1 - 1 - 1 1
2014.10 . 09 20 : 10 : 37.875 2014.10 . 02 14 : 52   cat_in_the_bagLast2 EURUSD,H4: - 1 - 1 - 1 - 1 1
2014.10 . 09 20 : 10 : 37.875 2014.10 . 02 14 : 52   cat_in_the_bagLast2 EURUSD,H4: - 1 - 1 - 1 - 1 1


 
컴파일하는 동안 오류가 없습니다. ObjectFind() 는 개체를 보지 못합니다.
 

예, 이 쓰레기는 사실로 전달되지 않습니다.

   if ( ObjectFind ( "UP_Line" )== 0 )
   {
       Print ( 3 );
       //Pos_Buy=ObjectGetValueByShift("UP_Line",0);
   }

вот это возвращает -1 при наличии объекта на графике

   Print(ObjectFind("UP_Line"));
 
 

OH HORROR, 그래서 -1을 반환합니다:

   Print ( ObjectFind ( 0 , "UP_Line" ));
   if ( ObjectFind ( 0 , "UP_Line" )== 0 )
   {
       Print ( 3 );
       //Pos_Buy=ObjectGetValueByShift("UP_Line",0);
   }

어떻게 살 것인가?

테스터 차트에 개체가 있습니다.

 

누군가 빌드 719에서 코드를 확인합니다.

공장?

 
sanyooooook :

누군가 빌드 719에서 코드를 확인합니다.

공장?

지금 볼게요...

PS 빌드 719 에서 스크립트로 확인했습니다. 공장.

 //+------------------------------------------------------------------+
//|                                                        #Test.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link        "http://www.mql4.com"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   int res= ObjectFind ( "Hello" );
   if (res< 0 )
       Print ( "Объект Hello не найден!" );
   else
       Print ( "Объект Hello найден в окне: " ,res);
  }
//+------------------------------------------------------------------+
0        19 : 51 : 10.567     Script #Test EURGBP,M15: loaded successfully
0        19 : 51 : 10.568      #Test EURGBP,M15: initialized
0        19 : 51 : 10.568      #Test EURGBP,M15: Объект Hello найден в окне: 0
0        19 : 51 : 10.568      #Test EURGBP,M15: uninit reason 0
0        19 : 51 : 10.568     Script #Test EURGBP,M15: removed
 

무슨 거래:

1. 새 차트 열기

2. 객체 생성

3. 다른 차트에서 객체 이름( Expert Advisor에 의해 이미 생성됨 )을 복사합니다.

4. 새 차트에 복사-붙여넣기로 개체 이름을 변경합니다.

5. 스크립트를 실행합니다.

 void OnStart ()
  {
//---
   Print ( ObjectFind ( 0 , "UP_Line" ));
   if ( ObjectFind ( 0 , "UP_Line" )== 0 )
   {
       Print ( 3 );
       //Pos_Buy=ObjectGetValueByShift("UP_Line",0);
   }   
  }

6. 결과를 얻습니다.

 2014.10 . 09 20 : 46 : 21.828 TestObjectFind EURUSD,H1: uninit reason 0
2014.10 . 09 20 : 46 : 21.828 TestObjectFind EURUSD,H1: - 1
2014.10 . 09 20 : 46 : 21.828 TestObjectFind EURUSD,H1: initialized