[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 353

 
Zhunko :

İlk önce optimize etmeniz gerekiyor. MQL4 hızı çoğu görev için uygundur.

MT4 klasöründe DLL için bir örnek var.


Bir komut dosyasının yürütülmesinin birkaç saat sürdüğü bireysel görevleri kastediyorum. Optimizasyondan kastınız nedir?
 
Pekala, birkaç saat çok fazla, genellikle hesaplama algoritmasını yeniden çalışarak, tekrarlayan eylemleri döngünün dışına taşıyarak, yavaş işlem yapılarından, çok boyutlu dizilerden vb. kaçınarak hesaplamaları daha hızlı hale getirme seçenekleri vardır.
 
splxgf :
Birkaç saat çok fazla, genellikle hesaplama algoritmasını yeniden işleyerek, tekrarlayan eylemleri döngü dışına taşıyarak, yavaş işlem yapılarından, çok boyutlu dizilerden vb. kaçınarak hesaplamaları daha hızlı hale getirme seçenekleri vardır.

Ya da belki şu soruya bir cevabınız var: açık siparişlerin özelliklerini çok boyutlu bir dizide mi yoksa karakteristik başına bir tane olmak üzere birkaç tek boyutlu dizide mi depolamak daha iyi? Bunu ve bunu denedim. Hızda herhangi bir fark hissetmedim. En iyi yol nedir (siparişler farklıdır, hem piyasada hem de beklemede, mb hatta çok yönlü, kilit)?

Muhtemelen "sorunun durumuna göre" mi diyorsunuz?

 
splxgf :
Birkaç saat çok fazla, genellikle hesaplama algoritmasını yeniden işleyerek, tekrarlayan eylemleri döngü dışına taşıyarak, yavaş işlem yapılarından, çok boyutlu dizilerden vb. kaçınarak hesaplamaları daha hızlı hale getirme seçenekleri vardır.

Zor değilse, bu tür bir optimizasyon örneği gösterebilirsiniz. Örneğin, Timsah göstergesinin tüm dönemlerini göz önünde bulundurun 1-100 (7 periyot) arasında iAlligator, matematiksel işlemlerin kendisi basittir (toplama, çıkarma).

 
snail09 :

Ya da belki şu soruya bir cevabınız var: açık siparişlerin özelliklerini çok boyutlu bir dizide mi yoksa karakteristik başına bir tane olmak üzere birkaç tek boyutlu dizide mi depolamak daha iyi? Bunu ve bunu denedim. Hızda herhangi bir fark hissetmedim. En iyi yol nedir (siparişler farklıdır, hem piyasada hem de beklemede, mb hatta çok yönlü, kilit)?

Muhtemelen "sorunun durumuna göre" mi diyorsunuz?


Ben rastlayana kadar, bilmiyorum. Ancak kodunuz doğruysa ve yapması gerekeni yapıyorsa, bence hangi dizideki fark nedir.
 
khorosh :
Dış değişkeninde tarih belirleyebilen ve bu tarihten önce açılan tüm emirlerin özkaynak hesaplanırken dikkate alınmadığı bir özkaynak göstergesi var mı?


şunlara bakın... Begin_Monitoring ve Draw_Begin...

Dosyalar:
 
FelixFX :

Bir komut dosyasının yürütülmesinin birkaç saat sürdüğü bireysel görevleri kastediyorum. Optimizasyondan kastınız nedir?
Bu, kodu daha hızlı çalışacak şekilde değiştirmek anlamına gelir. MQL4'ün, hesaplamaları birkaç kez hızlandırabileceğinizi bilerek özellikleri vardır. Kodunuz olmadan neyin optimize edilebileceğini söylemek imkansız.
 
Zhunko :
Bu, kodu daha hızlı çalışacak şekilde değiştirmek anlamına gelir. MQL4'ün, hesaplamaları birkaç kez hızlandırabileceğinizi bilerek özellikleri vardır. Kodunuz olmadan neyin optimize edilebileceğini söylemek imkansız.

Örneğin, Timsah iAlligator göstergesinin 1-100 (7 değişen parametre) arasındaki tüm dönemlerini göz önünde bulundurun, matematiksel işlemlerin kendileri basittir (toplama, çıkarma - örneğin, maksimum ve minimum fiyatlar arasındaki farkın toplamını alabilirsiniz) kapanış fiyatı tüm gösterge çizgilerinden daha yüksek olan her çubuk).
 
FelixFX :

Ben rastlayana kadar, bilmiyorum. Ancak kodunuz doğruysa ve yapması gerekeni yapıyorsa, bence hangi dizideki fark nedir.
Her iki seçenek de doğrudur. Bu yüzden sordu. "Siparişlerinizi" nasıl takip ediyorsunuz? Paylaşmak.
 
FelixFX :

Zor değilse, bu tür bir optimizasyon örneği gösterebilirsiniz. Örneğin, Timsah göstergesinin tüm dönemlerini göz önünde bulundurun 1-100 (7 periyot) arasında iAlligator, matematiksel işlemlerin kendisi basittir (toplama, çıkarma).

Örneğin, son iki yılda fiyatın verilen seviyeleri kaç kez geçtiği bir görev vardı.

1. Her seviyeyi alabilir ve iki yıllık verileri görüntüleyebilirsiniz. Maliyetler: çubuk sayısını seviye sayısıyla çarpın.

2. Ayrı bir düzey dizisi oluşturabilirsiniz. Ve dizinin gerekli öğelerini kontrol ederek ve artırarak tüm çubuklardan geçmek yeterlidir. Bu durumda, hesaplamalar daha hızlı olacaktır.