alsu : Ayrıca, örneğin, A koşulunun ortalama olarak C'den daha sık ve C'nin B'den daha sık karşılandığını biliyorsak, bunları şu sırayla düzenlememiz gerekir: if(!a){if(! c)eğer {(!b) M=yanlış;}}
Bir koşulun yerine getirilme olasılığını hesaplama karmaşıklığıyla birleştirerek daha da hızlandırabilirsiniz: örneğin, yürütme olasılığının çarpımını hesaplama süresinin tersi ile ölçüt olarak alarak, önce şu koşulları kontrol etmelisiniz. büyük olasılıkla ve en az hesaplama karmaşıklığına sahip, yani belirlediğimiz kriterin en yüksek değerine sahip olanlar.
Bir koşulun yerine getirilme olasılığını hesaplama karmaşıklığıyla birleştirerek daha da hızlandırabilirsiniz: örneğin, yürütme olasılığının çarpımını hesaplama süresinin tersi ile ölçüt olarak alarak, önce şu koşulları kontrol etmelisiniz. büyük olasılıkla ve en az hesaplama karmaşıklığına sahip, yani belirlediğimiz kriterin en yüksek değerine sahip olanlar.
Onları uzun zamandır bu sırayla düzenledim. Ancak birden fazla şart birdenbire gerçekleşse bile, ilk ortaya çıkan şey gerçekleşmiş olacaktır.
Ve önemli değil çünkü. daha sonra tüm varyantlar için ortak olan nihai koşullar reçete edilir.
Bir koşulun yerine getirilme olasılığını hesaplama karmaşıklığıyla birleştirerek daha da hızlandırabilirsiniz: örneğin, yürütme olasılığının çarpımını hesaplama süresinin tersi ile ölçüt olarak alarak, önce şu koşulları kontrol etmelisiniz. büyük olasılıkla ve en az hesaplama karmaşıklığına sahip, yani belirlediğimiz kriterin en yüksek değerine sahip olanlar.
Alexey, eylemlerin gerçekleştirilme hızı üzerindeki etkilerine bağlı olarak koşulları değiştirme teklifinize bir kez daha cevap veriyorum. Ve işte bulduğum şey! En karmaşık hesaplamalar, piyasanın çeşitli gerekli verilerini ve her tikte açık pozisyonları kontrol eden fonksiyonlar kadar yavaşlamaz. Forum üyelerinden birinin tavsiyesi üzerine bu işlevleri zaten yeterince basitleştirdim, benim durumumda gereksiz tüm şeyleri attı, bu da eylemlerini neredeyse ikiye katladı. "Her" kene üzerinde çalışma seçimine gelince, daha önce sadece bu modun gerçekten olası sonuçlara daha fazla yaklaşıklık verdiğine ikna olmuştum. Böylece, bu işlevleri tüm hesaplamalardan, kontrol göstergelerinden ve mevcut fiyattan sonra koyarak, hız iki katına çıktı, bu da şimdi test cihazında yarım yıl boyunca 7 dakika ve buna bağlı olarak yılda 14 dakika. Önceki koşullar izin veriyorsa gerekli kontrolleri yapan işlevleri reddedemem. Şimdi kodu && olarak değiştirerek optimize etmeye çalışacağım ) if (.Kod optimizasyonunda başka ne gibi olasılıklar olduğunu bilmekten memnuniyet duyacağım.Yardımlarınız için herkese ve herkese teşekkürler!
Operatörlerin hiçbiri uygun değil. Belki if(A || B || C || D || E) Action; olmadan başka bir yol vardır.
Aklıma takılan ve daha mantıklı bir çözüm bulamadığım konunun öneminden dolayı moderatörlerin genel konuya soru göndermemelerini rica ediyorum! Teşekkür ederim!
if(A || B || C || D || E) Eylem; Bunu yapardımif((A + B + C + D + E) > 0) Action; Eylemin en az 3 sinyale ihtiyacı varsa0 yerine 2 yazın
A, B, C, D fonksiyonlar ise, o zaman en kolaydan başlayarak karmaşıklığı saymanız ve sürekli olarak gerçeği kontrol etmeniz gerekir. Bu daha hızlı çalışacaktır.
FION : A, B, C, D fonksiyonlar ise, o zaman en kolaydan başlayarak karmaşıklığı saymanız ve sürekli olarak gerçeği kontrol etmeniz gerekir. Bu daha hızlı çalışacaktır.
Katıldığınız için teşekkürler! A, B, C ... işlevler değil, işlevleri içeren ve içermeyen koşullar ve ayrıca birbirini dışlayan koşullar! Ve zaten bir eylemi tetikleyen diğer koşullara geçmek için bir koşul yeterlidir. Yalnızca işlevler olsaydı, sorun olmazdı:
çift A = function1() ; çift B = işlev2(); çift C = function3(); çift D = function4(); çift E = fonksiyon5(); ve ayrıca Pako tarafından önerildiği gibi:
if((A + B + C + D + E) > 0)
{Byevs veya Sells'i kapatmak için ayna benzeri yönü olan diğer koşul} Eylem;ANCAK:
Ve A = koşul1, B = koşul2, C = koşul3, D = koşul4, E = koşul5'e ihtiyacım var. Mümkün mü değil mi? Yoksa imkansız mı ve hepsi bu!
Ayrıca, örneğin, A koşulunun ortalama olarak C'den daha sık ve C'nin B'den daha sık karşılandığını biliyorsak, bunları şu sırayla düzenlememiz gerekir: if(!a){if(! c)eğer {(!b) M=yanlış;}}
Bir koşulun yerine getirilme olasılığını hesaplama karmaşıklığıyla birleştirerek daha da hızlandırabilirsiniz: örneğin, yürütme olasılığının çarpımını hesaplama süresinin tersi ile ölçüt olarak alarak, önce şu koşulları kontrol etmelisiniz. büyük olasılıkla ve en az hesaplama karmaşıklığına sahip, yani belirlediğimiz kriterin en yüksek değerine sahip olanlar.
Hesaplamaları şu şekilde de optimize edebilirsiniz:
Ya da belki şunu deneyin:
Teşekkür ederim!
Bir koşulun yerine getirilme olasılığını hesaplama karmaşıklığıyla birleştirerek daha da hızlandırabilirsiniz: örneğin, yürütme olasılığının çarpımını hesaplama süresinin tersi ile ölçüt olarak alarak, önce şu koşulları kontrol etmelisiniz. büyük olasılıkla ve en az hesaplama karmaşıklığına sahip, yani belirlediğimiz kriterin en yüksek değerine sahip olanlar.
Onları uzun zamandır bu sırayla düzenledim. Ancak birden fazla şart birdenbire gerçekleşse bile, ilk ortaya çıkan şey gerçekleşmiş olacaktır.
Ve önemli değil çünkü. daha sonra tüm varyantlar için ortak olan nihai koşullar reçete edilir.
Bir koşulun yerine getirilme olasılığını hesaplama karmaşıklığıyla birleştirerek daha da hızlandırabilirsiniz: örneğin, yürütme olasılığının çarpımını hesaplama süresinin tersi ile ölçüt olarak alarak, önce şu koşulları kontrol etmelisiniz. büyük olasılıkla ve en az hesaplama karmaşıklığına sahip, yani belirlediğimiz kriterin en yüksek değerine sahip olanlar.
Operatörlerin hiçbiri uygun değil. Belki if(A || B || C || D || E) Action; olmadan başka bir yol vardır.
Aklıma takılan ve daha mantıklı bir çözüm bulamadığım konunun öneminden dolayı moderatörlerin genel konuya soru göndermemelerini rica ediyorum! Teşekkür ederim!
if(A || B || C || D || E) Eylem; Bunu yapardım if((A + B + C + D + E) > 0) Action; Eylemin en az 3 sinyale ihtiyacı varsa 0 yerine 2 yazın
hız ölçmedim
if(A || B || C || D || E) Eylem; Bunu yapardım if((A + B + C + D + E) > 0) Action; Eylemin en az 3 sinyale ihtiyacı varsa 0 yerine 2 yazın
hız ölçmedim
Hızlanma muazzam olacak. Çözüm çok orijinal.
Hızlanma muazzam olacak. Çözüm çok orijinal.
A, B, C, D fonksiyonlar ise, o zaman en kolaydan başlayarak karmaşıklığı saymanız ve sürekli olarak gerçeği kontrol etmeniz gerekir. Bu daha hızlı çalışacaktır.
Katıldığınız için teşekkürler! A, B, C ... işlevler değil, işlevleri içeren ve içermeyen koşullar ve ayrıca birbirini dışlayan koşullar! Ve zaten bir eylemi tetikleyen diğer koşullara geçmek için bir koşul yeterlidir. Yalnızca işlevler olsaydı, sorun olmazdı:
çift A = function1() ; çift B = işlev2(); çift C = function3(); çift D = function4(); çift E = fonksiyon5(); ve ayrıca Pako tarafından önerildiği gibi:
if((A + B + C + D + E) > 0)
{Byevs veya Sells'i kapatmak için ayna benzeri yönü olan diğer koşul} Eylem; ANCAK:
Ve A = koşul1, B = koşul2, C = koşul3, D = koşul4, E = koşul5'e ihtiyacım var. Mümkün mü değil mi? Yoksa imkansız mı ve hepsi bu!
Örneğin:
Ne deneyeceğimi bilmiyorum!
Ve A = koşul1, B = koşul2, C = koşul3, D = koşul4, E = koşul5'e ihtiyacım var. Mümkün mü değil mi?! Yoksa imkansız mı ve hepsi bu!