Algoritmaların işleyişindeki farktan değil, hesaplama hızından bahsettiğimiz için basit fonksiyonları karşılaştırmamız gerekiyor. Ekli göstergeler, hesaplamalarının doğruluğu burada tartışılan hala göstergelerdir. Basit bir işlevi almanız ve onu iki şekilde uygulamanız gerekir - özel bir gösterge olarak ve kodda çağrılan bir işlev olarak. Ben zaten benzer bir kontrol yaptım ve bunun hakkında yazdım - MQL4'teki göstergeleri hesaplama hızı hakkında
Örneklerde iki fark görüyorum: test bir fonksiyon olarak adlandırılıyor (doğrudan koda eklenmek yerine) ve testin içeriği daha zayıf (dizilerle çalışma yok). Yani, iCustom kullanmanın tavsiye edilebilirliği sorusunun cevabı, belirli duruma bağlı görünmeye devam ediyor. PS Örneğimde, iki seçenek için işlem sayısında çok önemli bir fark yoktur - sonuçta "servis kodu" bir kez çalışır ve döngüler aynıdır.
1. Prosedürel programlama tarzı, verimlilik açısından yalnızca modüler ve nesne yönelimli olandan sonra ikinci sıradadır. Bu nedenle, hesaplama algoritmasının ayrı bir fonksiyona kaldırılması doğaldır.
2. Neden yerleşik bir işlevde dizilerle çalışmalısınız? Kodda yerleşik olarak bulunan özel bir işlevi çağırmanın ve iCustom () aracılığıyla harici bir işlevi çağırmanın maliyeti arasındaki farktan bahsediyoruz.
Rosh : 1. Prosedürel programlama tarzı, verimlilik açısından yalnızca modüler ve nesne yönelimli olandan sonra ikinci sıradadır. Bu nedenle, hesaplama algoritmasının ayrı bir fonksiyona kaldırılması doğaldır.
2. Neden yerleşik bir işlevde dizilerle çalışmalısınız? Kodda yerleşik olarak bulunan özel bir işlevi çağırmanın ve iCustom () aracılığıyla harici bir işlevi çağırmanın maliyeti arasındaki farktan bahsediyoruz.
1. Bu, büyük projeler için tam olarak nihai verimliliktir. Sadece hız açısından yetersiz. 2. Benzer şekilde. Beni ilgilendiren nihai sonuçtur. MQL durumunda, bu genellikle geliştirme süresi artı test cihazındaki test süresidir. Gerçek bir hesapla bir terminal yüklerken ekstra saniye beklemek de çok pahalıya mal olabilir. Sinirler açısından, herkes ticaret konusunda doğru görüşe sahip değil :)
Gördüğünüz gibi, ayrı bir işlevin kullanımı oldukça haklı - bir milyar geçiş döngüsü için zaman farkı sadece bir saniyedir. Ama kodlamak ne kadar kolay!
İşte test.mq4 göstergesi
ve işte test algoritmasını hesaplama hızını ölçen bir komut dosyası
iCustom() ve test() çağrısı yoluyla.
PS Örneğimde, iki seçenek için işlem sayısında çok önemli bir fark yoktur - sonuçta "servis kodu" bir kez çalışır ve döngüler aynıdır.
2. Neden yerleşik bir işlevde dizilerle çalışmalısınız? Kodda yerleşik olarak bulunan özel bir işlevi çağırmanın ve iCustom () aracılığıyla harici bir işlevi çağırmanın maliyeti arasındaki farktan bahsediyoruz.
1. Prosedürel programlama tarzı, verimlilik açısından yalnızca modüler ve nesne yönelimli olandan sonra ikinci sıradadır. Bu nedenle, hesaplama algoritmasının ayrı bir fonksiyona kaldırılması doğaldır.
2. Neden yerleşik bir işlevde dizilerle çalışmalısınız? Kodda yerleşik olarak bulunan özel bir işlevi çağırmanın ve iCustom () aracılığıyla harici bir işlevi çağırmanın maliyeti arasındaki farktan bahsediyoruz.
2. Benzer şekilde. Beni ilgilendiren nihai sonuçtur. MQL durumunda, bu genellikle geliştirme süresi artı test cihazındaki test süresidir. Gerçek bir hesapla bir terminal yüklerken ekstra saniye beklemek de çok pahalıya mal olabilir. Sinirler açısından, herkes ticaret konusunda doğru görüşe sahip değil :)
Ve işte senaryonun sonuçları.
Gördüğünüz gibi, ayrı bir işlevin kullanımı oldukça haklı - bir milyar geçiş döngüsü için zaman farkı sadece bir saniyedir. Ama kodlamak ne kadar kolay!
İşte lineer regresyon parametrelerini bulma konusunda daha fazlası. Buradan alınan - Lineer Regresyon Kanalı
Ve burada açıklanan algoritmayı uygulayan bir işlev var (belki birisi için kullanışlı olacaktır):
Fonksiyon şöyle çağrılır:
Danimarka Krallığı'nda bir şeyler ters gidiyor.
Bir önceki mesajımı silmek zorunda kaldım. Algoritmada bir hata var.
Birçok kişinin bu prosedürü kullandığını biliyorum ama .... YARDIM hatasının nedenini bulamıyorum.
İşte senaryo. A ve B katsayıları iki kez hesaplanır.
İşte sonuç
kesişim = -3.33333333 eğim = 5.000000000
kesişim = -1102.16914108 eğim = 0.00000091
Ve burada da, ancak MathCad'de hesaplanmıştır. Mavi - sonuçlar eşleşir, kırmızı - hayır (.
Matcad'de bunlar yerleşik işlevlerdir, bu nedenle büyük olasılıkla MT4'te bir hata var ama nerede?
Danimarka Krallığı'nda bir şeyler ters gidiyor.
Bir önceki mesajımı silmek zorunda kaldım. Algoritmada bir hata var.
Birçok kişinin bu prosedürü kullandığını biliyorum ama .... YARDIM hatasının nedenini bulamıyorum.
İşte senaryo. A ve B katsayıları iki kez hesaplanır.
İşte sonuç
kesişim = -3.33333333 eğim = 5.000000000
kesişim = -1102.16914108 eğim = 0.00000091
Ve burada da, ancak MathCad'de hesaplanmıştır. Mavi - sonuçlar eşleşir, kırmızı - hayır (.
Matkad'da bunlar yerleşik işlevlerdir, bu nedenle büyük olasılıkla MT4'te bir hatadır, ancak nerede?
İşte Excel 2007'nin ürettiği şey
Bu nedenle, Matkad'ı kontrol etmeniz gerekebilir.
Lineer regresyon uygulamalarından biri olan polinomun derecesi 20'dir, hesaplama noktalarının sayısı ve başlangıç noktasının ofseti belirtilir.
çıkış, kanal derinliği noktalar olarak ayarlanarak gerçekleştirilir..derinlik 0 ise, sadece regresyon eğrisinin kendisi görüntülenir