Benim yaklaşımım. Çekirdek - Motor. - sayfa 146

 

Реter Konow :

...

Bu kötü bir fikir değil.

Ama bu bize ne veriyor?

Belki işlemci yükünü azaltırız, iş parçacıklarını serbest bırakırız. 10 çift üzerinde çalışan danışmanın 10 kopyası varsa ve her motora bir GUI ile atarsak, işlemci üzerindeki toplam yük çok büyük olabilir. Sonuçta, her GUI, öğelerin yeniden çizilmesini gerektirir ve bu, işlemciyi yükler. AMA, aslında, bir kopyanın yalnızca belirli bir GUI'sini görebiliriz. Gerisi gizli .

Yani bu muhtemelen doğru yol. Ortak bir motor yapın.

MT5'te grafikler ayrılabilir. Ve sonra yeni bir konsept bulmalısın.

 
Peter Konow'un fotoğrafı.

Her EA, parametre çekirdeğinin kendi kopyasına sahiptir. Genel GUI'den geçici olarak ayrılabilir ve motora başka bir Uzman Danışmana bağlanabilir. Bunların bir uzmanın kopyaları olması önemlidir.

Ancak burada benim henüz tam olarak temsil edemediğim zorluklar var.

Teoride soru şu:

Ortak bir GUI'ye sahip bir motor yapıp danışmanın kopyalarına bağlayabiliyorsanız, neden her çizelgeye GUI'li bir motor koydunuz?

Uygulamada teknik zorluklar var.

Bir EA'nın bir kopyası, parametre çekirdeğinin kopyasına yeni değerler yazabilir. Kopyalardan birinin motorla bağlantısı yoksa, temel parametreler yalnızca kopyanın yanında değişecektir. Bu, yeniden bağlanırken, kopya parametrelerinin tüm çekirdeğini motora aktarmanın gerekli olacağı ve gerektiğinde tüm pencerelerdeki tüm öğeleri yeniden çizeceği anlamına gelir. Prensip olarak, bu mümkündür.

Veya parametre çekirdeğini yeniden oluşturarak onu bir kaynak haline getirin. Bu durumda, motor tüm değişiklikleri hemen alacak ve yalnızca öğeleri yeniden çizecektir. Bu kötü bir fikir değil.

Ama bu bize ne veriyor?

Belki işlemci yükünü azaltırız, iş parçacıklarını serbest bırakırız. 10 çift üzerinde çalışan danışmanın 10 kopyası varsa ve her motora bir GUI ile atarsak, işlemci üzerindeki toplam yük çok büyük olabilir. Sonuçta, her GUI, öğelerin yeniden çizilmesini gerektirir ve bu, işlemciyi yükler. AMA, aslında, bir kopyanın yalnızca belirli bir GUI'sini görebiliriz. Gerisi gizli.

Yani bu muhtemelen doğru yol. Ortak bir motor yapın.

Danışmanların kopyaları, adreslerini sık sık motora bildirmelerini sağlar. Kısa çizgi. Motor, mevcut adresiyle aynı adrese sahip bir kopyaya tepki verecek ve "konuşacaktır". Ve standart bir değişim olacak. Motorda adres değişirse, eşleşen adresi ortaya çıkaran kopya ile "değişim" yapmaya başlar. Sadece "eter" deki standart değişime, kısa adreslerinin danışmanları veya göstergeleri tarafından ayar eklenir. Birkaç bayt. Ve kullanıcı motorun GUI'sindeki "Yeniden Yapılandır" düğmesine bastığında "motor tarafından adresleri dinleme" işlevi başlatılır. Belki bunun gibi bir şey.

 
Artyom Trishkin :

MT5'te grafikler ayrılabilir. Ve sonra yeni bir konsept bulmalısın.

Sadece bilmiyorum. Grafik tamamen "bölgesel olarak" ayrılmış mı, ana terminal penceresinin koordinatlarından bağımsız mı oluyor? Ve terminal ile değişim akışlarında, tam olarak nasıl bağlandı ve olacak mı?

 
Oleg Papkov :

Sadece bilmiyorum. Grafik tamamen "bölgesel olarak" ayrılmış mı, ana terminal penceresinin koordinatlarından bağımsız mı oluyor? Ve terminal ile değişim akışlarında, tam olarak nasıl bağlandı ve olacak mı?

Grafik ayrılmıştır, ancak özü değiştirmez. Boşuna kabus görürler.) Danışmanın her kopyası için GUI'nin kopyalarını üretmenin bir anlamı yoktur. Her neyse, görmüyorum. Ancak bir GUI'yi kopya çizelgeleri arasında taşımak harika olurdu.

Danışmanın kopyalarının kontrol merkezi için motorun ve ana GUI'nin yerleştirileceği bir program varsa uygun olacaktır.

Danışmanın GUI'sinin, danışmanın farklı araçlara yüklü birçok kopyası olacağı beklentisiyle yapılması gerekir.


not. Grafik aynı pencerede kalır, yalnızca pencerenin kendisi Terminal'den "kaldırılabilir".

 
Oleg Papkov :

Danışmanların kopyaları, adreslerini sık sık motora bildirmelerini sağlar. Kısa çizgi. Motor, mevcut adresiyle aynı adrese sahip bir kopyaya tepki verecek ve "konuşacaktır". Ve standart bir değişim olacak. Motorda adres değişirse, eşleşen adresi ortaya çıkaran kopya ile "değişim" yapmaya başlar. Sadece "eter" deki standart değişime, kısa adreslerinin danışmanları veya göstergeleri tarafından ayar eklenir. Birkaç bayt. Ve kullanıcı motorun GUI'sindeki "Yeniden Yapılandır" düğmesine bastığında "motor tarafından adresleri dinleme" işlevi başlatılır. Belki bunun gibi bir şey.

Noktayı doğru görüyorsun. Sadece detaylardan emin değilim.

"İletişim" in kendisi bir sorun değil. Ancak geçiş yaparken tüm GUI'yi yeniden başlatmanız gerekir. Gerçekten de pencerelerde ve öğelerde farklı kopyalar, farklı değerler. Yani, hemen hemen her şeyi yeniden çizmeniz gerekiyor.

Her kopyanın parametre değerleri Parametre Çekirdeğinde saklanır. Bu bir dizi. Ve kopyanın motorla bağlantısı kesilirken, değerlerdeki değişiklikler yalnızca EA'nın Parametre Çekirdeğinin kopyasında meydana gelecektir. Motor bağlanır bağlanmaz, her şeyi bu çekirdekten ona aktarmanız gerekir. Motordaki Parametre Çekirdeğinin kopyalarını ve bağlı Uzman Danışmanı senkronize edin. Bu, geniş bir bilgi dizisini (Parametre Çekirdeği) aktarmanız ve pencereleri yeniden çizmeniz gerektiği anlamına gelir. Bundan sonra, bağlı uzmanı düzenlemek mümkün olacak, diğerleri ise bağımsız bir çalışma moduna geçecek. Sonra onlarla bağlantı kurulacak ve aynı şey olacak.

Aşağı yukarı böyle. Ancak, birçok teknik nüans var.

 
Peter. N ms'lik bir süre ile danışman motordan bir şey alır ve bundan sonra hazırladığı şeyi motora aktarır. Bundan sonra, EA bir onay işaretinin veya repoll değişiminin yeni bir bölümünün gelmesini bekler. Doğru şekilde?
 
Oleg Papkov :
Peter. N ms'lik bir süre ile danışman motordan bir şey alır ve bundan sonra hazırladığı şeyi motora aktarır. Bundan sonra, EA, bir onay işaretinin veya yeniden anket değişiminin yeni bir bölümünün gelmesini bekler. Doğru şekilde?

Neredeyse doğru. İletişim ve bir onay işareti bekleme veya diğer olaylar eşzamansız olarak gerçekleşir.

 
Реter Konow :

Grafik ayrılmıştır, ancak özü değiştirmez. Boşuna kabus .)

...

not. Grafik aynı pencerede kalır, yalnızca pencerenin kendisi Terminal'den "kaldırılabilir" .

Ve konseptinize göre, hepsi aynı, bir seferde yalnızca bir mevcut grafik görünür ve yalnızca güncellenebilir, bozulacaktır - birçok çizelge ayrıldıkça görünür olacaktır.

Tabii ki, bu bir kabus değil, ama aynı zamanda bir bağırsak da değil - görünen çizelgelerden sadece biri "canlı" ve gerisi?

Sizce bu normal mi? Evet ise, o zaman bir kez daha hataları çözmedeki anlamsızlığa ikna oldum - eğer varsa, düzeltmeyin, gizleyin.

 
Реter Konow :

Neredeyse doğru. İletişim ve bir onay işareti bekleme veya diğer olaylar eşzamansız olarak gerçekleşir.

Ve öyle olsa bile. Her biri bir tür frekansa sahip (OnTimer) Uzman Danışmanlar, motora kendi kod dizilerini gönderir. Tüm kod dizileri farklıdır. Motor, gelen hatları dahili olarak analiz eder ve bir tanesini "öğrenir", örneğin 3 numaralı Expert Advisor'dan diyelim. Bu Uzman Danışmana yanıt olarak, ana iletimi başlatmak için bir "sinyal" gönderir. Motor, bu Uzman Danışman ile çalışmaya başladı.
Bir kişi Anahtar düğmesine basarsa, motor izin verilen Uzman Danışmanları analiz eder ve sayılarla indekslenir. Mevcut Expert Advisor'ı adres ayarı durumuna geçmesi için bilgilendirir, sanki onu akıştan kapatıyormuş gibi, indeksli bir kod satırını 1 daha seçer ve herhangi bir Expert Advisor'dan aynı kod satırının gelmesini bekler. Adresler eşleşirse, adresi ayarlamayı bitirmek ve alışverişi başlatmak için bu EA'ya bir sinyal gönderir. Adres ayar modunda olmayan tek Expert Advisor ve bir dizi kopya değişimi alacaktır. Kısaca şöyle bir şey.

Motor bir adres aldıysa, adreslerin alınmasını yasaklamak için bir zaman aşımı süresi yapar. Adresler çakışmasın diye.

 
Oleg Papkov :

Ve öyle olsa bile. Her biri bir tür frekansa sahip (OnTimer) Uzman Danışmanlar, motora kendi kod dizilerini gönderir. Tüm kod dizileri farklıdır. Motor, gelen hatları dahili olarak analiz eder ve bir tanesini "öğrenir", örneğin 3 numaralı Expert Advisor'dan diyelim. Bu Uzman Danışmana yanıt olarak, ana aktarımı başlatmak için bir "sinyal" gönderir. Motor, bu Uzman Danışman ile çalışmaya başladı.
Bir kişi Anahtar düğmesine basarsa, motor izin verilen Uzman Danışmanları analiz eder ve sayılarla indekslenir. Mevcut Expert Advisor'ı adres ayarı durumuna geçmesi için bilgilendirir, sanki onu akıştan kapatıyormuş gibi, indeksli bir kod satırını 1 daha seçer ve herhangi bir Expert Advisor'dan aynı kod satırının gelmesini bekler. Adresler eşleşirse, adresi ayarlamayı bitirmek ve alışverişi başlatmak için bu EA'ya bir sinyal gönderir. Değişim, tek Uzman Danışman ve adres ayar modunda olmayan bir dizi kopya tarafından alınacaktır. Kısaca şöyle bir şey.

Motor bir adres aldıysa, adreslerin alınmasını yasaklamak için bir zaman aşımı süresi yapar. Adresler çakışmasın diye.

İşte tam olarak doğru bir yaklaşım değil. Açıklamama izin ver:

Danışmanın her kopyası, mesajlarını motora kendi ayrı kaynağında yazmayı bırakmaz. Aynı zamanda, Expert Advisor'ın her kopyası, Parametre Çekirdeği kopyasında öğelerinin değerlerini başlatır. Yani, motorla bağlantısı kesilmiş durumda bile, danışmanın tüm kopyalarında her şey normal şekilde gerçekleşmelidir.

Motor, Uzman Danışmanların kopyaları arasında bağlantı değiştirdiğinde, parametre çekirdeğini bağlı Uzman Danışmanın çekirdeğiyle senkronize etmelidir. Bundan sonra, gerçek bilgileri göstermeleri için pencerelerdeki öğeleri yeniden çizin.

Seçilen danışmanla iletişime gelince, burada her şey basit. Motordan mesaj alma kaynağı (aynı zamanda motor için mesaj kaynağı), her uzmanın kendine ait olacaktır. Yani Motor, mesajlarını başka bir kaynağa yazacak ve başka bir kaynaktan mesajları okuyacaktır. Bağlı danışmana ait olan kaynak.

Neden: