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
Benim tarzımdan bir örnek mi?
Örneğin bu:
100 fonksiyonunuz olduğunu ve her birinin böyle bir kayıt döndürdüğünü hayal edin. Bu girdiler arasında bir hata arıyorsunuz. Ne kadar arayacaksın?
Örneğin bu:
100 fonksiyonunuz olduğunu ve her birinin böyle bir kayıt döndürdüğünü hayal edin. Bu girdiler arasında bir hata arıyorsunuz. Ne kadar arayacaksın?
Özellikle bu tarzda yazmak, bir ekranda birkaç düzineden fazla işlevi görüntülemenize izin verdiği ve bu da kodla çalışmayı kolaylaştırdığı için birkaç dakikadan fazla aramazdım.
Örneğin bu:
100 fonksiyonunuz olduğunu ve her birinin böyle bir kayıt döndürdüğünü hayal edin. Bu girdiler arasında bir hata arıyorsunuz. Ne kadar arayacaksın?
İnanın böyle yazdığımda üslup ya da özlülük ilkesi için değil, benim için gerçekten daha kolay olduğu için.
En basit getiriyi getirdin. Dürüst olmak gerekirse, en ufak bir sorunu olduğunu anlamıyorum.
C++ kodunu okuyamadığımı itiraf ediyorum çünkü onu hiç bilmiyorum. Ama insanlar üzerine yazıyor. Yani bu sadece bir bilgisizlik meselesi.
İnanın böyle yazdığımda üslup ya da özlülük ilkesi için değil, benim için gerçekten daha kolay olduğu için.
En basit getiriyi getirdin. Dürüst olmak gerekirse, en ufak bir sorunu olduğunu anlamıyorum.
C++ kodunu okuyamadığımı itiraf ediyorum çünkü onu hiç bilmiyorum. Ama insanlar üzerine yazıyor. Yani bu sadece bir bilgisizlik meselesi.
Belki de kodun basitliği hakkında farklı fikirlerimiz var.
Programlama konusunda harika bir profesyonel olduğunuzu anlıyorum. Ancak, her şeyde maksimum üretkenlik peşinde koşarken, emek verimliliğini de unutmamak gerekir. Kod okunabilirliği ile başlar. Okunabilirliği nedeniyle kodu sıkıştırma arzusunu neyin haklı çıkardığı benim için net değil, ancak bunun büyük (bağımsız) projelerde tamamen kabul edilemez olduğu gerçeği benim için tamamen açık.
Dürüst olacağım - fazla okunamaz olduğu için C++'a dayanamıyorum. Varlığından kolayca kaçınılabilecek bir varlık yığını için. Ve sadece daha iyi olacak. Daha geniş.
not. Geliştirme aşamasında, kodun okunabilirlik nedeniyle değil, en iyi çözümler nedeniyle sıkıştırılması gerektiğini ve mümkün olduğunca okunabilir bırakılması gerektiğini düşünüyorum. Kodu anlama hızı, kişinin kendi işinin verimliliği için büyük önem taşımaktadır.
ZYY. İplik harika. Teşekkür ederim.
Bir tamsayının dışında ne elde ettiğinizi düşünün.
Bu yüzden LONG_MAX'ı kontrol edin - çifti uzunluğa dönüştürmeden önce bile olmalıdır. Yuvarlama işlevinin bir tam sayıya uymayan değerler için tasarlanmadığı açıktır. Ve bu sorunu değiştirmez.
Eğer fonksiyon bir double döndürürse ve bunu uzuna çeviririz, o zaman aynı taşma tehlikesiyle karşı karşıya kalırız.
Kişisel olarak, yuvarlamadan hemen önce, sınır değerleri için her zaman bir onaylama kontrolüm vardır, ayrıca, program mantığına göre, her zaman bir tamsayı için maksimum değerden daha büyük bir değerin asla dönüşüme gelemeyeceğini garanti ederim.
Özellikle bu tarzda yazmak, bir ekranda birkaç düzineden fazla işlevi görüntülemenize izin verdiği ve bu da kodla çalışmayı kolaylaştırdığı için birkaç dakikadan fazla aramazdım.
Nedense bundan şüpheliyim.
Yürütme türünü döndüren işlevimin gerçek kodu (kod fxsaber tarafından önerildi , bunun için ona çok minnettarım):
İşlev gerçekten iyi çalışıyor. Defalarca kontrol ettim hata yok. Ama bu korkunç dönüşte sonucun nasıl oluştuğunu - bence oldukça iyi bir deneyim yaşamama rağmen anlamadım. Üstelik fxsaber , kendisinin bunu hatırlamadığı sorusuna kendisi cevap verdi.
Vitaly, senin için zor değilse bu kodun nasıl çalıştığını bize anlat ve benzer bir tarzda "birkaç dakika içinde anla"!
Return ifadesinde "parantezleri açardım", tüm "soru sorularını" if'lerle değiştirir ve bulunan değerleri mantıksal bir "veya" ile döndürürdüm. Şahsen, "soru" operatörü beni rahatsız ediyor. Kodu, if ile tamamen aynı şekilde verir, ancak okunabilirliği çok daha kötüdür.
Nedense bundan şüpheliyim.
Yürütme türünü döndüren işlevimin gerçek kodu (kod fxsaber tarafından önerildi , bunun için ona çok minnettarım):
İşlev gerçekten iyi çalışıyor. Defalarca kontrol ettim hata yok. Ama bu korkunç dönüşte sonucun nasıl oluştuğunu - bence oldukça iyi bir deneyim yaşamama rağmen anlamadım. Üstelik fxsaber , kendisinin bunu hatırlamadığı sorusuna kendisi cevap verdi.
Vitaly, senin için zor değilse bu kodun nasıl çalıştığını bize anlat ve benzer bir tarzda "birkaç dakika içinde anla"!
Return ifadesinde "parantezleri açardım", tüm "soru sorularını" if'lerle değiştirir ve bulunan değerleri mantıksal bir "veya" ile döndürürdüm. Şahsen, "soru" operatörü beni rahatsız ediyor. Kodu, if ile tamamen aynı şekilde verir, ancak okunabilirliği çok daha kötüdür.
Kodu yorumlamayacağım, ancak bir şekilde şablonumdan bir parça yayınladım ve benzer bir yaklaşım var. İki monitör kaydırmasında ifs ile ayak örtülerini germeyi sevmiyorum
emek verimliliğini unutmayınız. Kod okunabilirliği ile başlar.
Şu anda hiç anlamadığım kodumun bir örneği. Ve anlamak için birçok faktörü çok iyi incelemek gerekir.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Init() ve DeInit() yürütme sırası
fxsaber , 2017.04.14 23:35
Gördüğünüz gibi, kod/stil çok basit. Ancak, aynı kodu yeniden yazabildiğimde bir hatayı veya yokluğunu tespit edebileceğim. Bu gerçekten çok uzun zaman alacak çünkü. sorunu tam olarak anlamanız gerekir.
Bu nedenle, ilke, karmaşık şeylerin oluşturma aşamasında yalanması (stres testleri yazılır) ve mqh'yi birbirine bağlayan basit bir biçimde kullanılmasıdır. Gördüğünüz gibi, anlamanın karmaşıklığı her zaman stil veya özlülük tarafından belirlenmez.
Tamamen dil yapılarının başka bir örneği daha var - TypeToBytes. Anlamanın tamamen farklı bir zorluk seviyesi var. Ve orada, makrolar olmadan solup giderdim. Yani makro kullanımından dolayı oldukça hızlı bir şekilde kaynak koda giriliyor. Çünkü makrolar çoğu zaman kısalık için değil, anlamak içindir.
Ve birçok basit ama unutulabilir tuzakları hesaba katmanız gerektiğinde başka bir durum daha var. MT4Orders'ta olan budur. Bu nedenle, bazı satırlara sadece kendilerine yönelik yorumlar eşlik ediyor. Kodunuzu anlamanıza yardımcı olur.
Ancak bunların hepsinin dahil olmanız gerekmeyen mqh olduğunu unutmayın. Ve araç kodu çok basit mqh kullanılarak yazılmıştır. Normal iHigh işlevlerinin kaynak koduna bakmak için tırmanmazsınız. Ama aslında o bir canavar. Sen sadece onları kullan. Aynı şey kütüphaneler için de yapılmalıdır. Kullanım için aynı Genel İncil, tam olarak anlaşılmasını gerektirmez.
MT4 Uzman Danışmanları ve MT5 bağlantı noktaları için KB'ye bakın. MT5 bağlantı noktalarının anlaşılması zor bir iştir. Sadece kısalık kokusu değil (kod orijinalinden birçok kat daha büyüktür), aynı zamanda mqh dosyalarında dikkate alınmayan MT5 tuzaklarının tıkır tıkır tıkır tıkır tıkır tıkır işlemesine de neden olur.
Kodu yorumlamayacağım, ancak bir şekilde şablonumdan bir parça yayınladım ve benzer bir yaklaşım var. İki monitör kaydırmasında ifs ile ayak örtülerini germeyi sevmiyorum
Bu durumda, fonksiyonları kullanmak akıllıca olur.
Ve kodu yorumlamamış olmanız, nasıl çalıştığını hemen anlayamadığınızı da söylüyor. Burada parantezlerin dikkatli bir analizi, bu "sorular" ve mantıksal "veya" gereklidir. Ancak böyle bir "birikmeye", programın "darboğazında" kullanılacak daha verimli bir kod verdiğinde, çok sınırlı durumlarda izin verilir. Bu durumda, bir yürütme türü elde etmek hiçbir şekilde bir "darboğaz" olamaz ve böyle bir kod burada istenmez. Sadece fxsaber'ın yetkisine ve çoklu öz denetimlere dayanarak kullanıyorum. Ancak bu bir istisnadır. Kural olarak, kendim detaylı olarak anlamadığım kodu kullanmam.
İşlev gerçekten iyi çalışıyor. Defalarca kontrol ettim hata yok. Ama bu korkunç dönüşte sonucun nasıl oluştuğunu - bence oldukça iyi bir deneyim yaşamama rağmen anlamadım. Üstelik fxsaber , kendisinin bunu hatırlamadığı sorusuna kendisi cevap verdi.
Bu dönüşle ilgili değil. Aynı mantığı if-else şeklinde yazarsanız artık bu anlayışa sahip olmayacağım. "Desteksiz dolgu" sorunu ele alındığında ve çok derinlemesine çalışıldığında durum tam olarak budur. Bunu yapmak için, çok sayıda stres kodu yazmanız, farklı torus sunucularında çok sayıda hesap açmanız ve tüm sembollerin üzerinden geçmeniz gerekir. Farklı bayrak kombinasyonları arasında desenler bulun. Ve son olarak, tüm tabloları tek bir ortak paydada toplayın. Bu "hatırlamıyorum".
Sorunun artık oluşmaması ve güvenle unutulması sağlandı. Bir zamanlar yazdığınız koda geri dönmek zorunda kalmamanız harika. Çalışır - ana şey.