Çoklu kullanım hakkında daha fazla bilgi - sayfa 4

 
meat :

Pekala, şöyle söyleyelim, listelediğiniz şeylerin hiçbiri mql5 araçlarıyla ilgili değil :) Ve bu sorunun nasıl çözüleceği (bypass) ile ilgili değildi. Her zaman bir çıkış yolu bulabilirsiniz, buna hiç şüphe yok. Ve konuşma, saptırmak zorunda kalmamak için neden mql5'e uygun işlevselliği eklemediğinizle ilgili.

MQL5 ihtiyacınız olan her şeye sahiptir, sadece nasıl kullanılacağını öğrenmeniz yeterlidir.

Hesaplamaların bir kısmını göstergeye aktarın ve EA'dan çalıştırın.

Ve hiç kimse 2 düzine (iyimser olarak) kullanıcı için düzenli paralelleştirme yapmayacaktır.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
TheXpert :
Yani çoklu kullanım için komut dosyaları var. Ve test cihazında gerekli değil

Bir uzmandan komut dosyası nasıl çalıştırılır?

 
komposter :

Hesaplamaların bir kısmını göstergeye aktarın ve EA'dan çalıştırın.

Yine, bana teflerle dans etmekten bahsediyorsun. Normal uygulama ile ilgiliydi.

Ve hiç kimse 2 düzine (iyimser olarak) kullanıcı için düzenli paralelleştirme yapmayacaktır.

Başlangıçta bana MQL5, mql4'ün aksine az çok kalifiye programcılar için bir dil olarak konumlandırılmış gibi geldi. Bu, algoritmayı optimize etme, birkaç iş parçacığına paralel hale getirme konusunun oldukça günlük bir gereklilik olması gerektiği anlamına gelir. Bu nedenle konunun en başında bu noktaya dikkat çektim. Ve Renat nedense buna çok acı bir tepki verdi.

Buradaki birçok kişinin önerdiği gibi, optimizasyon sorununu sürekli olarak tek bir yerden çözmek, yapmak istediğiniz şey değil.

Ayrıca en başta onlardan düzenli paralelleştirme yapmalarını istemediğimi söyledim. WinApi kullanarak her şeyi kendim paralel hale getirebiliyorum. Gerekli olan tek şey işlevin adresidir. Bu yüzden sadece fonksiyon işaretçileri eklemek istedim. Tabii ki, __stdcall yönergesini desteklemek de arzu edilir, ancak bu da isteğe bağlıdır, gerekli manipülasyonları kendi başınıza yapabilirsiniz.

İşlev işaretçileri aslında çok kullanışlı bir şeydir. Bunları iş parçacığı oluşturmak için kullanmak, birçok kullanımdan yalnızca biridir. Aynı zamanda, örneğin, çeşitli asenkron işlemlerde bir geri çağırma işlevi ayarlamak için de kullanılırlar. Ek olarak, DLL'nize aktarırken son derece yararlı olacaklar, bu da DLL ile onu içe aktaran Uzman Danışman arasındaki bağlantıyı basitleştiriyor, yani. aslında tam bir entegrasyon var. Yürütme sırasında DLL doğrudan MQL işlevini çağırabilir ve ondan gerekli bazı bilgileri alabilir. Ve şimdi, bunu yapmak için, bir Uzman Danışmanın başlatılmasını tetikleyen bir tür olay (örneğin bir kene) oluşturmanız gerekir, bu da daha sonra gerekli bilgileri DLL'ye aktaracaktır... Genel olarak, ekstra hemoroidler ve zaman kaybı

 
Çoklu kullanım hakkında.
  1. Dile çoklu iş parçacığı eklemek, çoklu iş parçacığını destekleyen özel bir API oluşturmayı içerir.
    bu da böyle bir destek olmadan API'den daha yavaş çalışacaktır, umarım bu açıktır (kilitler, vb.).
  2. MQL5 derleyici optimize ediciyi yeniden yazmamız gerekecek - aslında, optimizasyonları kötüleştiriyor.
  3. Bu, ince kullanıcı hatalarının yeridir.
Ve son olarak, çok az sayıda kullanıcının buna ihtiyacı yoktur ve destek eksikliği atlanabilir.


İşlev işaretçileri hakkında.
Soru, MQL5 kodu içinde kullanımlarına açıktır.
Ne yazık ki, işaretçiyi DLL'ye geçirmek işe yaramayacak - x86 / x64 çapraz platform uğruna, çağrı kuralını feda etmek zorunda kaldık.
 
mql5 :
Çoklu kullanım hakkında.

Bir kişi teorik akıl yürütme uğruna basitçe troller (bana öyle geldi ki, dilin ... olduğunu düşündüm) ve dilin uygulamalı doğasını veya çoklu okumanın sonuçlarını anlamıyor.

Aslında paralellik için gerçek bir görevi bile yok.

 

mql5 :
 ...Ну и последнее, нужно это не очень малому числу пользователей и отсутствие поддержки можно обойти .

Script kullanma fikrini beğendim ama bunları Expert Advisor'dan nasıl çağırabilirim?

 
DC2008 :

Script kullanma fikrini beğendim ama bunları Expert Advisor'dan nasıl çağırabilirim?

Ne yazık ki, MQL5'ten komut dosyalarının başlatılması sağlanmamıştır.

Ancak, bir uzman yerine bir komut dosyası eklerseniz, grafik şablonu aracılığıyla bir yol vardır.
Böyle bir şablonu yeni bir grafiğe uygularken, bir komut dosyası başlatılır (ancak bu, bir gün olmayabilecek "belgelenmemiş bir özellik"tir)...

Senin görevin nedir?
Bir Etkinlik aldıktan sonra işini yapacak olan bir sonraki çizelgede çalışan bir Uzman Danışman neden hazır olmasın?
EX5 dosyalarının korunması nedeniyle yeni bir MQL5 programının başlatılması pahalıdır.
 
mql5 :
Ne yazık ki, MQL5'ten komut dosyalarının başlatılması sağlanmamıştır.

Ancak, bir uzman yerine bir komut dosyası eklerseniz, grafik şablonu aracılığıyla bir yol vardır.
Böyle bir şablonu yeni bir grafiğe uygularken, bir komut dosyası başlatılır (ancak bu, bir gün olmayabilecek "belgelenmemiş bir özellik"tir)...

Senin görevin nedir?
Bir Etkinlik aldıktan sonra işini yapacak olan bir sonraki çizelgede çalışan bir Uzman Danışman neden hazır olmasın?
EX5 dosyalarının korunması nedeniyle yeni bir MQL5 programının başlatılması pahalıdır.

Analiz edilmesi gereken binlerce grafik nesnem var: gereksiz olanları silin, özellikleri değiştirin, istatistikleri hesaplayın, vb. Bir tabloda bile frenler var, peki ya onlardan birkaç tane varsa?

 
Grafik nesneler için çoklu kullanım teorik olarak bile yardımcı olmaz.

Grafik nesnelerle çalışma sorunu algoritmik olarak çözülmelidir. Nesneleri değiştirmek ve okumak için komutları dikkatli ve karıştırmayın. Örneğin 1000 defa okuyup 1000 defa yazmak 1000 defa okuyup yazmaktan çok daha hızlı olacaktır.
 
mql5 :
Çoklu kullanım hakkında.
  1. Dile çoklu iş parçacığı eklemek, çoklu iş parçacığını destekleyen özel bir API oluşturmayı içerir.
    bu da böyle bir destek olmadan API'den daha yavaş çalışacaktır, umarım bu açıktır (kilitler, vb.).
  2. MQL5 derleyici optimize ediciyi yeniden yazmamız gerekecek - aslında, optimizasyonları kötüleştiriyor.
  3. Bu, ince kullanıcı hatalarının yeridir.
Ve son olarak, çok az sayıda kullanıcının buna ihtiyacı yoktur ve destek eksikliği atlanabilir.


İşlev işaretçileri hakkında.
Soru, MQL5 kodu içinde kullanımlarına açıktır.
Ne yazık ki, işaretçiyi DLL'ye geçirmek işe yaramayacak - x86 / x64 çapraz platform uğruna, çağrı kuralını feda etmek zorunda kaldık.
Genişletilmiş cevap için teşekkürler. Şimdi her şey az çok netleşti. Bir DLL'ye işaretçi geçirmenin imkansızlığıyla ilgili tek şey, anladığım kadarıyla sistem DLL'lerini mi kastettiniz (yani, __stdcall kuralı)? Ve kendi DLL dosyamda başka bir anlaşma önerebilirim. Yoksa herhangi bir standardı karşılamayan size özel mi?
Neden: