MQL4 ile ilgili sorular. - sayfa 8

 
resim 6
Dosyalar:
zigtester.jpg  16 kb
 
ANK:
Bunun doğru olup olmadığını kim bilebilir?
bir dosya birden çok kez koda dahil edilemez.
Yani ihtiyacın var:
- veya farklı global değişken ve işlev adlarına sahip birkaç dosya oluşturun (bu daha kötü bir sürümdür =)
- veya farklı işlevlerden çağrı yaparken kesişme olmaması için çalışma mantığını düşünün (burada çalışmanız gerekebilir, ancak bu değerli bir çözüm;)

Ve belirli örnekler, hataların açıklamaları veya tam kod (en iyisi) olmadan daha doğru bir şey söylenemez =)
 
Bir Uzman Danışman ve döngülü bir komut dosyası, pencerede aynı anda çalışır.
Danışmanın bir ticaret işleminin yürütülmesine sunucunun yanıtını beklediği süre boyunca varsaymak doğru mu?
script, kendi hesaplamalarını yapmak için ( alım satım işlemleri değil) durmadan ve gecikmeden her zamanki gibi çalışmaya devam ediyor mu?
 
SKif:
Bir Uzman Danışman ve döngülü bir komut dosyası, pencerede aynı anda çalışır.
Danışmanın bir ticaret işleminin yürütülmesine sunucunun yanıtını beklediği süre boyunca varsaymak doğru mu?
script, kendi hesaplamalarını yapmak için ( alım satım işlemleri değil) durmadan ve gecikmeden her zamanki gibi çalışmaya devam ediyor mu?
Evet.
hem Uzman Danışman hem de komut dosyası kendi dizilerinde çalışır.
 
Tamam teşekkürler.
Göstergenin başlama zamanı ile danışman düğmesi açıldığında danışmanın eşleşmemesi normal bir durum olarak kabul edilmeli mi?
Belki bir şeyi yanlış anlıyorum veya yanlış yapıyorum, ancak zaman farkının 250 ms'den fazla olabileceği ortaya çıktı.

Ve ilerisi. Expert Advisor butonunun durumunun göstergenin çalışmasına herhangi bir etkisi var mı?
Bu butonun durumunu indikatörden takip etmek mümkün müdür?
 
biraz araştırma yaptım..

Pencereye bir gösterge yerleştirdim:
int start () { GlobalVariableSet ( GV_Tick , 1 ) ; return ; }

Pencereye bir danışman yerleştirdi:
int start () { GlobalVariableSet ( GV_Knopka , 1 ) ; return ; }

Ve bu pasajı içeren bir komut dosyası:
... T_Tick = 0 ; T_Knopka = 0 ; while ( Tick == 0 || Knopka == 0 ) // Ждём тика и разреш. кнопки советн. { Tick = 0 ; Knopka = 0 ; Tick = GlobalVariableGet ( GV_Tick ) ; Knopka = GlobalVariableGet ( GV_Knopka ) ; if ( Tick > 0 && T_Tick == 0 ) T_Tick = GetTickCount () ; if ( Knopka > 0 ) { T_Knopka = GetTickCount () ; Alert ( " T_Tick= " , T_Tick , " T_Knopka= " , T_Knopka , " Запазд= " , T_Knopka - T_Tick ) ; } } ... GlobalVariableSet ( GV_Knopka , 0 ) ; // Обнуляем прошлые события GlobalVariableSet ( GV_Tick , 0 ) ; // Обнуляем прошлые события


Ve işte sonuçlar:
kırmızı ile vurgulanan süre boyunca, fare saniyede 3 devir frekansıyla 50 mm çapında bir daire içinde hareket etti.
Terminalde herhangi bir etki olmadı.

"Her zamanki" sessiz dönemde gecikmenin yakl. 20-60 ms ve hatta daha fazlası, kullanıcının terminalle iletişim kurduğu süre boyunca.
Ek olarak, pencerenin yeniden boyutlandırılması sırasında ve pencereler arasında geçiş yapılırken göstergenin start() işlevinin başlatıldığı ortaya çıktı.
---------------
Ben esas olarak bu "olağan" ve "olağandışı" gecikmenin yasallığıyla ilgileniyorum.
Ve geliştiricilerden bazı yorumlar istiyorum - plana ne kadar karşılık geliyor.
Dosyalar:
1.png  21 kb
 
Testleri kendim yapacağım ve sonuçları rapor edeceğim.
 
TAMAM.
Başka bir olasılığın yokluğunda, kapalı yargıya varmak için danışman ve gösterge sinyallerinin zaman gecikmesini ölçme seçeneğine odaklandım. danışman düğmeleri. Bu sefer och olacağı varsayıldı. küçük. Ama yayılma tamam. büyük.

Bulduğunuz şey çok ilginç.
(genel olarak, tüm bu mutfağa basit bir soruyu cevaplamak için ihtiyacım var: danışman düğmesinin durumu )
 
Uzmanlar, diğer görevlerden bağımsız olarak kendi konuları üzerinde çalışırlar.
Yüzlerce fare hareketi komutu toplu olarak gönderildiğinde, CPU kullanımının fare hareketinden kaynaklandığı ortaya çıktı. Bu "fare" komutları arasında, gecikmelere yol açan Expert Advisor'ları yenileme komutları da bulunmaktadır.
 
Yani, senaryo, gösterge ve danışman başlangıcının eşzamanlı olmamasının yaygın bir fenomen olduğu düşünülmeli mi?
Peki .. ve bu dünyada nasıl yaşanır?
Neden: