Hatalar, hatalar, sorular - sayfa 1011

 
//Test.mqh
class A {
public :
         virtual int f() { return ( 1 ); }
};
 //TestLib.mq5
#property library
#include "Test.mqh"
int g( A* pA ) export { return ( 5 ); }

//Test.mq5
#include "Test.mqh"
#import "TestLib.ex5"
         int g( A* pA );
#import
void OnStart ()
{
        A* pA = new A();
         Print ( g( pA ));
         delete ( pA );
}
Şimdiye kadar her şey yolunda, ancak örneğin Test.mq5'e eklemeye değer
 class B : public A {
};
bir çalışma zamanı hatası ne kadar hemen oluşur - g TestLib.ex5'te bulunamadı
 
Silent :

tarih saat zaten orada

ArraySize - çubuk sayısı, ArraySize-1 - son çubuk, ArraySetAsSeries set indeksleme yönü ve hücre numarası = çubuk, sol veya sağ.

Burada bir test senaryosu yaptım.

Teşekkür ederim! Deneyeceğim
 

Tünaydın!

TimeCurrent, MarketWatch'tan son tıklamanın zamanını döndürmek için belirtilir. Kullanmaya çalışıyorum, son tik 22:59:57 olmasına rağmen 20:30 dönüyor

Bu neden olabilir?

Teşekkür ederim!

 
ns_k :

Tünaydın!

TimeCurrent, MarketWatch'tan son tıklamanın zamanını döndürmek için belirtilir. Kullanmaya çalışıyorum, son tik 22:59:57 olmasına rağmen 20:30 dönüyor

Bu neden olabilir?

Teşekkür ederim!

Yardımdan:

OnTick() işleyicisinde , bu işlev gelen işlenen tick'in zamanını döndürür . Diğer durumlarda (örneğin, OnInit(), OnDeinit(), OnTimer() ve benzeri işleyicilerin çağrılması), bu, "Piyasa İzleme" penceresinde mevcut herhangi bir sembol için son teklifin zamanıdır, aynı zamanda bu pencerenin başlığında gösterilir.

 
Lizar :

Yardımdan:

Teşekkür ederim!

Oysa, onCalculate'de son teklifin varış zamanı nasıl alınır?

 
ns_k :

Teşekkür ederim!

Oysa, onCalculate'de son teklifin varış zamanı nasıl alınır?

Time Pink Floyd'u dinledim ve anladım :)

 if ( SymbolInfoTick ( Symbol (),last_tick))

     {

       Print (last_tick.time, ": Bid = " ,last_tick.bid,

             " Ask = " ,last_tick.ask, "  Volume = " ,last_tick.volume);

     }

   else Print ( "SymbolInfoTick() failed, error = " , GetLastError ());

   lEnd=last_tick.time; 
 

Tünaydın!

ArrayResize, sınıfların/yapıların statik üyeleri için genel başlatma aşamasında çalışmıyor gibi görünüyor.

yapı Testi{
statik dize dizi[];
Ölçek() {
ArrayResize(dizi,5) ;
if (ArraySize(arr)!=5) Alert("Bir hatamız var");
}
};
deneme testi;

 

Aşağıdaki sorunu yaşayan var mı:

Terminalin sürümü ve bitliği

Windows 8, MetaTrader 5 - Alpari İngiltere, Yapı 821, 64 bit.

problemin tanımı

H1 üzerinde çalışan gösterge, M1 üzerinde çalışan göstergeyi çağırır. CopyBuffer komutu geçersiz verileri kopyalar. Bu sorun yalnızca strateji test cihazında yeniden üretilir. Terminalde tüm veriler hatasız kopyalanır. Gösterge M1 ilk arabelleğe yüksek kopyalar.

sıralama

Strateji test cihazında, SampleCopyBuffer göstergesini H1'de test etmeyi seçiyorum. Dönemi 2013-05-01'den 2013-07-07'ye ayarladım. Başlat'a basıyorum ve günlüklerdeki hata mesajlarını okuyorum.

Sonuç

ve günlüklerdeki hata mesajlarını okuyun. M1 ile gösterge arabelleğinin değeri, CopyHigh değeriyle eşleşmiyor.

Beklenen Sonuç

CopyBuffer ve CopyHigh değerleri eşit olmalıdır.

ek bilgi

Çalıştırdığımda terminalde hata yok. Yalnızca strateji test cihazında. Lütfen ekteki göstergelerime bakın. SampleHighs, M1 döneminde çalışır ve H1 üzerinde çalışan SampleCopyBuffer göstergesinden çağrılır.
Dosyalar:
 
denmax :

Tünaydın!

ArrayResize, sınıfların/yapıların statik üyeleri için genel başlatma aşamasında çalışmıyor gibi görünüyor.

yapı Testi{
statik dize dizi[];
Ölçek() {
ArrayResize(dizi,5) ;
if (ArraySize(arr)!=5) Alert("Bir hatamız var");
}
};
deneme testi;

Mesaj için teşekkürler, düzelteceğiz. Kodunuz, statik dize arr[] yokluğu hakkında bir hata verecektir; kodunuzun doğru çalışması için, statik değişkeni Test sınıfının test örneğinden önce "yerleştirmeniz" gerekir.

 struct Test{
   static string arr[];
   Test() {
       ArrayResize (arr, 5 ) ;
       if ( ArraySize (arr)!= 5 ) Alert ( "We have a bug" ); 
    } 
};

string Test::arr[];

Test test; 
 

Tünaydın!

Kendi üretimimin özel bir göstergesinin bazı özelliklerini analiz etmesi gereken bir senaryo yazıyorum :)

Yardım, IndicatorCreate kullanmak için diyor

gösterge kolunu almak için. Aslında, hemen hemen her şey açıktır, ancak biraz garip görünmesi dışında, komut dosyasının başlatıldığı grafikte göstergeyi bulduğunuzda, göstergeyi yeniden oluşturmanız gerekir. Belki bir şekilde komut dosyasında önceden hesaplanmış gösterge değerleri alabilirsiniz?

Teşekkür ederim!

Neden: