Optimizasyon sırasında tek seferlik dizi hesaplaması - sayfa 2

 
fxsaber :
Kaynak ekle. Nasıl olduğunu sorma. Kaynak yazılmamış.
Bir dizi oluşturmak için üçüncü taraf yazılımı?
 
forexman77 :

Bu yüzden bir ikilem yaşadım, bunu nasıl yapacağım ki bir kez dosyadan okumak için onu bir dizi ile doldurun ve tüm geçişlerde bu diziyi kullanın.

Optimizasyon süresini azaltmak için buna ihtiyacım var, çünkü dizi her zaman değişmeyecektir ve her seferinde hesaplamak pahalıdır.

Örneğin, tüm verileri bir diziye hazırlayacak ve toplayacak bir komut dosyası yazın ve ardından bitmiş diziyi bir dosyaya yazın. Ardından, Expert Advisor'da başlatırken dosyadan bu diziyi okuyun. Dosya, danışmanın her çalışmasında ihtiyaç duyduğunuz kadar kullanılabilir.
Benim düşünceme göre, size zaten böyle bir çözüm teklif edildi. Sana uymuyor mu?
 
forexman77 :
Bir dizi oluşturmak için üçüncü taraf yazılım?
Evet, aynı MQL5, optimizasyondan önce ayrı bir geçişten geçer.
 
BlackTomcat :
Örneğin, tüm verileri bir diziye hazırlayacak ve toplayacak bir komut dosyası yazın ve ardından bitmiş diziyi bir dosyaya yazın. Ardından, Expert Advisor'da başlatırken dosyadan bu diziyi okuyun. Dosya, danışmanın her çalışmasında ihtiyaç duyduğunuz kadar kullanılabilir.
Benim düşünceme göre, size zaten böyle bir çözüm teklif edildi. Sana uymuyor mu?

Evet, mesele bu, uymuyor. Geçişlerin optimizasyonunda 15.000 parça var ve sadece bir kez hesaplamam ve sonraki geçişlerde sadece diziye başvurmam gerekiyor.

Yani, dosyada önceden hesaplanmış verilerim var: bu zaman ve seviyedir ve bunlar benim tarafımdan önceden bilinmektedir. İnternette her seferinde dosyayı okumak bile, her geçişte çok pahalıdır (birkaç bin satır). MQL5'i bilmiyorum ama forumdaki MQL4'te init programının her geçişte çalıştığını yazmışlar.

 
forexman77 :
Ve her geçişte bir İnternette okumak gerekli olacak mı?
Evet. Zor veya pahalı değil. İkili modu kullanın. Dosyanın tamamını değil, istenilen konumdan okumak mümkündür.
 
forexman77 : Ve init'te her seferinde dosyayı okumak bile, her geçişte çok pahalıdır (birkaç bin satır). MQL5'i bilmiyorum ama forumdaki MQL4'te init programının her geçişte çalıştığını yazmışlar.
Biliyor musun, bir dosyadan dizi okumanın maliyetini abarttığını düşünüyorum. Windows uyku modundan her uyandığında, tüm uygulamaların durumu da dahil olmak üzere, uykuya dalma sırasındaki sabit sürücüdeki durumunun bir görüntüsünü geri yükler. Orada birkaç nesne ve bilgi olduğunu düşünüyor musunuz? Ve bu şekilde uyanmak ne kadar sürer?
IMHO'yu abartıyorsunuz.
 
forexman77 :

Evet, mesele bu, uymuyor. Geçişlerin optimizasyonunda 15.000 parça var ve sadece bir kez hesaplamam ve sonraki geçişlerde sadece diziye başvurmam gerekiyor.

Yani, dosyada önceden hesaplanmış verilerim var: bu zaman ve seviyedir ve bunlar benim tarafımdan önceden bilinmektedir. İnternette her seferinde dosyayı okumak bile, her geçişte çok pahalıdır (birkaç bin satır). MQL5'i bilmiyorum ama forumdaki MQL4'te init programının her geçişte çalıştığını yazmışlar.

C/C++ dünyasından klasik bir numara: dosyanızdan statik bir dizi oluşturabilir/dönüştürebilirsiniz (sadece metin: double arr[100500]={1,2,3....} ) ve sadece #include yoluyla dahil edebilirsiniz .

 
BlackTomcat :
Biliyor musun, bir dosyadan dizi okumanın maliyetini abarttığını düşünüyorum. Windows uyku modundan her uyandığında, tüm uygulamaların durumu da dahil olmak üzere, uykuya dalma sırasındaki sabit sürücüdeki durumunun bir görüntüsünü geri yükler. Orada birkaç nesne ve bilgi olduğunu düşünüyor musunuz? Ve bu şekilde uyanmak ne kadar sürer?
IMHO'yu abartıyorsunuz.

Maliyetler daha net. Değişmeyen gösterge ayarlarına ve aynı değerlere sahip, ancak bir diziye dökülen, bir dosyaya önceden yazılmış iki seçenek vardır.

Dosyalı varyantın hesaplanması, Uzman Danışmandaki göstergenin hesaplanmasından çok daha uzun sürer.

Sadece diziyi bir kez kaydetmenin ve optimizasyondaki tüm geçişler için kullanmanın ve böylece algoritmayı boşaltmanın bir yolu olabileceğini düşündüm.

 
Maxim Kuznetsov :

C/C++ dünyasından klasik bir numara: dosyanızdan statik bir dizi oluşturabilir/dönüştürebilirsiniz (sadece metin: double arr[100500]={1,2,3....} ) ve sadece #include yoluyla dahil edebilirsiniz .

Bunu yaparsanız, yeni bir geçişe geçerken dizi korunur mu?
 
forexman77 :

Maliyetler daha net. Değişmeyen gösterge ayarlarına ve aynı değerlere sahip, ancak bir diziye dökülen, bir dosyaya önceden yazılmış iki seçenek vardır.

Dosyalı varyantın hesaplanması, Uzman Danışmandaki göstergenin hesaplanmasından çok daha uzun sürer.

Sadece diziyi bir kez kaydetmenin ve optimizasyondaki tüm geçişler için kullanmanın ve böylece algoritmayı boşaltmanın bir yolu olabileceğini düşündüm.

ONCE hesaplayın ve bitmiş diziyi sonuçlarla birlikte bir dosyaya kaydedin. Ardından, başlatma sırasında dosyadan bitmiş diziyi okuyun ve hemen kullanın. Yeniden hesaplamaya gerek yok. Her şeyi önceden hesapladınız ve kaydettiniz. Neden tekrar sayayım? :)