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 sadece bir test dersi mi yoksa gerçekten kullanacak mısınız?
ikincisi , hala MT4 altında kendim için bile yazıyorum - test cihazında birkaç sembol üzerinde çalışmıyor, MT4'te yararlı bir şey görürsem MT4Orders'ın yardımıyla MT5'e geçeceğim - "yaratıcılığım" kontrol edildi bu kütüphane ile sorunsuz
ilk olarak, doğru OOP fikrini görmek istiyorum - bu yüzden ne olduğunu görmek için test ediyorum, her şey güzel hemoroid iken .... bir bakalım, zamanım var, bu yüzden yapmaya karar verdim kendim için egzersizler))))
Ana kodun başlangıcından önce başlatmanın en iyi yolu olmadığını biliyorum, daha doğrusu daha önce öyle düşündüm, ama kaç tanesini kontrol etmedim, kaç tane yeni yapı olduğunu, - her şey MQL'de bile her zaman mevcuttur küresel görünürlük düzeyinde, kaynakları gördüm, insanlar kodun en başında buhar banyosu yapmıyor ve şöyle yazıyor:
ve bu tür yanlış başlatmalar, yapıdan yapıya uzun yıllar boyunca çalışır, genel olarak geliştiriciler en çok şımarttı - çoğu insan))))
Not: burada, genel olarak, OOP kullanırken her zaman olduğu gibi, ana görev, onu oluşturan öğelerine doğru bir şekilde bölmek ve eldeki her şeyden miras almamaktır, şimdi metin hatası çıktısını nereye "koyacağımı" bilmiyorum - bu her yerde, herhangi bir sınıfta ve programın herhangi bir yerinde gereklidir, büyük olasılıkla @Vladimir Simakov kodunu yukarıda gösterdiği gibi bir temel sınıf oluşturmanız gerekecektir.
pp 1-3 her şey çözüldü, AMA .. Tamam, statik konusunda yardımcı oldular, bu yüzden bir sertifika olduğu için, en azından kararınızı haklı çıkarabileceğiniz bir şeyle, şimdi kod şöyle:
günlükte alınan 3 Cdeal örneği oluşturuldu:
...
şimdiye kadar her şey amaçlandığı gibi çalışıyor!
Ama orijinal versiyonun daha iyiydi. Bir kod satırını kurtarmak uğruna güvenilirliği feda etmeyin)
hangisi? - işte seçeneklerimde konunun zemini)))
ve evet kesinlikle haklısın!
not:
en basit durumda ve aynı zamanda en güvenilir olanıdır - OnInit()'te new aracılığıyla sınıfın bir örneğini oluşturduk - ve terminalin tüm ortam değişkenlerini hemen kopyaladık, ancak bu en iyi seçenek değil - bu örnekte ben yapıcıyı başlatırken hemen bir sipariş açmayı planlayın, o zaman sınıfın bu örneğinin silinmesi mümkündür, daha sonra muhtemelen yeniden oluşturulacaktır - burada zaten tekrarlanan çağrılar nedeniyle verimsizliğe dönüşüyor - yeniden yüklemeye başlıyorum terminal ortamı, yine bellek tüketiyor .... genel olarak, bu bu şekilde çözülemez
ZYZY: belki başka bir gün deneyeceğim ve sonunda @Vladimir Simakov örneğini temel alacağım - orada her şey çok açık
burada alanları bir kez sabit değerlerle başlatması gereken sınıfımı çizdim, her şey amaçlandığı gibi çalışıyor gibi görünüyor:
2 şeyi sevmiyorum:
1. SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP) çağrısını tekrarlıyorum - çünkü başlatma sırası belirtilmemiş, yani. önce VolumeSTEP'in başlatılacağı gerçeği değil, ancak o zaman GetDigitsInVolumeStep() çağrılacak
2. Statik int GetDigitsInVolumeStep() yöntemini kullanmaktan kurtulmak istiyorum - YouTube'da statik yöntemleri saf OOP'de kullanmanın iyi olmadığı yeterince video gördüm, bu yüzden yel değirmenleriyle savaşıyorum
videoya bağlantılar, temelde aynıdır https://youtu.be/lfdAwl3-X_c ve https://youtu.be/zME4SOCHT0I
Sevmediğim bu 2 noktayı farklı nasıl yeniden yazardım?
1. Bu işlevin çift çağrılmasında yanlış bir şey yoktur.
2. Statik fonksiyonların kullanımına karşı olanların en ufak bir argüman vermemeleri sizi rahatsız etmiyor mu?
Sadece kimseden video izlememek, kitap okumak daha iyidir.
2. Statik fonksiyonların kullanımına karşı olanların en ufak bir argüman vermemeleri sizi rahatsız etmiyor mu?
ve videonun uygulamadan hiçbir şeye karşılık gelmemesi beni destekleyen ilk kişisin, video hakkındaki fikrimi başka bir konuda yazdım - konuşmacı öğrencilerin sorularını bile cevaplayamadı
ve videonun uygulamadan hiçbir şeye karşılık gelmemesi beni destekleyen ilk kişisin, video hakkındaki fikrimi başka bir konuda yazdım - konuşmacı öğrencilerin sorularını bile cevaplayamadı
OOP'nin, herkesin kendi yolunda süpürdüğü bazı İnternet habercilerinin mantıksız varsayımlarını körü körüne takip etmek uğruna kendi yeteneklerinin kısıtlanması olduğunu düşünmüyorum.
OOP'nin, herkesin kendi yolunda süpürdüğü bazı İnternet habercilerinin mantıksız varsayımlarını körü körüne takip etmek uğruna kendi yeteneklerinin kısıtlanması olduğunu düşünmüyorum.
videoyu izlediyseniz, amacın .... olduğunu anlamalısınız.
Not: biraz sonra arayüzlerle biraz deneyeceğim, belki biraz "güzellik özü" ortaya çıkacaktır))))
Statik hakkındaki videosuna baktım, hepsi şöyle yazmak için:
Peki, statik üzerine bir sarmalayıcı yazmak bir sorun mu?
class Stateless_with_state { Stateless q; Data d; call() {q::call(d);} };
Ve şablonlar aracılığıyla açıkça daha verimlidir. İzleyicilerden gelen soruyu beğendim https://www.youtube.com/watch?v=75U9eefFYoU#t=33m25s
Not: biraz sonra arayüzlerle biraz deneyeceğim, belki biraz "güzellik özü" ortaya çıkacaktır))))
"OOP Pattern - Behavior Patterns -Strategy"nin çalışıp çalışmayacağını kontrol etti
2019.08.31 21:04:40.441 tst (EURUSD,H1) Strateji_1::Strateji_1
2019.08.31 21:04:40.442 tst (EURUSD,H1) Bağlam::Bağlam
2019.08.31 21:04:40.442 tst (EURUSD,H1) Strateji_1::Algoritma
2019.08.31 21:04:40.442 tst (EURUSD,H1) strateji_2::strateji_2
2019.08.31 21:04:40.442 tst (EURUSD,H1) Bağlam::Bağlam
2019.08.31 21:04:40.442 tst (EURUSD,H1) Strateji_2::Algoritma
bende sorunsuz çalışıyor
"OOP Pattern - Behavior Patterns -Strategy"nin çalışıp çalışmayacağını kontrol etti
2019.08.31 21:04:40.441 tst (EURUSD,H1) Strateji_1::Strateji_1
2019.08.31 21:04:40.442 tst (EURUSD,H1) Bağlam::Bağlam
2019.08.31 21:04:40.442 tst (EURUSD,H1) Strateji_1::Algoritma
2019.08.31 21:04:40.442 tst (EURUSD,H1) strateji_2::strateji_2
2019.08.31 21:04:40.442 tst (EURUSD,H1) Bağlam::Bağlam
2019.08.31 21:04:40.442 tst (EURUSD,H1) Strateji_2::Algoritma
bende sorunsuz çalışıyor
1. Yeni operatör bir işaretçi döndürür, elbette geliştiriciler örtük referans kaldırma ile kararlarını verdiler, bu nedenle sürümünüz çalışır, ancak belgelenmemiş şeylere karışmamak daha iyidir.
2. Tabii ki, elimizde C++ yok, ancak çok benzer, bu nedenle başlatma listeleri (verimliliği bilmiyorum) koşer.