Hatalar, hatalar, sorular - sayfa 2206

 
Alexander Nikolaev :
Son zamanlarda Metaquotes Demo sunucusunda doğrudan MT4 terminalinde oluşturulan yeni oluşturulan demo hesaplara neden erişilemiyor kim bilir? Bir hafta önce oluşturuldu. İlk 2 gün çalışıyor fakat bir süre sonra hesap kayboluyor, sanki şifre yanlış oluyor (kopyalanmış olmasına rağmen yanlış giremedim) ve danışmanı test etmek için hesabı tekrar açmanız gerekiyor. Gerçekten her hafta yeni bir hesap oluşturmak gibi mi?
çok uzun zaman önce, hesapta herhangi bir hareket olmazsa kapanır. yeni bir tane oluşturun ve bunun için endişelenmeyin.
 
Denis Sartakov :

yakın zamanda böyle bir fonksiyon yazdı, kendin çözmeye çalış,

Eğer işe yaramazsa, açıklayacağım.

Teşekkür ederim

 

Bir soru daha:

CHART_IS_MAXIMIZED ve CHART_IS_MINIMIZED açıklamaları bu özelliklerin salt okunur olduğunu söylemez, ancak ChartSetInteger(ChartID(),CHART_IS_MAXIMIZED,true); çalışmıyor, sorun ne olabilir?

 

Neden derleme yapmıyor?

 template < typename T>
void f(T &t)
{
   t.f();
}

void OnStart ()
{
   class Q
   {
   public :
       void f() {}
   }q;
   
   f(q);
}

Derleyicinin eski sürümleri normalde bu tür yapıları yer, geçerli erken kodu ve bir hatayı yeniden derlemeyi üstlenir. Yanlışlıkla mı yoksa kasıtlı olarak mı kırıldı?

 
pavlick_ :

Neden derleme yapmıyor?

Derleyicinin eski sürümleri normalde bu tür yapıları yer, geçerli erken kodu ve bir hatayı yeniden derlemeyi üstlenir. Yanlışlıkla mı yoksa kasıtlı olarak mı kırıldı?

Ancak, dil özelliklerine göre işlevlerin içinde sınıflar oluşturmak mümkün müdür?

 
Konstantin :

Ancak, dil özelliklerine göre işlevlerin içinde sınıflar oluşturmak mümkün müdür?

Hangi dil özelliği? Mkl gerçekten hiç belgelenmemiştir, ancak c ++ 'da referans kitabından normal bir uygulamadır:

Yerel sınıflar

Bir sınıf bildirimi ad alanı kapsamında (bu durumda sıradan bir sınıfı tanımlar), başka bir sınıf tanımının içinde (bu durumda iç içe bir sınıfı tanımlar) ve bir işlevin gövdesinin içinde görünebilir, bu durumda bir yerel sınıf tanımlar . Böyle bir sınıfın adı yalnızca işlev kapsamında bulunur ve dışarıdan erişilemez.

http://en.cppreference.com/w/cpp/language/class

 

Ve yanıt olarak, her zamanki gibi sessizlik. Sorunu aşmak genel olarak zor değil - işlevin içine zarif yerleştirme yerine, onu ürkütücü bir internal__Chart_bar_shift_Comp adıyla dışarı çıkaracağım. Ama olay farklı - onu aldılar ve buna benzer bir tasarımı kestiler. Onlar. Genel olarak, karalamalarımın yarın derleneceğinin garantisi yok. Örneğin -std=mql18 lehçesini seçmek tuşlarla bir şekilde mümkündür. Ama hayır, geriye dönük uyumluluk umrumda değil. Bunun bazı gcc'lerde mümkün olduğunu hayal etmek benim için zor.

Muhtemelen, basit bir betikli mql4 ticaret platformu için oldukça yeterliydi. Daha da iyisi, eklentileri (dinamik kitaplıklarda) komut dosyaları/uzmanlarla içe aktarın . Ama hayır, burada sık sık söyledikleri gibi, büyük ve önemli olduğunuz "altyapı"ya ihtiyacınız var.

 
pavlick_ :

Hangi dil özelliği? Mcl gerçekten hiç belgelenmemiştir, ancak c ++ 'da referans kitabından normal bir uygulamadır:

yerel sınıflar

Bir sınıf bildirimi ad alanı kapsamında (bu durumda sıradan bir sınıfı tanımlar), başka bir sınıf tanımının içinde (bu durumda iç içe bir sınıfı tanımlar) ve bir işlevin gövdesinin içinde görünebilir, bu durumda bir yerel sınıf tanımlar . Böyle bir sınıfın adı yalnızca işlev kapsamında bulunur ve dışarıdan erişilemez.

http://en.cppreference.com/w/cpp/language/class

bir yerde bunun mql5 spesifikasyonu tarafından sağlanmadığına dair bir tartışmayla karşılaştım, foruma bakın, ayrıca kuzuların da sağlanmadığına dair bir tartışma vardı

 
pavlick_ :

Ve yanıt olarak, her zamanki gibi sessizlik. Sorunu aşmak genel olarak zor değil - işlevin içine zarif yerleştirme yerine, onu ürkütücü bir internal__Chart_bar_shift_Comp adıyla dışarı çıkaracağım. Ama mesele başka bir şey - aldılar ve buna benzer bir tasarımı kestiler. Onlar. Genel olarak, karalamalarımın yarın derleneceğinin garantisi yok. Örneğin -std=mql18 lehçesini seçmek tuşlarla bir şekilde mümkündür. Ama hayır, geriye dönük uyumluluk umrumda değil. Bunun bazı gcc'lerde mümkün olduğunu hayal etmek benim için zor.

Muhtemelen, basit bir betikli mql4 ticaret platformu için oldukça yeterliydi. Daha da iyisi, eklentileri (dinamik kitaplıklarda) komut dosyaları/uzmanlarla içe aktarın. Ama hayır, burada sık sık söylendiği gibi, büyük ve önemli olduğunuz "altyapı"ya ihtiyacınız var.

Dürüst olmak gerekirse, bunu neden yapacağımı anlamıyorum, tüm yardımcı varlıkları ayrı bir program kaynakları listesine koymak daha kolaydır, örneğin, util.mqh

 
Konstantin :

Dürüst olmak gerekirse, bunu neden yapacağımı anlamıyorum, tüm yardımcı varlıkları ayrı bir program kaynakları listesine koymak daha kolaydır, örneğin, util.mqh

Bu, evrensel olmayan ve bir işlevde bir kez kullanılan ikili arama için bir yüklemdir, neden bir yere götüreyim? Örneğin, bir dizi yapımız var (karşılaştırma operatörü yok, < kullanılarak beceriksizce karşılaştırılamazlar veya karşılaştırma koşulu çok zor) ve bir ikili arama yoluyla bir öğe bulmak istiyoruz. Artı kitaplığında, algoritma işlevleri bir işlev alır (bir lambda geçmek uygundur), içinde dizinin öğelerini karşılaştırırız. Bana göre çok şık bir çözüm.

 int main()
{
     typedef pair< int , double > myPair; // typedef to shorten the type name
    vector <myPair> vec( 5 );

    myPair low_val; // reference value (set this up as you want)
    auto it = lower_bound(vec.begin(), vec.end(), low_val, 
        [](myPair lhs, myPair rhs) -> bool { return lhs.second < rhs.second; });
}

Ancak µl'nin sınırlamaları göz önüne alındığında, yüklem sınıfının bir örneğini yarattım.