MetaTrader 4 Build 529 Beta, Yeni Derleyici ile Yayınlandı - sayfa 39

 
Aralık dışı, kesin olarak koddaki bir hatayı gösterir - sınırların dışında bir dizi. Hatanın satırı ve konumu burada belirtilmiştir, bu nedenle hatayı arayın.
 

İşte kod.


datetime    prevtime0 = 0 ;
double prevVolume0 = 0 ;
double prevClose0 = 0 ;
void init()
{
   Print ( "_______Test init" );
   prevtime0 = iTime( NULL , PERIOD_M1 , 0 ); 
   prevVolume0 = iVolume( NULL , PERIOD_M1 , 0 );
   prevClose0 = iClose( NULL , PERIOD_M1 , 0 );
}

void start()
{
  Print ( " prevtime0!!!!! = " ,prevtime0, " iTime(NULL,PERIOD_M1,0) =" ,iTime( NULL , PERIOD_M1 , 0 ) );
  Print ( " prevVolume0!!!!! = " ,prevVolume0, " iVolume(NULL,PERIOD_M1,0) =" ,iVolume( NULL , PERIOD_M1 , 0 ) );
  Print ( " prevClose0!!!!! = " ,prevClose0, " iClose(NULL,PERIOD_M1,0) =" ,iClose( NULL , PERIOD_M1 , 0 ) );
  Print ( "" );

  prevtime0 = iTime( NULL , PERIOD_M1 , 0 ); 
  prevVolume0 = iVolume( NULL , PERIOD_M1 , 0 );
  prevClose0 = iClose( NULL , PERIOD_M1 , 0 );

}

İşte Terminal Sürüm 4.0 Yapı 536'daki yürütmenin sonucu

2013.11.11 22:53:08 EURJPY,M1 Testi: öncekiKapat0!!!!! = 133.02 iClose(BOŞ, PERIOD_M1 ,0) =133.02
2013.11.11 22:53:08 EURJPY,M1 Testi: öncekiVolume0!!!!! = 133.02 iVolume(NULL,PERIOD_M1,0) =133.02
2013.11.11 22:53:08 EURJPY,M1 Testi: prevtime0!!!!! = 2013.11.11 22:38:00 iTime(NULL,PERIOD_M1,0) =2013.11.11 22:38:00
2013.11.11 22:52:25 EURJPY,M1 Testi:
2013.11.11 22:52:25 EURJPY,M1 Testi: öncekiKapat0!!!!! = 133.02 iClose(BOŞ,PERIOD_M1,0) =133.02
2013.11.11 22:52:25 EURJPY,M1 Testi: öncekiVolume0!!!!! = 133.02 iVolume(NULL,PERIOD_M1,0) =133.02
2013.11.11 22:52:25 EURJPY,M1 Testi: prevtime0!!!!! = 2013.11.11 22:38:00 iTime(NULL,PERIOD_M1,0) =2013.11.11 22:38:00

Gördüğünüz gibi, ne iClose, ne iVolume ne de iTime değişmiyor.

İ ile başlayan fonksiyonların geri kalanının olduğuna inanıyorum.

Ayrıca, bu örnekteki iVolume işlevi, Hacmi açıkça göstermez.

Aynı zamanda, test cihazında iVolume dışında her şey çalışır ve değişir. Orada da çalışmıyor.

Not.

 
thecore :

İşte kod.


İşte Terminal Sürüm 4.0 Yapı 536'daki yürütmenin sonucu

2013.11.11 22:53:08 EURJPY,M1 Testi: öncekiKapat0!!!!! = 133.02 iClose(BOŞ,PERIOD_M1,0) =133.02
2013.11.11 22:53:08 EURJPY,M1 Testi: öncekiVolume0!!!!! = 133.02 iVolume(NULL,PERIOD_M1,0) =133.02
2013.11.11 22:53:08 EURJPY,M1 Testi: prevtime0!!!!! = 2013.11.11 22:38:00 iTime(NULL,PERIOD_M1,0) =2013.11.11 22:38:00
2013.11.11 22:52:25 EURJPY,M1 Testi:
2013.11.11 22:52:25 EURJPY,M1 Testi: öncekiKapat0!!!!! = 133.02 iClose(BOŞ,PERIOD_M1,0) =133.02
2013.11.11 22:52:25 EURJPY,M1 Testi: öncekiVolume0!!!!! = 133.02 iVolume(NULL,PERIOD_M1,0) =133.02
2013.11.11 22:52:25 EURJPY,M1 Testi: prevtime0!!!!! = 2013.11.11 22:38:00 iTime(NULL,PERIOD_M1,0) =2013.11.11 22:38:00

Gördüğünüz gibi, ne iClose, ne iVolume ne de iTime değişmiyor.

İ ile başlayan fonksiyonların geri kalanının olduğuna inanıyorum.

Ayrıca, bu örnekteki iVolume işlevi, Hacmi açıkça göstermez.

Aynı zamanda, test cihazında iVolume dışında her şey çalışır ve değişir. Orada da çalışmıyor.

Not.

Döndüm. Sorun nedir?
 
tara :
Döndüm. Sorun nedir?


Hmm...

iTime(NULL, PERIOD_M1 ,0) işlevi, soldaki terminal ile aynı zamanı döndürmez.

Terminal 2013.11.11 22:53:08 çıktı, iTime 2013.11.11 22:38:00 çıktı, ancak çıktı vermesi gerekiyor

2013.11.11 22:53:00

iVolume(NULL,PERIOD_M1,0) 1, 2, 3, 100 gibi bir tamsayı döndürmeli, değil

bu örnekte olduğu gibi 133.02

iClose, ilk durumda 133.02 ve ikinci durumda 133.03 döndürmelidir.

 

Tüm bu işlevler her dakika biraz daha farklı çalışır. Baskı sizin için keneler üzerinde çalışır. MT'deki süre saniye cinsinden sayılır.

Ve ikinci terminal genellikle soldadır :)

 
tara :

Tüm bu işlevler her dakika biraz daha farklı çalışır. Baskılarınız keneler üzerinde çalışır. MT'deki süre saniye cinsinden sayılır.

Ve ikinci terminal genellikle soldadır :)

Dinle, bu gece konuşacak kimsen olmadığını anlıyorum.

Dakikaya kadar biliyorum, bu nedenle, sonucun çıktısında ÖZEL olarak gösterdim

farklı dakikalarda iki sonuç.

Ayrıca bu mesaj sizin için değil, geliştiriciler içindi.

 
thecore :

iVolume(NULL,PERIOD_M1,0) 1, 2, 3, 100 gibi bir tamsayı döndürmeli, değil

bu örnekte olduğu gibi 133.02

Kampanya gerçekten de iVolume hacim yerine son fiyatı ( kapanış fiyatı ) döndürür.

Ama yardımdan gelen açıklama beni gerçekten eğlendirdi (ilk seçenek dosyadan, ikincisi ise siteden alındı)

1

 datetime   iVolume(
   string            symbol,           // символ
   int               timeframe,       // период
   int               shift             // сдвиг
   );

2

 double iVolume( string symbol, int timeframe, int shift)
 
thecore :


Hmm...

iTime(NULL,PERIOD_M1,0) işlevi, soldaki terminal ile aynı zamanı vermez.

Terminal 2013.11.11 22:53:08 çıktı, iTime 2013.11.11 22:38:00 çıktı, ancak çıktı vermesi gerekiyor

2013.11.11 22:53:00

iVolume(NULL,PERIOD_M1,0) 1, 2, 3, 100 gibi bir tamsayı döndürmeli, değil

bu örnekte olduğu gibi 133.02

iClose, ilk durumda 133.02 ve ikinci durumda 133.03 döndürmelidir.


RefreshRates()'i kullanmayı deneyin, OnTick'te de aynı sorun var, test cihazında zaman ve fiyatlar güncellenmiyor, ancak RefreshRates() kullanırken her şey yolunda...
 
Göstergelerle ilgili iki sorun daha için lütfen Servis Masasına bakın!
 
thecore :

Gördüğünüz gibi, ne iClose, ne iVolume, ne de iTime değişmiyor.

İ ile başlayan fonksiyonların geri kalanının olduğuna inanıyorum.

Ayrıca, bu örnekteki iVolume işlevi, Hacmi açıkça göstermez.


Sabit. teşekkürler