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

 
Integer :


1. Şey, sıkıştı. Bir kez daha tekrarlıyorum. Sistem, iş parçacığının boşta olup olmadığını veya bazı eylemleri gerçekleştirip gerçekleştirmediğini bilemez.

Sistemin bunu bilmesine gerek yok. Bu bir akış sorunu. Nasılsa işlenecek. Bu sistem tarafından garanti edilmektedir. Tabii ki, koddaki herhangi bir hatayla kendiniz durdurmadığınız sürece.
 
Zhunko :
Sistemin bunu bilmesine gerek yok. Bu bir akış sorunu. Nasılsa işlenecek. Bu sistem tarafından garanti edilmektedir. Tabii ki, koddaki herhangi bir hatayla kendiniz durdurmadığınız sürece.


Evet, konuşmanın ne hakkında olduğunu hiç düşünmediğiniz uzun zamandır açıktı.
 

Zhunko, neden burada böyle bir şey deniyorsun... ve konuşmanın ne hakkında olduğunu bile bilmiyorsun. Sistem için gerekli, sistem için gerekli değil ... Konuşmanın ne hakkında olduğunu hiç düşünmüyorsunuz. Bu, önceden belirlenmiş görevi çözmek için gereklidir... ve sonra buna gerek olmadığı için hemen şimdi yeniden başlayacaksınız... Bu görevin olmaması gerektiğini zaten verdiniz. Düşüncelerinizde daireler çiziyorsunuz ve bunu kendiniz fark etmiyorsunuz ve ayrıca bir guru rolüne büründünüz.

 
Önemli olan iplik değil, ne yaptığıdır ve her zaman yapmaz. Ve onun yaptığı şeye yön vermelisin.
 
Integer :
Önemli olan iplik değil, ne yaptığıdır ve her zaman yapmaz. Ve onun yaptığı şeye yön vermelisin.

Burada şunları yazdı:

Zhunko :

Bir kuyruğa ihtiyaç duyulduğunda başka bir durum var. Ancak, iş parçacıklarının yürütme sırası değil, iş parçacıklarından alınan verilerin işlenme sırası (dişlerin çalışmasının sonuçları). Bu, kuyruklar için en yaygın görevdir.

Bu?

 
Zhunko :

Burada şunları yazdı:

Bu?

Yaklaşık olarak benzer. Ancak ondan önce sıranın hiç önemli olmadığı gibi açıklamalar vardı. Ve burada, genel olarak, yalnızca görevlerin eşit olarak değil, aynı zamanda belirli bir sırayla (gerçekleştirilmese bile, ancak daha sonraki işlemler için veri toplamak için) yapılması gerektiği belirtildi, aksi takdirde yanlışlık noktasına geleceksiniz. ifade). Şimdi cevap verme sırası sizde - Biliyorum yaptım ... o zaman son 10 sayfa neydi?
 
söyle lütfen, bir yıllık geçmişte 1 kez çalıştırıldığında (300-400 işlem), test cihazının gigabayt ağırlığında bir günlük dosyası oluşturması normal mi... ?
 
lottamer :
söyle lütfen, bir yıllık geçmişte 1 kez çalıştırıldığında (300-400 işlem), test cihazının gigabayt ağırlığında bir günlük dosyası oluşturması normal mi... ?

Prensipte normal :) Çok normal veya normal değil, sadece yapıyor ve bu kadar. Bakın ne diyor, hata mesajları var ise bu hatalarla ilgili bir işlem yapmanız gerekiyor. Herhangi bir bilgi mesajı varsa, bunları devre dışı bırakmanız (bir anahtar varsa) veya Print()(), Comment(), Alert() fonksiyon çağrısını yorumlamanız gerekir.
 
Integer :

Yaklaşık olarak benzer. Ancak ondan önce sıranın hiç önemli olmadığı gibi açıklamalar vardı. Ve burada, genel olarak, yalnızca görevlerin eşit olarak değil, aynı zamanda belirli bir sırayla (gerçekleştirilmese bile, ancak daha sonraki işlemler için veri toplamak için) yapılması gerektiği belirtildi, aksi takdirde yanlışlık noktasına geleceksiniz. ifade). Şimdi cevap verme sırası sizde - Biliyorum yaptım ... o zaman son 10 sayfa neydi?

Olan şey, sizin açınızdan açıklama eksikliğinden kaynaklanıyor. 381 sayfa daha yazdı. Cevabımı okusaydın fark edip söylerdin.

===================

1. Birkaç bağımsız iş parçacığı vardır.

2. Sonuçlar bazı sıralara eklenir.

3. Bu kuyruk, paylaşılan bir kaynaktır.

4. İş parçacıklarının erişimini ortak sonuç kuyruğuna senkronize etmek gerekir.

Böyle?

===================

Global değişkeni silmeden bu şekilde düzgün çalışması gerekir:

 #property show_inputs

extern int Pause = 1000 ;

int     hwndChart = NULL ; // Уникальный идентификатор скрипта.
string sName = "Condition" ;

void init()
 {
  hwndChart = WindowHandle( Symbol (), 0 );
   // Создаём глобальную переменную синхронизации скриптов.
   if (! GlobalVariableCheck (sName)) GlobalVariableSet (sName, 0 );
 }
 
void deinit()
 {
   while (! IsStopped ())
   {
     if (! GlobalVariableSetOnCondition (sName, hwndChart, 0 )) continue ;
     if ( GlobalVariableSetOnCondition (sName, 0 , hwndChart)) return ;
   }
 }

void start()
 {
   while (! IsStopped ())
   {
     Sleep ( 200 ); // Имитация тика.
     // Начало блока синхронизации.
     if (! GlobalVariableSetOnCondition (sName, hwndChart, 0 )) continue ;
     if ( GlobalVariableGet (sName) == hwndChart)
     {
       Print ( "Start" );
       Sleep (Pause); // Имитация работы.
       Print ( "End" );
     }
     GlobalVariableSetOnCondition (sName, 0 , hwndChart);
   } // Завершение блока синхронизации.
 }

Chiripaha :

Bu...

Bence Arles sorunun cevabını buldu çünkü. Çözümün özünü hemen kavramayı başaramıyorum. Ama bunun nedeni yeni başlayan biri olmam ve önce teoriyi çalışmak, sonra pratiği denemek için daha fazla zamana ihtiyacım var. Ama bu işte ustalaşmaya çalışacağım.


Bu doğru, çözülmemiş sorunun altında, bu sorunların listesini kastettim.

................

===================================

Yani, başka bir deyişle. - Uzman Danışman önerdiğiniz çözümün bir bloğunu içermiyorsa, bu tür Uzman Danışmanların bir demetini kullanırken, Risk Yönetimi ile soruda açıklanan durum ortaya çıkabilir mi?

Biraz daha açıklayacağım. Bunun çok kritik bir an olduğundan emin değilim. Bu nedenle şimdilik varsayımsal olarak değerlendiriyorum. Sorun çözme hızı yüksek olduğundan ve muhtemelen bir bilgisayardaki çözümler, bilgisayarın bitliğinin geniş bir kanalından "uçacaktır". - Belki de bunda yanılıyorum, çünkü. Arles'a göre, daire başına sadece 2 sipariş alıyor. Yani bir sorun var.

Soruyu ancak şimdi anlıyorum :-))

Bu olursa, bu yanlış seçilmiş bir risk sorunudur. Küçük bir riskle, hiçbir şeyin senkronize edilmesine gerek yoktur. +- Depozitonun %0,0001'i belirleyici değildir.

 

Zhunko :

Soruyu ancak şimdi anlıyorum :-))

Bu olursa, bu yanlış seçilmiş bir risk sorunudur. Küçük bir riskle, hiçbir şeyin senkronize edilmesine gerek yoktur. +- Depozitonun %0,0001'i belirleyici değildir.

Olur... Bir kişi mevcut bir problemi (soruyu) çözerken, bilinci diğer görevlerin algısına çevirmek zor olabilir. Ve iş çok olunca her şeyi elde etmek zorlaşıyor... :)) Zaman yönetimi kuralları.

Çoklu kullanım hakkında başka bir soru.

Sergey Kovalev'in öğreticisi, Uzman Danışmanın bir döngüde çalışacağı Görev Döngüsü optimizasyonu ile bir yöntemi açıklar. Bunu ve multithreading'i göz önünde bulundurarak, Expert Advisor'ın bu tür döngüsel yapısının diğer Expert Advisor'ların, scriptlerin ve göstergelerin aşağılığına yol açmayacağını doğru anlıyor muyum? Ve bir döngüde korkusuzca bir danışmanın çalışmasına başlayabilirsiniz? Yoksa bunu yapmamak daha mı iyi? Ve hangi durumlarda bundan kaçınmak daha iyidir?

Anladığım kadarıyla, bu döngüsel çalışma hemen yukarıdaki kodda uygulanıyor. Muhtemelen bu yüzden hatırladım.

Ve bu arada, test cihazında böyle bir döngüsel Expert Advisor çalıştırılırsa, ne kadar doğru olacak? Yoksa bu durumda döngünün "devre dışı bırakılması" mı gerekiyor?