OOP, mql5'te şablonlar ve makrolar, incelikler ve kullanım teknikleri - sayfa 27
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
Bir nesneye işaretçi.
Alınma ama bu tür makrolarla senin için çok erken, boğulacaksın. İlk önce, bunu neden yaptığımı anlayın:
Ve bu işaretçiyle, sınıfın içindeki bir nesnenin nereye aktarılacağı ile ne yapmalı.
Makrolara gelince, onlarla çalışmak çok daha kolay.
Ve bu işaretçiyle, sınıfın içindeki bir nesnenin nereye aktarılacağı ile ne yapmalı.
Makrolara gelince, onlarla çalışmak çok daha kolay.
Üzerinde herhangi bir yerde oluşturulan nesneye hitap edersiniz. Örneğimde, global düzeyde oluşturulan bir nesneye yönelik bir işaretçi yapıcıya iletilir, ancak bu sınıfın kendisi başka bir sınıfa (nesnenin oluşturulduğu) yuvalanabilir.
İşte makronuzu kullanmanın bir örneği:
Neyin ortaya çıkacağına bakın, netlik için parantez ekliyorum:
Sonuç olarak, derleyici için kesinlikle geçerli bir kod elde ettiniz, ancak programın davranışı amaçlanandan kategorik olarak farklı. Ve şimdi bir hata fark edeceğiniz bir gerçek değil, kod çalışıyor ve sonra aptalca terminale bakıp merak edeceksiniz: robot neden tüm depozito ile girdi ve hesabı birleştirdi?)))))
Makrolarda çok iyiyim ama bu yüzden makroları pek sevmiyorum (geliştiriciler, bir kez daha constexpr ve aynı zamanda SFINAE'ye soruyorum). Bu yüzden size tavsiyem, kodunuzdaki harfleri azaltmak için bunları kullanmayın. Bu, aslında, kısaltılmış bir mql versiyonunda bile güçlü bir araçtır, ancak çok disiplinli bir yaklaşım gerektirir.
Geliştiriciler, makrolar ve işlevler içinde sınırsız sayıda bağımsız değişken kullanma yeteneği ekler. Bu statik saçmalıktan bıktınız. Bir makro için 8 argüman nedir ve 108'e ihtiyacınız varsa o zaman en az 10 yapın. Ayrıca makrolarla yeni adlar üretmek zorunda kalmamak için makroları aşırı yüklemeyi mümkün kılın. Ayrıca organize ederlerse çok iyi olur.
#if makrosu
ancak programın davranışı, amaçlanandan kategorik olarak farklıdır. Ve şimdi bir hata fark edeceğiniz bir gerçek değil, kod çalışıyor ve sonra aptalca terminale bakıp merak edeceksiniz: robot neden tüm depozito ile girdi ve hesabı birleştirdi?)))))
Makrolarda çok iyiyim ama bu yüzden makroları pek sevmiyorum (geliştiriciler, bir kez daha constexpr ve aynı zamanda SFINAE'ye soruyorum). Bu yüzden size tavsiyem, kodunuzdaki harfleri azaltmak için bunları kullanmayın. Bu, aslında, kısaltılmış bir mql versiyonunda bile güçlü bir araçtır, ancak çok disiplinli bir yaklaşım gerektirir.
Hiçbir şey tahmin etmeyeceğim, işimi güvenilir bir şekilde yaparım.
m_data işaretçisiyle ne yapıyorsunuz? m_data öğesine erişiyor musunuz? Ve sana ne veriyor? Bunun burada olduğunu anlıyorum.
Sadece net değil (çok zor) neyi başarmaya çalışıyorsunuz?
Bu hat olsaydı ne olurdu
halka yazılacak
Sınıflar benim için karanlık bir orman. 2 yıl boyunca hala onlarla nasıl başa çıkacağımı anlamadım.
bir veritabanı tablosuna test sonuçlarının istatistiklerini yazmaya ihtiyaç vardır,
Veritabanı önceden oluşturuldu, ilgilenilen geçişleri EA ayarlarında sinput değişkenini açarak yazıyorum
DB:
Bu tabloya aşağıdaki kodla yazıyorum:
ENUM_STATISTICS numaralandırması yardımdaki gibi sıraya sahiptir, komut dosyası kontrol edilecek:
her şey çalışıyor, AMA kodun metni oldukça hacimli, yüksek bir yazım hatası olasılığı var, bu sorguyu veritabanına daha güvenilir bir şekilde nasıl alabilirim - asıl sorun StringFormat'a nasıl girileceğidir
bir veritabanı tablosuna test sonuçlarının istatistiklerini yazmaya ihtiyaç vardır,
Veritabanı önceden oluşturuldu, ilgilenilen geçişleri EA ayarlarında sinput değişkenini açarak yazıyorum
DB:
Bu tabloya aşağıdaki kodla yazıyorum:
ENUM_STATISTICS numaralandırması yardımdaki gibi sıraya sahiptir, komut dosyası kontrol edilecek:
her şey çalışıyor, AMA kodun metni oldukça hacimli, yüksek bir yazım hatası olasılığı var, bu sorguyu veritabanına daha güvenilir bir şekilde nasıl alabilirim - asıl sorun StringFormat'a nasıl girileceğidir
Tanımlamak için!!! (burada olağan aşırı yük gidecek olsa da)
Ve neden bu dize biçimine ihtiyacımız var?
Asla normal bir eklemeden daha hızlı değildir.... (Onlarca konser için metin dosyaları yaptım =)....
Bunu doğrudan bu normal işlev aracılığıyla yapmak önemliyse, sorun da net değil))
Ve neden bu dize biçimine ihtiyacımız var?
Asla normal bir eklemeden daha hızlı değildir.... (Onlarca konser için metin dosyaları yaptım =)....
bilmiyorum
Yardımı ve makaleyi okuyun, örnekler kullanarak veritabanına bir sorgu oluşturun
her şey çalışıyor gibi görünüyor, ancak bu kodu kısmen kullanırsam yazım hataları yapabileceğimden şüpheleniyorum
genel olarak, bu tasarım aptal görünüyor, bu yüzden onu nasıl daha kompakt hale getireceğimi ve onu mahvetmeyeceğimi soruyorum)))
bir veritabanı tablosuna test sonuçlarının istatistiklerini yazmaya ihtiyaç vardır,
Veritabanı önceden oluşturuldu, ilgilenilen geçişleri EA ayarlarında sinput değişkenini açarak yazıyorum
DB:
Bu tabloya aşağıdaki kodla yazıyorum:
ENUM_STATISTICS numaralandırması yardımdaki gibi sıraya sahiptir, komut dosyası kontrol edilecek:
her şey çalışıyor, AMA kodun metni oldukça hacimli, yüksek bir yazım hatası olasılığı var, bu sorguyu veritabanına daha güvenilir bir şekilde nasıl alabilirim - asıl sorun StringFormat'a nasıl girileceğidir
Unutmayın, öncelikle SQLite'de alan türleri isteğe bağlıdır ve yazım ve işaretleme konusunda endişelenmenize gerek yoktur. O sadece "Lite" değil
uzun bir sorgu 3-4-5'e bölünebilir :-)
BEGIN TRANSACTION
INSERT INTO myTable VALUES (...); --- тут можно получить PrimaryKey
UPDATE myTable .... ; --- обновить по Primary
UPDATE myTable ... ; --- ещё...
COMMIT ; --- это если все запросы удачны.. иначе ROLLBACK
bu eski hafızadan, yani sertifikada açıklığa kavuşturmak gerekiyor
bilmiyorum
Yardımı ve makaleyi okuyun, örnekler kullanarak veritabanına bir sorgu oluşturun
her şey çalışıyor gibi görünüyor, ancak bu kodu kısmen kullanırsam yazım hataları yapabileceğimden şüpheleniyorum
genel olarak, bu tasarım aptal görünüyor, bu yüzden onu nasıl daha kompakt hale getireceğimi ve onu mahvetmeyeceğimi soruyorum)))
Spesifik olarak, göreviniz şöyle bir şey olmalıdır:
Spesifik olarak, göreviniz şöyle bir şey olmalıdır:
Gözleme!
kesinlikle! diziler!
TEŞEKKÜR EDERİM!!!!!