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
bu tam olarak bıraktığım şey, ama ilk başta yaptım
bu yaklaşımla - "her şeyin olduğu yerde" temel sınıftan miras alın - her şey çalışır, ancak birkaç sınıf alanı oluşturmaya çalışmak ve sonra her sınıf alanına birkaç alan eklemek istediğimize kadar, hadi hepsini yenelim dinamik bir sınıf dizisi
ve Save (int hndl) yönteminin kendisini anlıyoruz - bunu temel sınıfta uygulayamıyoruz, bu yöntem esasen tartışıldığı gibi hiç gerekli olmayan bir arayüz olacak - arayüzler olmadan da yazabilirsiniz
bununla, sorun değil, hepsi bir zevk ve görev meselesi, genellikle kod esnekliği konusundaki çabalarımı en üst düzeye çıkarırım - minimum hareket - sonuç çözülmüş yeni bir problemdir, terminolojiyi affet)))
ancak sorun şu ki, bir dosyaya kaydetmeyi uygularken, farklı türlerdeki toplam kayıt sayısını tanımlamanız gerekecek bir dosya başlığı geliştirmeniz gerekecek, o zaman mantığı / kaydetme sırasını kaybetmenize gerek kalmayacak. her şeyi doğru okumak için veri .... ve bir sınıftaki en az bir alan değiştirilmişse final olacaktır.
IMHO, temel sınıftan bu tür "hafif" mirasın karmaşıklığı - küçük bir veritabanının geliştirilmesi ve bakımına, herhangi bir sınıftaki değişikliklerin sürekli izlenmesine bağlıdır.
Böyle bir şey))))
Böyle bir şey))))
evet, tüm bunlar anlaşılabilir, ancak yerleşik "mucl bu sizin için C değil" için yalnızca, görevler tarafından iyi yapılandırılmış koda güvenmenin hiçbir anlamı olmadığını ekleyebilir - MQL görevleri her zaman son derece uzmanlaşmıştır ve büyükleri yeniden kullanır kod genellikle verimsizdir
Not: IMHO, MQL kodunun ana görevi, test cihazında kullanmak veya kodu tek bir tıklamayla yürütmek için mümkün olduğunca hızlı olmaktır - keneleri atlamadan her şey açık görünüyor, ancak sınırlamalar da var - PC / terminalin bağlantısını kesme ve yeniden başlatma durumunu görmezden gelemezsiniz ve burada tüm bunlarda sadece güzel ve yapılandırılmış bir kod değil, optimum olanı bulmanız gerekir.
2. operatörü= tanımlamak ve içinde yerel kopyalama operatörünü kullanmak için bir hack var mı? .... yani aramanın bir yolu ::=
Bir yol var ve her zamanki gibi çözüm basit:
matris A'yı, ardından C'yi başlat
önce yeni bir B = A matrisi atayın ve yazdırın, ardından B=C ve yazdırın
2020.04.21 00:35:50.559 tst (EURUSD,H1) 0 1 2 3 4
2020.04.21 00:35:50.559 tst (EURUSD,H1) 5 6 7 8 9
2020.04.21 00:35:50.560 tst (EURUSD,H1) 100 101
2020.04.21 00:35:50.560 tst (EURUSD,H1) 102 103
2020.04.21 00:35:50.560 tst (EURUSD,H1) 104 105
2020.04.21 00:35:50.560 tst (EURUSD,H1) 106 107
2020.04.21 00:35:50.560 tst (EURUSD,H1) 108 109
öz - yapıyı yapıya ve tekrar yapıya sarmanız gerekiyor .... Teknik terim için özür dilerim))))
Not: çözüm iyi, daha az çağrı olması için RowCount() ve ColCount() yöntemlerini RowCount ve ColCount yapısının alanlarıyla değiştirmeniz gerekiyor... ama genel olarak her şey beklendiği gibi çalışıyor
Ciddi misin?
Ve bunda nesi var, bir kişi 2012'den beri bu sorunu çözüyor, ona karışma, o daha iyi bilir.
Ve bunda nesi var, bir kişi 2012'den beri bu sorunu çözüyor, ona karışma, o daha iyi bilir.
düz düşünme
görev, MQL dilinin teknik yeteneklerini bilmektir, böylece böyle bir örnek https://docs.microsoft.com/en-us/archive/msdn-magazine/2018/april/test-run-understanding-lstm- csharp kullanan hücreler
"alnına" takmak mümkündü - şimdi bu görev çözüldü, örneğin tüm işlevlerini bire bir varsayımla taşıyarak: float[][] sonuç --> SMatrix sonucu
Bir yol var ve her zamanki gibi çözüm basit:
matris A'yı, ardından C'yi başlat
önce yeni bir B = A matrisi atayın ve yazdırın, ardından B=C ve yazdırın
Not: çözüm iyi, daha az çağrı olması için RowCount() ve ColCount() yöntemlerini RowCount ve ColCount yapısının alanlarıyla değiştirmeniz gerekiyor... ama genel olarak her şey beklendiği gibi çalışıyor
Ne yazık ki, her şey istediğimiz kadar mutlu değil. MQL'de dizileri varsayılan kopyalama operatörünü kullanarak kopyalama konusunda uzun süredir devam eden bir hata var. Bir diziden diğerine yalnızca ArrayCopy öğeleri vardır. Ve son dizinin boyutu kaynakla eşitlenmez (kesilmez). Onlar. Diyelim ki A(10), B(20), o zaman B=A'dan sonra B(20) de olacak, yani. elemanların yarısı A'dan elemanlarla değiştirilecek, geri kalanı aynı kalacak. Bu kesinlikle = operatöründen beklediğiniz şey değildir. Bu nedenle diziler için kendi operatörünüzü yazmanız gerekecektir.
Dürüst olmak gerekirse, bu hatanın zaten düzeltildiğini düşündüm. Ama kontrol ettim - işler hala orada.
Ne yazık ki, her şey istediğimiz kadar mutlu değil. MQL'de dizileri varsayılan kopyalama operatörünü kullanarak kopyalama konusunda uzun süredir devam eden bir hata var. Bir diziden diğerine yalnızca ArrayCopy öğeleri vardır. Ve son dizinin boyutu kaynakla senkronize edilmez (kesilmez). Onlar. Diyelim ki A(10), B(20), o zaman B=A'dan sonra B(20) de olacak, yani. elemanların yarısı A'dan elemanlarla değiştirilecek, geri kalanı aynı kalacak. Bu kesinlikle = operatöründen beklediğiniz şey değildir. Bu nedenle diziler için kendi operatörünüzü yazmanız gerekecektir.
Dürüst olmak gerekirse, bu hatanın zaten düzeltildiğini düşündüm. Ama kontrol ettim - işler hala orada.
Hatadan yakın zamanda bahsedildi:
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
MQL5'te OOP hakkında sorular
Sergey Dzyublik , 2020.04.18 17:48
Ardından, terminolojinize göre, varsayılan atama operatörünü çağırmak "eksik veri türü" verebilir.
2019.05.03 tarihli hata hala düzeltilmedi: https://www.mql5.com/en/forum/1111/page2451#comment_11556395
Yukarıdaki satır, fikre göre, hatayı atlamalıdır:
Yukarıdaki satır, fikre göre, hatayı atlamalıdır:
Ah, evet, hemen bir şey fark etmedim... Ama sonra hemen ArrayCopy yazmak mümkün oldu. O zaman neden bu SMATRIX contaya ihtiyacınız var? ..
Ah, evet, hemen bir şey fark etmedim... Ama sonra hemen ArrayCopy yazmak mümkün oldu. O zaman neden bu SMATRIX contaya ihtiyacınız var? ..
MT geliştiricileri her zaman yerleşik derleyici mekanizmalarını kullanmanın normal işlevleri çağırmaktan bile daha hızlı olacağını yazar.
zamanınız ve ilginiz varsa, benim ve sizinkinin hızını ArrayCopy ile kontrol edin.
Hızı biraz sonra kontrol edeceğim, şimdi bilgisayar derslerle meşgul