MT5 ve trans2quik.dll - sayfa 6

 
prostotrader :

Hayır, sadece 3 iş parçacığının çalışmasını senkronize etmeniz gerekiyor (aslında bir Senkronizatör yazın), ancak

Nasıl bilmiyorum.

Eh, sadece bayraklar kaldı. Bayrağı asıyoruz, kalanların faaliyetlerini tamamlamasını bekliyoruz, durup bayraklarını indiriyoruz, iş yapıyoruz, bayrağı indiriyoruz. Eh, ve elbette bayrak önceliklerinin mantığı.

DDE'yi durdurmayacağım, ara belleğe yazmasına izin verdim, böylece hiçbir şey kaybolmaz.

 
Yuriy Asaulenko :

Eh, sadece bayraklar kaldı. Bayrağı asıyoruz, kalanların faaliyetlerini tamamlamasını bekliyoruz, durup bayraklarını indiriyoruz, iş yapıyoruz, bayrağı indiriyoruz. Eh, ve elbette bayrak önceliklerinin mantığı.

DDE'yi durdurmayacağım, ara belleğe yazmasına izin verdim, böylece hiçbir şey kaybolmaz.

Yani Synchronizer'da, önceliğe bağlı olarak yürütülecek olan gelen işlevlerin bir arabelleğini yapmanız gerekiyor mu?

 
prostotrader :

Yani Synchronizer'da, önceliğe bağlı olarak yürütülecek olan gelen işlevlerin bir arabelleğini yapmanız gerekiyor mu?

Hayır, sadece uygun bayraklara ve önceliklerine göre dizileri duraklatın. Bu seçenekte, başka hiçbir şeye ihtiyaç yoktur.

İkinci seçenek, iş parçacığı işlevinin sonunu beklemek ve ardından bayrağının yanında durmaktır. Bu olabilir örneğin, teklif talebinin, göstergelerin ve gerekli diğer şeylerin güncellenmesi gereklidir.

Örneğin, bayrak değerleri.

0 - iş parçacığı durdurulur,

1 - iş parçacığı çalışıyor,

2 - tüm düşük öncelikli konuları durdurma isteği.

2'yi ayarlıyoruz, herkes 0 olana kadar bekliyoruz, programı yürütün, 0 veya 1'e ayarlayın. Bu bayrakta, diğerleri çalışmaya devam eder.

 
Yuriy Asaulenko :

Hayır, sadece uygun bayraklara ve önceliklerine göre dizileri duraklatın. Bu seçenekte, başka hiçbir şeye ihtiyaç yoktur.

İkinci seçenek, iş parçacığı işlevinin sonunu beklemek ve ardından bayrağının yanında durmaktır. Bu olabilir örneğin, teklif talebinin, göstergelerin ve gerekli diğer şeylerin güncellenmesi gereklidir.

Örneğin, bayrak değerleri.

0 - akış durdurulur,

1 - iş parçacığı çalışıyor,

2 - tüm düşük öncelikli konuları durdurma isteği.

2'yi ayarlıyoruz, herkes 0 olana kadar bekliyoruz, programı yürütün, 0 veya 1'e ayarlayın. Bu bayrakta, diğerleri çalışmaya devam eder.

DDE'yi askıya almanın iyi olmadığını kendiniz yazdınız

 
prostotrader :

DDE'yi askıya almanın iyi olmadığını kendiniz yazdınız

Sadece seni anlamadım.

öyle yaparım.

1. Dizisindeki sunucu (bir TCP sunucum var) sürekli olarak son giren ilk çıkar türündeki bir koleksiyona veri yazar. Onu durdurmaya gerek yok.

2. Başka bir iş parçacığındaki koleksiyondan, veriler okunur/silinir ve bir DataTable'a yazılır (bu, bir veritabanı tablosunun analoğudur, ancak bellektedir). Zaten bu iş parçacığı müdahale ederse askıya alınabilir.

3. yine de akış, analiz için DataTable'dan verileri okur. 2. iş parçacığına hiçbir şekilde müdahale etmez, çünkü Örnekleme seçmeye devam eder ve bu tabloda 2 kayıt dışında kimse yapmaz. Bu iş parçacığı müdahale ederse de askıya alınabilir.

Tehdit Hiçbir şeyi durdurmak zorunda değilim, tk. Bir araçla çalışıyorum ve siparişleri göndermek ve yürütmek ve işlemleri izlemek için akış 3 anahtarları kullanıyorum.

 
Yuriy Asaulenko :

Sadece seni anlamadım.

öyle yaparım.

1. Dizisindeki sunucu (bir TCP sunucum var) sürekli olarak son giren ilk çıkar türündeki bir koleksiyona veri yazar. Onu durdurmana gerek yok.

2. Başka bir iş parçacığındaki koleksiyondan, veriler okunur/silinir ve bir DataTable'a yazılır (bu, bir veritabanı tablosunun analoğudur, ancak bellektedir). Zaten bu iş parçacığı müdahale ederse askıya alınabilir.

3. yine de akış, analiz için DataTable'dan verileri okur. 2. iş parçacığına hiçbir şekilde müdahale etmez, çünkü Örnekleme seçmeye devam eder ve bu tabloda 2 kayıt dışında kimse yapmaz. Bu akış, müdahale ederse de askıya alınabilir.

Tehdit Hiçbir şeyi durdurmak zorunda değilim, tk. Bir araçla çalışıyorum ve siparişleri göndermek ve yürütmek ve işlemleri izlemek için akış 3 anahtarları kullanıyorum.

Şanslısın, 52 enstrümanım var, bu yüzden değiştirmem gerekecek.

 
prostotrader :

Şanslısın, 52 enstrümanım var, bu yüzden değiştirmem gerekecek.

52 enstrümanın tümünün analizinin tek bir akışta olduğunu anlıyorum? Ya da değil?

Depolama olarak ne kullanılır? Benim durumumda, çok kullanıcılı erişimde, kilitleme gerekli değildir ve okuma yazmayı engellemez.

Engellenecek tek şey Child'ın trans2quik paylaşımıdır. Ve yalnızca birden çok iş parçacığı durumunda Child. Ve bu, trans2quik'i ayrı bir iş parçacığında düzenleyerek ve bir olayda çağırarak ve aynı zamanda istekle işin sonuna kadar olay işleyicisini engelleyerek yapılabilir. Gerisi geçmez.)

 
prostotrader :

MT5 ile Quick'i bağlama fikrinden tamamen vazgeçtim, sadece Quick'te durdum (DEE server + trans2quik.dll)

Çok üzgünüm. Ve böyle bir kararın sebebi nedir, iki program arasında veri alma / iletme konusunda ciddi engeller var mı?

 
Yuriy Asaulenko :

52 enstrümanın tümünün analizinin tek bir akışta olduğunu anlıyorum? Ya da değil?

Depolama olarak ne kullanılır? Benim durumumda, çok kullanıcılı erişimde, kilitleme gerekli değildir ve okuma yazmayı engellemez.

Engellenecek tek şey Child'ın trans2quik paylaşımıdır. Ve yalnızca birden çok iş parçacığı durumunda Child. Ve bu, trans2quik'i ayrı bir iş parçacığında düzenleyerek ve bir olayda çağırarak ve aynı zamanda istekle işin sonuna kadar olay işleyicisini engelleyerek yapılabilir. Gerisi geçmeyecek.)

Hayır, analizin kendisi Child'da gerçekleşir (her enstrüman için ayrı ayrı) Seçici(1,2) hangi robotun veri ve geri arama vereceğini seçin

Depolama - yalnızca bellekte depolanan tablolar

 
Aleksey Vyazmikin :

Çok üzgünüm. Ve böyle bir kararın sebebi nedir, iki program arasında veri alma / iletme konusunda ciddi engeller var mı?

Bahçeyi çitle çevirmek mantıklı değil.

MT 5'i kullanarak danışmandaki koda ve verileri alacak DLL'ye ihtiyacınız var.

Yalnızca Quick kullanarak, yalnızca bir uygulamamız var (şema ile birlikte şekle bakın)

Neden: