Hatalar, hatalar, sorular - sayfa 1182
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Optimizasyon çalışmıyor.
2014.08.05 19:34:42 Test cihazı optimize edilmiş parametre seçilmedi, lütfen optimize edilecek girişleri kontrol edin ve başlatma, adım ve durma değerlerini dikkatlice ayarlayın
Çeviri hiçbir şey yapmadı.
Nasıl "hiçbir şey"? Çeviri, optimizasyon için en az bir parametre seçmek ve başlangıç, bitiş ve test adımının doğru ayarlandığından emin olmak gibi bir şey vermiş olmalıdır.
Böyle bir sorunla karşı karşıya kaldı. Aynı sınıftaki iki nesneyi birbiriyle karşılaştırmak gerekiyor, kolaylık olması için == operatörünü aşırı yüklemeye karar verdim. Nesneler dinamikse, ifademin çalışmadığı ve nesnelerin kendileri yerine işaretçilerinin karşılaştırıldığı ortaya çıktı. Eh, bu prensipte mantıklıdır, işaretçisi ile nesnenin kendisine geçiş işlemi gereklidir: *a == *b. Ancak MQL'de böyle bir fırsat yaratmayı unuttular. Eklemen gerek.
Şimdi düşünmeme rağmen, dilin özellikleri göz önüne alındığında, nesnelerin kendileri yerine işaretçilerin burada karşılaştırılmasının temelde yanlış olduğunu düşündüm. Sonuçta, MQL yönetilen bir dildir ve burada "nesne" kavramının kendisi, nesnenin bellekte nasıl bulunduğuna ve ona nasıl erişildiğine bakılmaksızın kullanılır. Her durumda, üyelere ve yöntemlere erişim bir noktadan geçer. Onlar. her şey C# ile aynıdır. Buna göre karşılaştırma operatörü, hem statik olarak tahsis edilmiş nesneler hem de dinamik olanlar için aynı şekilde çalışmalıdır. İşaretçileri karşılaştırmanız gerekiyorsa, bunu GetPointer() kullanarak yapmanız gerekir.
Şimdi düşünmeme rağmen, dilin özellikleri göz önüne alındığında, nesnelerin kendileri yerine işaretçilerin burada karşılaştırılmasının temelde yanlış olduğunu düşündüm.
Danışmanı test ederken hata veriyor
OrderSend işlevi için geçersiz kâr alma
Sipariş Gönderme hatası 4107
Danışman koduna girmeden nasıl düzeltebilirim?
MQL'de C++ ile çelişen karşılaştırma kuralları oluşturmaya, başka yollarla mümkün olduğu sürece gerek yoktur. İşaretçileriniz varsa ve nesneleri karşılaştırmanız gerekiyorsa, karşılaştırma işlevini kullanın.(*a == *b) gibi bir gösterime izin verilmesini önermek bir şey ve bir gösterime farklı bir anlam vermek için tamamen başka bir şeydir (a == b)
Bu yüzden MQL kurallarının zaten C++ ile çeliştiğini açıklıyorum. Burada bir nesneye pointer ile erişim bir noktadan gerçekleştirilir, ancak C++ kurallarına uyarsanız -> üzerinden olmalıdır.
Onlar. C++'da "işaretçi" ve "nesne" tamamen farklı iki kavramdır, dolayısıyla sözdizimi farklıdır. Her şey katı. Ve burada her şey birbirine karışıyor. İşaretçinin özelliklerine ve yöntemlerine erişiyoruz gibi görünüyor. Kötü demiyorum. Bu, OOP için daha uygundur, örneğin C# ile de yapılır. Ama sonra diğer her şeyi aynı damarda uygulamanız gerekir. Tek bir kavram olmalı. Aksi takdirde çelişkiler ve kafa karışıklığı ortaya çıkar: bazı durumlarda pointer'ı nesnenin kendisi ile aynı şekilde kullanırız ve diğer durumlarda ise pointer aniden kendi yaşamı ile hayat bulur.
Tüm bunların pratik tarafına gidersek, o zaman sorunla zaten yüzleşmem gerekiyordu. Kod, statik nesneler kullandı. Sonra bazılarını dinamik olanlarla değiştirmeye karar verdim. Sonuç olarak, karşılaştırma ve atama işlemleri oldukça farklı çalışmaya başladı. Ve bu sorunu tespit etmek zordu, çünkü. program normal şekilde derlenmeye ve çalışmaya devam ediyor, ancak olması gerektiği gibi değil.
Kodumda bir nesne içeren bir sınıfım var:
CObj sınıfı bundan önce bildirilir.
Derlemeye çalışırken bir hata oluşuyor: 'Nesne' - ayarlanamıyor
Bu hata ne anlama geliyor ve nedeni ne olabilir? Bu hatayı daha önce gördüğümü hatırlamıyorum. CObj sınıfının bir yapıcısı ve yıkıcısı vardır.
Object'i bir değişken olarak bildirmeye çalıştım - her şey yolunda. Ama sınıfın bir parçası olarak - istemiyor.
Peki, birisi bu hatanın ne olduğunu açıklayabilir mi ("- ayarlanamaz") ? Hangi durumlarda ortaya çıkar?