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
"Apotheosis", kendisinin nasıl çalıştığını söyleyemediği fxsaber'ın bir ifadesini düşünüyorum, sadece "kod tekrar tekrar test edildi ve çalışıyor" dedi. Bana göre bu olmamalı:
Bu kod, otfFilingType siparişinin doldurulup doldurulamayacağını kontrol eder ve strSymbol sembolünde mevcutsa, aksi takdirde doğrudur.
Nasıl çalıştığını tam olarak anlayamıyorum. Ve ben sadece fxsaber'ın otoritesine güveniyorum.
Belki biri açıklar?
Anlamak için, bu hantal ifadeyi geri dönüşten bileşenlere ayrıştırmak yeterlidir.
"Son, araçları haklı çıkarır" örneğiniz
bu arada, bu kod sadece spagetti gibi görünüyor, ancak bunun şu anda kod tabanındaki muhtemelen en faydalı yazar olduğu ve ben de onun kodlarını olduğu gibi kullandığım gerçeği göz önüne alındığında, başkasının eleştirmesine izin verin
bu arada, bu kod sadece spagetti gibi görünüyor, ancak bunun muhtemelen şu anda kod tabanındaki en yararlı yazar olduğu ve ben de onun kodlarını olduğu gibi kullandığım gerçeği göz önüne alındığında, başkasının eleştirmesine izin verin
Eleştiriden bahsetmiyorum, ne verebileceğini anlamaya çalışıyorum .... ama konuşmanın gösterdiği gibi ve @fxsaber açıkça itiraf etti - baş ağrısından başka bir şey değil
Not: Küçük canavarın orijinal versiyonunun daha görsel görünmesi kuvvetle muhtemeldir;)
Not: Küçük canavarın orijinal versiyonunun daha görsel görünmesi kuvvetle muhtemeldir;)
ZIP'den alınmıştır (ilk sürümü içerir).
Ancak bundan sonra, giderek daha fazla işlevsellik gerekliydi ve kod yavaş yavaş etle kaplandı. Doldurma işlevi ile farklıydı. Orada hiçbir şey büyümedi, hemen yazıldı.
Derleyicinin tam olarak nasıl yapacağını sadece kendisi bilir. Modern derleyicilerde yerleşik çarpıcı buluşsal yöntemler vardır. Ortalama kodlayıcıya uyum sağlarlar ve neye ihtiyacı olduğunu zaten daha iyi bilirler. Bir derleyici için yapılacak en iyi şey, kısa fonksiyonlarla basit, anlaşılır kod yazmaktır. Derleyicinin birçok düğüm fonksiyonundan oluşan kaynak kod grafiğini analiz ederek nihai programı oluşturması çok daha kolay ve verimlidir. Bu sadece performans üzerinde olumlu bir etkiye sahip olacaktır, çünkü gerekli işlevler doğru yerlerde sıralanacaktır.
Kesinlikle doğru.
MQL5 hakkında konuşursak, 10-20-30 yıl önceki "optimizasyon" yöntemlerini unutabiliriz. Mümkün olduğunca okunabilir kod yazmanız gerekir. Kalitenin ölçüsü, hacker çanları ve ıslıkları ve saf gösterişler değil, odur.
Niye ya?
Evet, çünkü derleyici 5-10 döngü kod yeniden sıralamasından geçecek, düzinelerce optimizasyon modelinin kullanımından bahsetmeden, grafiklerin sonlarını şaşırtıcı derecede net ve kısa bir şekilde gösterecektir.
MQL5 derleyicisi, insanların zil ve ıslıklarla +%2 hız yapma girişimlerini komik buluyor.
Sonuçta bu bir sanat eseri. Montajcı komutunun 4 çağrısı için 8 kök hesaplanır. Bir aramada iki çift sayı hesaplandı.İlgilenenler için, matematiksel hesaplamalar dallar olmadan yapılır ve bir komut için (128 bit veri) aynı anda iki kök hesaplanır
Bu kod, aşağıdaki montajcı SSE koduna dönüşür:
Genel sonuç: MQL5'teki matematik, mükemmel optimizasyon sayesinde kazanır. Kaybeden diziler değil, matematik kazanır.
Nedenmiş ?
Tam tersi, iki "if" ile - "veya" operatöründen çok daha kolay.
Açıkçası, önce bir koşulu izlemek ve yürütme durumunda işlevden ayrılmak ve ardından başka bir koşulu kontrol etmek ve yürütme durumunda da bırakmak daha kolaydır. Mantıksal bir "veya" ("ve" ile kolayca karıştırılabilen) aracılığıyla karmaşık bir koşulun sonucu olarak ne olduğunu anlamak ve her iki iade seçeneğini de takip etmek.
Aşağıda "bunun gerekçesinin hata ayıklama olduğunu" okumak oldukça komik, çünkü bu, bu tür kodun çok daha anlaşılır olduğu anlamına geliyor (aksi halde neden hata ayıklamada?).
"Apotheosis", kendisinin nasıl çalıştığını söyleyemediği fxsaber'ın bir ifadesini düşünüyorum, sadece "kod tekrar tekrar test edildi ve çalışıyor" dedi. Bana göre bu olmamalı:
Bu kod, otfFilingType siparişinin doldurulup doldurulamayacağını kontrol eder ve strSymbol sembolünde mevcutsa, aksi takdirde doğrudur.
Nasıl çalıştığını tam olarak anlayamıyorum. Ve ben sadece fxsaber'ın otoritesine güveniyorum.
Belki biri açıklar?
Bir keresinde oturdum ve aşamalı olarak ayırdım, bir parça kağıt ile bir kaleme ihtiyacım var gibi görünüyor)
Bu analiz neden yararlıydı - Numaralandırmaların yapısı değişirse her şeyin bozulacağını anladım) çünkü. numaralandırma değerlerinin tamsayı oranları kullanılır (ki, numaralandırma fikrine göre, sadece kapsüllenmelidir). Bundan kendim kaçınmaya çalışıyorum, maksimum ilişki az ya da çok. WinAPI ile uğraşanlar için muhtemelen tanıdık gelecektir.
Anlamak için, bu hantal ifadeyi geri dönüşten bileşenlere ayrıştırmak yeterlidir.
Evet, denedim. Ancak, sökmek için yeterli motivasyon yoktu ...
Kesinlikle doğru.
MQL5 hakkında konuşursak, 10-20-30 yıl önceki "optimizasyon" yöntemlerini unutabiliriz. Mümkün olduğunca okunabilir kod yazmanız gerekir. Kalitenin ölçüsü, hacker çanları ve ıslıkları ve saf gösterişler değil, odur.
Aynen öyle. Bu sonuca uzun zaman önce vardım. Ama derleyicinin daha iyisini yapacağını düşündüğüm için değil. Ve koddaki sorunların ana kaynağı kişinin kendisi olduğu için, yani kodun mümkün olduğunca basit ve şeffaf olması için mümkünse kodu yazmanız gerekir.
Bunu "şeffaf bir şekilde" yapmanın imkansız olduğu durumlarda, neden böyle olduğu ve başka türlü değil, ayrıntılı yorumlar gereklidir.
Pekala, derleyici... bunu yeterince verimli bir şekilde yapmasa bile, programın çalışmasının bazı yönlerini hesaba katmamanız nedeniyle potansiyel bir hatadan daha az sorun teşkil eder.
Kod çok basit ve kısadır ( açıklama ). FP'ye yazarsanız, karşılaştırmak ilginç olacaktır.
Rica ederim. FP stilinde C#:
FP elbette çok çarpıktır (FP kodlayıcısı çarpık kodlayıcıyı alt FP dilinde C# yazdığı için) Ama amaç modern OOP YaP'larda bunun FP'de mümkün olduğunu göstermektir. Sınırlı tabi ki bu F# veya Haskell değil ama kimse FP tarzında yazmayı yasaklamıyor. Değişmezlik, daha yüksek dereceli işlevler, kapatmalar, eşlemeler vb. kullanın. - her şey mümkün, lütfen. Sadece bundan gelen kod bir nedenden dolayı ideal hale gelmiyor.
ps Kodun genel yapısı kasıtlı olarak orijinali taklit eder. FP'de iyi bir şekilde, karmaşık nesneler ve foreach bir Haritayı taklit etmeden tamamen farklı bir şekilde gerekli olsa da, sanatçı elinden gelenin en iyisini yaptı.
Rica ederim. FP stilinde C#:
Bunun bir alışkanlık ve sözdizimi bilgisi meselesi olduğunu anlıyorum, ancak orijinalin yazarı olmama rağmen kodu girmek benim için çok zor.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
OOP'a ilginç bir bakış
fxsaber , 2021.01.29 13:39
Ayak bezi.
Resmi olarak, bu OOP'dir. Ama en ilkel kısmı. Ancak, onsuz yaşayamazdı. Belki aptalca, beyin başka bir şeye dönüştü ve ben bunu perçinledim.