Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Ve sonra, alttaki 4 parantezin ne anlama geldiğini gözlerinizle araştırın.
Bu arada, yuvalama iki seviyeden fazla olduğunda çok gerginim. Kodu fonksiyonlara yayarak asla böyle yazmamaya çalışıyorum.
Ve iki seviyeli yuvalama olsa bile - her zaman her kapanış parantezinden sonra - hangi bloğu gömdüğü hakkında yorumlar yazarım (diyelim ki, döngünün başlığını çoğaltıyorum).
Tarza gelince, MT5 için tarihsel bir konum seçme kodum (belirtilen sihir, sembol, belirtilen tarih aralığı ile):
Aynı zamanda, history sınıfının kendisi, CTradeHistoryI soyut arayüzünün bir mirasçısıdır:
Gerekli geçmişi seçtikten sonra bileşenlerini (MT5 için konumlar veya MT4 için siparişler) yeniden hesaplayabilir ve herhangi bir bileşene soyut bir arayüz şeklinde bir arayüz alabilirsiniz:
MT4 için - bu arayüzlerden miras alınan karşılık gelen geçmiş sınıfları vardır - böylece çapraz platform da sağlanır - danışmanın nerede çalıştığını bulması gerekmez, geçmişle ilgili tüm çalışmalar soyut arayüzler aracılığıyla yapılır.
Bu tarzda her zaman sabit olan ve asla değişmeyen fonksiyonlar yazmayın.
Bunları kısaca yazın, zaten kimse onlara bakmaz ve satırlar bunun yarısını alır.
Bu işlevler değişmediğine göre, neden oraya bir sürü gereksiz kaşlı ayraç koydunuz? Onları kaldırın ve her şey kendi kendine küçülecektir. Aksi takdirde, örneğiniz saçma görünüyor: kodu kendiniz bulaştırdınız ve sonra kısaltmak için koltuk değneği icat ettiniz.
Katılıyorum, 3 satır daha kesebilir ve kodu kısaltabilirsiniz, ancak amaç kullanım için kodu düzenlemek değildi, aslında benim bile değil, kısaltmak ve bu tür beş işlevi bir tanesine koyabilirsiniz. ekran, bir değil. Bundan sonra programların okunması daha kolay oluyor ve 150 defa kaydırma yapmanıza gerek kalmıyor. Ve dosyanın boyutu küçülür.
iyi iş, beğendim, ama OOP'yi sevmiyorum ve onsuz yapmaya çalışıyorum. Tıpkı iş parçacığı ayırmalı işlemcileri sevmedikleri gibi (örnek 4 çekirdek ve 8 iş parçacığı). Bölünmenin ve herhangi bir sanallaştırmanın, çekirdekteki iş parçacıklarının bölünmesi veya koddaki işlevlerin sanallaştırılması olsun, uygulanması için bir performans kaybı ve makine zamanı kaybı olduğu açık olmalıdır.
Katılıyorum, 3 satır daha kesebilir ve kodu kısaltabilirsiniz, ancak amaç kullanım için kodu düzenlemek değildi, aslında benim bile değil, kısaltmak ve bu tür beş işlevi bir tanesine koyabilirsiniz. ekran, bir değil. Bundan sonra programların okunması daha kolay oluyor ve 150 defa kaydırma yapmanıza gerek kalmıyor. Ve dosyanın boyutu küçülür.
Samimi olarak.
Çalışma ekranı 27"
Yazıyı tekrar okumayacağım, alıntı yapacağım: " Bu tarzda her zaman sabit olan ve asla değişmeyen fonksiyonlar yazmayın "
Platform yayınlandığında bir kez yazılan ve gelecekte asla değişmeyecek bir fonksiyona neden gözünüzü dikiyorsunuz? Parti büyüklüğünü,sipariş sayısını ve tipik olanları almak için işlevlerdeki kodu sık sık değiştiriyor/düzenliyor musunuz? O zaman neden 32" bir monitörün 3 ekranına uzatalım?
PS Kod eklenmiştir, kod tabanından alınmıştır.
Karşı soru)) MyFunc.mqh dosyasında bu tür işlevlerim var, sıkıştırmak için en ufak bir neden göremiyorum. Neden, diskte 10-20 Kb tasarruf edin? Ve dürüst olmak gerekirse, bu kod stili beni kötü hissettiriyor))
Karşı soru)) MyFunc.mqh dosyasında bu tür işlevlerim var, sıkıştırmak için en ufak bir neden göremiyorum. Neden, diskte 10-20 Kb tasarruf edin? Ve dürüst olmak gerekirse, bu kod stili beni kötü hissettiriyor))
benim için kod anlaşılır, kısa, operasyonda hızlı olmalı, her koşulda hatasız çalışmalı.
Samimi olarak.
Karşı soru)) MyFunc.mqh dosyasında bu tür işlevlerim var, sıkıştırmak için en ufak bir neden göremiyorum. Neden, diskte 10-20 Kb tasarruf edin? Ve dürüst olmak gerekirse, bu kod stili beni kötü hissettiriyor))
Yani sayın: 1000 Uzman Danışman x 10 kb = 10 Mb - zaten tasarruf hakkında düşünmek için bir neden var))
Karşı soru)) MyFunc.mqh dosyasında bu tür işlevlerim var, sıkıştırmak için en ufak bir neden göremiyorum. Neden, diskte 10-20 Kb tasarruf edin? Ve dürüst olmak gerekirse, bu kod stili beni kötü hissettiriyor ))
Ben de, ama bir şekilde, uzun zaman önce, kodun asla bakılmadığı, asla düzeltilemeyeceği ve düzeltilemeyeceği yerlerde kodun kompakt olması gerektiği sonucuna vardım.
Dahil edilenler arasında özel kodun dağıtılması, bir dosyayı başka bir terminale sürüklemek veya paylaşmak için başka bir ek baş ağrısı yaratır, bir dosyayı değil birkaç dosyayı sürüklemeniz gerekir. Tabii ki, eklentileri tüm terminallere aktarabilirsiniz, ancak birinde bir şeyi düzelttiyseniz veya eklediyseniz, hepsini yenisiyle değiştirmeniz gerekir.
Uzman Danışmanlar ve göstergeler o kadar küçüktür ki, bir şeyi programın gövdesinden uzaklaştırmak anlamsızdır. Veya daha doğrusu, küçük değiller, tek dosya, bu, sınıf ve inklüzyonlar olmadan yapamayacağınız 10.000 sayfalık bir site değil. Üstelik artık yapılar var ve bunlar kompakt, %100 verimli kodlar yazmak için oldukça yeterli.
Bu arada, yuvalama iki seviyeden fazla olduğunda çok gerginim. Kodu fonksiyonlara yayarak asla böyle yazmamaya çalışıyorum.
Ve iki seviyeli yuvalama olsa bile - her zaman her kapanış parantezinden sonra - hangi bloğu gömdüğü hakkında yorumlar yazarım (diyelim ki, döngünün başlığını çoğaltıyorum).
Tarza gelince, MT5 için tarihsel bir konum seçme kodum (belirtilen sihir, sembol, belirtilen tarih aralığı ile):
Aynı zamanda, history sınıfının kendisi, CTradeHistoryI soyut arayüzünün bir mirasçısıdır:
Gerekli geçmişi seçtikten sonra bileşenlerini (MT5 için konumlar veya MT4 için siparişler) yeniden hesaplayabilir ve herhangi bir bileşene soyut bir arayüz şeklinde bir arayüz alabilirsiniz:
MT4 için - bu arayüzlerden miras alınan karşılık gelen geçmiş sınıfları vardır - böylece çapraz platform da sağlanır - danışmanın nerede çalıştığını bulması gerekmez, geçmişle ilgili tüm çalışmalar soyut arayüzler aracılığıyla yapılır.
Lezzetli görünüyor, TRACE_*** ve ASSERT'i de görebilir miyim?
bir dosyayı başka bir terminale sürüklemek veya paylaşmak için bir dosyayı değil, birkaç dosyayı sürüklemeniz gerekir. Elbette, eklentileri tüm terminallere aktarabilirsiniz, ancak birinde bir şeyi düzelttiyseniz veya eklediyseniz, hepsini yenisiyle değiştirmeniz gerekir.