MQL'de asenkron ve çok iş parçacıklı programlama - sayfa 37

 

std::async'in neden bu kadar yavaş olduğunu anlıyorum. Gerçek şu ki, linux + gcc / clang'ım var, async'in arkasında iş parçacığı havuzu yok, her yeni görev için her seferinde aptalca yeni bir iş parçacığı başlatılıyor. Kafamı karıştıran şey, art arda oluşturulan ve hemen yok edilen iki iş parçacığının aynı kimliğe sahip olması:

 void f() {
   cout << this_thread::get_id() << endl;
}

int main()
{
   thread t1{f};
   t1. join ();

   thread t2{f};
   t2. join ();
   return 0 ;
}
// cout: 140448079447808
// cout: 140448079447808

Windows + msvc üzerindeki zaman uyumsuz test, gcc'nin 10 iş parçacığı başlattığı testte, msvc'nin 6 (4 çekirdekli işlemci), yani. Bu, görev için yeni bir iş parçacığının aptalca bir lansmanı değil, açıkça bir tür kuyruk var.

Sonuç: az çok yeterli zaman uyumsuz yalnızca Windows'ta (iş parçacığı havuzu aracılığıyla).

В моём случае это точно, так как понял что пул статичный по количеству потоков, мне это не подходит.

Havuz statik değildir ve boyutu değiştirilebilir. Ancak async() üzerinde çok fazla kontrolünüz varsa, gördüğünüz gibi, standart uygulamayı bile garanti etmez (iş parçacığı havuzu veya değil) ve bir havuz varsa, bunun üzerinde hiçbir etkiniz yoktur ( derleyici havuz için 1 iş parçacığı ayırmak istiyor bile size sormayacak).

Ancak yalnızca Windows altında yazarsanız, prensipte async kullanabilirsiniz (şimdi buna karşı olumsuz bir tavrım olmasına rağmen).

Not: neden bir iş parçacığı havuzu olmadan zaman uyumsuzluğa ihtiyacınız var, hiç anlamıyorum ...

 
Vict :

std::async'in neden bu kadar yavaş olduğunu anlıyorum. Gerçek şu ki, linux + gcc / clang'ım var, async'in arkasında iş parçacığı havuzu yok, her yeni görev için her seferinde aptalca yeni bir iş parçacığı başlatılıyor. Kafamı karıştıran şey, art arda oluşturulan ve hemen yok edilen iki iş parçacığının aynı kimliğe sahip olması:

Windows + msvc üzerindeki zaman uyumsuz test, gcc'nin 10 iş parçacığı başlattığı testte, msvc'nin 6 (4 çekirdekli işlemci), yani. Bu, görev için yeni bir iş parçacığının aptalca bir lansmanı değil, açıkça bir tür kuyruk var.

Sonuç: az çok yeterli zaman uyumsuz yalnızca Windows'ta (iş parçacığı havuzu aracılığıyla).

Havuz statik değildir ve boyutu değiştirilebilir. Ancak async() üzerinde çok fazla kontrolünüz varsa, gördüğünüz gibi, standart uygulamayı bile garanti etmez (iş parçacığı havuzu veya değil) ve bir havuz varsa, bunun üzerinde hiçbir etkiniz yoktur ( derleyici havuz için 1 iş parçacığı ayırmak istiyor bile size sormayacak).

Ancak yalnızca Windows altında yazarsanız, prensipte async kullanabilirsiniz (şimdi buna karşı olumsuz bir tavrım olmasına rağmen).

Not: neden bir iş parçacığı havuzu olmadan zaman uyumsuzluğa ihtiyacınız var, hiç anlamıyorum ...

Deneyin sonuçlarını ve yeni bilgileri dikkate alarak, MQL'de çoklu kullanım ihtiyacına ilişkin fikriniz değişti mi?
 
Реter Konow :
Deneyin sonuçlarını ve yeni bilgileri dikkate alarak, MQL'de çoklu kullanım ihtiyacına ilişkin fikriniz değişti mi?

Eh, burada async kanatlı - tembeller için üst düzey bir sarmalayıcı. Genel olarak çoklu kullanıma karşı değilim.

µl'de çoklu iş parçacığı kullanacak mıyım? Hayır, yapmayacağım. Peter, piyasayı geçtim ve dürüst olmak gerekirse, güçlü bir dile sahip kapalı bir ekosistemle pek ilgilenmiyorum. Neden başka bir C++ oluşturalım (ki bu kolay bir iş değil)? En "girişimci"nin " kaseleri " kesinlikle piyasadan satması için mi? Görev bu.

 
Vict :

Eh, tembeller için üst düzey bir sarmalayıcı olan async kullanıyorum. Genel olarak çoklu kullanıma karşı değilim.

µl'de çoklu iş parçacığı kullanacak mıyım? Hayır, yapmayacağım. Peter, piyasayı geçtim ve dürüst olmak gerekirse, güçlü bir dile sahip kapalı bir ekosistemle pek ilgilenmiyorum. Neden başka bir C++ oluşturalım (ki bu kolay bir iş değil)? En "girişimci" nin "kaseleri" kesinlikle marka aracılığıyla satması için t? Görev bu.

Eh, muhtemelen tam tersi. Öyle ki en müteşebbisler “ kase ”den başka bir şey satarlar. Sonuçta, ciddi araçlar gerektirmeyen "kaseler". Yeni güçlü uygulamalar ortaya çıkarsa, o zaman belki algoritmik ticaretteki "kase-parazitliği" azalacak ve profesyonel bir yaklaşımın değeri geçerli olacaktır. Elbette emin değilim ama belki...
 
Vict :

µl'de çoklu iş parçacığı kullanacak mıyım? Hayır, yapmayacağım.

peki, soruya en az bir samimi cevap: neden MQL görevlerinde çoklu kullanım?

Ben, yanılmıyorsam 5 kez bunun neden gerekli olduğunu sordum, cevaplar hiç dile getirilmedi, çoklu kullanım üzerine yansımaları NS öğrenme ile birleştirme girişimleri oldu, ama bence "geçmiş"

Peter Konow'un fotoğrafı.
Eh, muhtemelen tam tersi. Böylece en girişimci olanlar "kase" dışında bir şey satarlar. Sonuçta, ciddi araçlar gerektirmeyen "kaseler".

Peter! Düşük yeterlilik nedeniyle yüksek sesle açıklama yapma yeteneğiniz var!

Yanılmıyorsam, ticaret Uzman Danışmanları yazma becerisine sahip değilsiniz, hatta bir seferde yalnızca bir göstergeyi açıp/kapatsanız bile ve şimdi, yalnızca artıda geçmiş üzerinde bir Uzman Danışman ticareti oluşturmanın olmadığını söylüyorsunuz. ciddi araçlar gerektirir?

En az bir ticaret uzmanı yazmaya çalışın - sizi heyecanlı maceralarla dolu bir dünya bekliyor!

))))

 
Igor Makanu :

peki, soruya en az bir samimi cevap: neden MQL görevlerinde çoklu kullanım?

Ben, yanılmıyorsam 5 kez bunun neden gerekli olduğunu sordum, cevaplar hiç dile getirilmedi, çoklu kullanım üzerine yansımaları NS öğrenme ile birleştirme girişimleri oldu, ama bence "geçmiş"

Peter! Düşük yeterlilik nedeniyle yüksek sesle açıklama yapma yeteneğiniz var!

Yanılmıyorsam, ticaret Uzman Danışmanları yazma becerisine sahip değilsiniz, hatta bir seferde yalnızca bir göstergeyi açıp/kapatsanız bile ve şimdi, yalnızca artıda geçmiş üzerinde bir Uzman Danışman ticareti oluşturmanın olmadığını söylüyorsunuz. ciddi araçlar gerektirir?

En az bir ticaret uzmanı yazmaya çalışın - sizi heyecanlı maceralarla dolu bir dünya bekliyor!

))))

Konu dışı konuya girmek istemiyorum ama yetkinliğiniz düşük olduğu için yüksek sesle açıklama yapma yeteneğiniz de var. Bu durumda, benim yeteneklerimi ve deneyimimi bilmiyorsunuz. Hiç gösterge yazmadım, doğru ama uzmanlar yazdım ve birçoğunu yaptım. Ve benim gelişmelerimi ezmesi gereken MQL'deki Sharp hakkında ne düşünüyorsunuz? Ve yaklaşımımla ciddi bir şey yapamamam ve her şeyin benim için kötü çalışması vb.? Yüksek yeterlilik? )

(Neredeyse) orada " kase "den başka bir şeyin satılmadığını görmek için piyasaya bakmak yeterlidir. 13000 "kase" ve 1000 yardımcı program, gösterge ve kitaplık. hazırlıksız. Bu nedenle, "kaselerin" perçinlenmesi kolaydır. Özellikle MT4'te. Ve talep üzerine MQL araçlarını belirleyen ve uygulamaların geliştirilmesine engel oluşturan "kaselerin" yaratılmasıdır.

 
Реter Konow :

Konu dışı konuya girmek istemiyorum ama yetkinliğiniz düşük olduğu için yüksek sesle açıklama yapma yeteneğiniz de var. Bu durumda, benim yeteneklerimi ve deneyimimi bilmiyorsunuz. Hiç gösterge yazmadım, doğru ama uzmanlar yazdım ve birçoğunu yaptım. Ve benim gelişmelerimi ezmesi gereken MQL'deki Sharp hakkında ne düşünüyorsunuz? Ve yaklaşımımla ciddi bir şey yapamamam ve her şeyin benim için kötü çalışması vb.? Yüksek yeterlilik? )

Orada (neredeyse) "kase" den başka hiçbir şeyin satılmadığını görmek için pazara bakmak yeterlidir. 13000 "kase" ve 1000 yardımcı program, gösterge ve kitaplık. hazırlıksız. Bu nedenle, "kaselerin" perçinlenmesi kolaydır. Özellikle MT4'te. Ve talep üzerine MQL araçlarını belirleyen ve uygulamaların geliştirilmesine engel oluşturan "kaselerin" yaratılmasıdır.

garip, ticaret uzmanları yazdıysanız, neden temel eylemler hakkında "Yaklaşımım" konusunda sorularınız oldu, açık bir siparişin özelliklerini nasıl elde edersiniz? (e-tabloyu yazarken), şimdi olduğu gibi, bir test Kasesi yazmanın emek gerektirmediğine dair yüksek sesli bir ifade?

Her şeyi nasıl yapacağını bildiğine göre, iyi şaka yapmadın mı?


Sharp ile ilgili açıklamalarım blogumda ve @fxsaber yayınlarında KB'de, her şey çalışıyor ve tablolar da var ve @fxsaber vizyonuna göre tabloların nasıl çalışması gerektiğini test etti, bu oldukça zor bir teknik uygulama olduğu ortaya çıktı - görüntülemesi gerekiyordu 100 binden fazla değer ve 20 sütun ile 6000 satırdan fazla işlem geçmişi tablosu ! ve ikinci sekmede, 19 bilgi sütunu şeklinde mevcut açık siparişler, her şey çalışıyor ve hiçbir şey çevrimiçi veya test cihazında yavaşlamıyor;) . Her soket taşınabilir, katlanabilir ve geri yüklenebilir ve hiçbir şey kaybolmaz ve en önemlisi, terminali ve PC'yi bir bütün olarak yüklemez (test ettik, işlemci yükünün %7-8'inden fazlasını elde edemedim) PC'de veya dizüstü bilgisayarda)

Not: Piyasa hakkında bir şey söylemeyeceğim ve size tavsiyede de bulunmayacağım, bir önceki paylaşımıma bakın - sırasıyla ne siz ne de ben orada yayınlanmıyoruz, yetkinlik seviyesi tam olarak sıfır;)

PSPS: Doğrudan bir savaşa giriyorsun))) uygulama yazılımı yazma hızı açısından Sharp'ın sizin çalışmanızdan daha düşük olduğunu kanıtlamak için mi? )))) - peki, en az 10 bin hücrenin olacağı bir tablo hazırlamak için "Benim yaklaşımım" konunuzu deneyin, her şeyin nasıl çalışacağını görün;)

 
Igor Makanu :

garip, ticaret uzmanları yazdıysanız, neden temel eylemler hakkında "Yaklaşımım" konusunda sorularınız oldu, açık bir siparişin özelliklerini nasıl elde edersiniz? (e-tabloyu yazarken), şimdi olduğu gibi, bir test Kasesi yazmanın emek gerektirmediğine dair yüksek sesli bir ifade?

Her şeyi nasıl yapacağını bildiğine göre, iyi şaka yapmadın mı?


Sharp ile ilgili açıklamalarım blogumda ve @fxsaber yayınlarında KB'de, her şey çalışıyor ve tablolar da var ve @fxsaber vizyonuna göre tabloların nasıl çalışması gerektiğini test etti, bu oldukça zor bir teknik uygulama olduğu ortaya çıktı - görüntülemesi gerekiyordu 20 sütuna 6000 satırdan fazla işlem geçmişi tablosu ~ 12.000 değer ve ikinci sekmede 19 sütun bilgi şeklinde mevcut açık siparişler, her şey çalışıyor ve hiçbir şey çevrimiçi veya test cihazında yavaşlamıyor;) . Her soket taşınabilir, katlanabilir ve geri yüklenebilir ve hiçbir şey kaybolmaz ve en önemlisi, terminali ve PC'yi bir bütün olarak yüklemez (test edildi, işlemci yükünün% 7-8'inden fazlasını elde edemedim) PC'de veya dizüstü bilgisayarda)

Not: Piyasa hakkında bir şey söylemeyeceğim ve size tavsiyede de bulunmayacağım, bir önceki paylaşımıma bakın - ne siz ne de ben orada yayınlanmıyoruz, yetkinlik seviyesi tam olarak sıfır;)

Stratejilerimde sipariş geçmişine gerek yoktu ve onunla çalışmadım, ancak bu, siparişleri nasıl açacağımı vb. bilmediğim anlamına gelmez. Ayrıca uzun süre uzmanlarla çalıştım. Ama hepsi çok basit (özellikle benim yaklaşımımla). Bir ticaret Uzman Danışmanı oluşturmakta zorluk çekmiyorum. Grafik oluşturmanın karmaşıklık seviyesi çok daha yüksektir ve bu nedenle birçok uzman vardır, ancak neredeyse hiç grafik yoktur. ( @fxsaber 'a sorun.) Ve uzun zamandır Sharp'ın tablolarını bağlamakla ilgili bir yazı bekliyordum. (Sadece benim bağlantı kolaylığı seviyeme ulaşamayacaksınız, bunun için söz veriyorum. :))

Bir Piyasa satıcısının statüsü, bir insanı pek düşünür yapmaz ve algoritmik ticaretin varoluşsal sorunlarına gözlerini açar.))

 
Igor Makanu :
...

PSPS: Doğrudan bir savaşa giriyorsun))) uygulama yazılımı yazma hızı açısından Sharp'ın sizin çalışmanızdan daha düşük olduğunu kanıtlamak için mi? )))) - peki, en az 10 bin hücrenin olacağı bir tablo hazırlamak için "Benim yaklaşımım" konunuzu deneyin, her şeyin nasıl çalışacağını görün;)

Orada MQL4'te 1000 satırda bir tablo hazırladım ve her satırda 20'den fazla hücre vardı. Toplamda 20 binden fazla . hücreler. Onu gördün. Çok çalıştı. Bana inanmıyorsan bir daha bak. Vurgulayayım - MQL4. İlk beşte 10 kat daha hızlı çalışırdı.

 
Реter Konow :

Orada MQL4'te 1000 satırda bir tablo hazırladım ve her satırda 20'den fazla hücre vardı. Toplamda, 20 binden fazla hücre. Onu gördün. Çok çalıştı. Bana inanmıyorsan bir daha bak. Vurgulayayım - MQL4. İlk beşte 10 kat daha hızlı çalışırdı.

En az bir milyon hücre. Ekranda maksimum 1000 tane görebiliyorsanız, neden her şeyi güncelleyin / çizin?