Hatalar, hatalar, sorular - sayfa 1217

 
fyords :

Bir siparişin kapanmadan önceki ve sonraki kapanış saatini gösteren basit bir komut dosyası (MT4) vardır.

Müşteri için sonuç (711 yapı):

Benim sonucum (711-719 yapı):

UPD: Bu sadece derlenmiş ürünü verdiğimde oluyor. Kaynağı aktarırsam - böyle bir sorun yoktur, her şey saat gibi çalışır.
Mesaj için teşekkürler, düzeltildi, lütfen yeni yapının yayınlanmasını bekleyin (yarın planlanmaktadır).
Geçerli derlemede çalışmak için OrderCloseTime, OrderOpenTime ve OrderExpiration işlevleri için aşağıdaki yapıyı kullanın:
 int time=( int )OrderCloseTime();
TimeToString (time);
 
mql5 :
Mesaj için teşekkürler, düzeltildi, lütfen yeni yapının yayınlanmasını bekleyin (yarın planlanmaktadır).
Geçerli derlemede çalışmak için OrderCloseTime, OrderOpenTime ve OrderExpiration işlevleri için aşağıdaki yapıyı kullanın:
Verimlilik için teşekkür ederiz.
 
Rusça metinle çalışmak için WebRequest işlevini geliştirmeyi planlıyor musunuz?
 

bu şekilde çalışmıyor, grafikte nesneler var:

   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


 
derleme sırasında hata yok, ObjectFind() nesneyi görmüyor
 

evet, bu saçmalık doğru geçmez:

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

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

   Print(ObjectFind("UP_Line"));
 
 

OH HORROR ve böylece -1 döndürür:

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

NASIL YAŞAMALI?

Test cihazı tablosunda nesneler var.

 

Birisi yapı 719'daki kodu kontrol etsin.

İşler?

 
sanyooooook :

Birisi yapı 719'daki kodu kontrol etsin.

İşler?

şimdi bir bakayım...

PS Yapı 719'da bir komut dosyasıyla kontrol ettim. İşler.

 //+------------------------------------------------------------------+
//|                                                        #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
 

Anlaşma ne:

1. yeni bir grafik açın

2. bir nesne oluşturun

3. Nesnenin adını (zaten Expert Advisor tarafından oluşturulmuş ) başka bir tablodan kopyalıyorum

4. Yeni bir grafikte nesnenin adını kopyala-yapıştır ile değiştiriyorum

5. betiği çalıştırın:

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

6. Şu sonucu alıyorum:

 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