MQL4 hakkında sorular - sayfa 9

 
Şunu varsaymak doğru mudur:
1. Emirlerin karşılıklı kapanması, bir piyasa yapıcının müdahalesi olmadan otomatik olarak mı gerçekleşir?
2. Açık emirlerin değiştirilmesi (kabul edilen mesafelere uyulması durumunda) bir piyasa yapıcının müdahalesi olmadan otomatik olarak mı gerçekleşir?
3. Bekleyen emirlerin silinmesi ve değiştirilmesi (kabul edilen mesafelere uyulursa) bir piyasa yapıcının müdahalesi olmadan otomatik olarak mı gerçekleşir?
 
Şunu varsaymak doğru mudur:
1. Emirlerin karşılıklı kapanması, bir piyasa yapıcının müdahalesi olmadan otomatik olarak mı gerçekleşir?
2. Açık emirlerin değiştirilmesi (kabul edilen mesafelere uyulması durumunda) bir piyasa yapıcının müdahalesi olmadan otomatik olarak mı gerçekleşir?
3. Bekleyen emirlerin silinmesi ve değiştirilmesi (kabul edilen mesafelere uyulursa) bir piyasa yapıcının müdahalesi olmadan otomatik olarak mı gerçekleşir?

yanlış. siparişlerin nasıl işlendiğini belirli bir komisyoncuya sormanız gerekir. otomatik işleme izin verilir. ancak demo sunucumuzda bile makine bazen kapatılır ve manuel onaylar yapılır
 
Slava ,
net cevap için çok teşekkürler.

Aynı şeyin TrailingStop'un otomatik olarak sıkılması için de geçerli olduğunu varsaymalı mıyız?
Bir piyasa yapıcı için kontrol etkisinin oluşum kaynakları (EA veya MT) açısından herhangi bir farklılık var mı?
 
Evet. aracı, durakları kimin hareket ettirdiğini bilmediğinden - tüccar manuel olarak, uzmanlar (veya komut dosyaları) veya takip eden durdurma mekanizmasına sahip bir müşteri terminali.
 
1) gösterge neden yeniden derlemeden sonra init() içinde Bars==0 alıyor?

2) dizi öğelerine erişim nispeten yavaştır. sadece hantal yapılarla veya başka bir şekilde hızlandırılabilir mi?
   statik int biliyorum; statik çift caa,cbb,ccc,cdd,cee,cff,cgg;
   if(b-bil!=0){
      if (b-bilmek==1){ 
         caa=cbb; cbb=ccc; ccc=cdd; cdd=cee; ce=cff; cff=cgg; cgg=Kapat[b+6];/*vzad po istorii*/
      }başka 
         if (b-bilmek==-1){
            cgg=cff; cff=cee; ce=cdd; cdd=ccc; ccc=cbb; cbb=caa; caa=Kapat[b]; /*vperjod*/
         }başka{ 
            caa=Kapat[b]; cbb=Kapat[b+1]; ccc=Kapat[b+2]; cdd=Kapat[b+3]; cee=Kapat[b+4]; cff=Kapat[b+5];cgg=Kapat[b+6];} bil=b;
         }
 
Slava ,
tekrar teşekkürler. Anlaşılır olmaktan daha fazlası.

miksu ,
ArrayCopy() kullanmayı deneyin;
 
Slava , sık sık önemli ayrıntılara karar vermeme yardım ediyorsun, o yüzden sana kişisel olarak döneyim.
Bir Uzman Danışman ve bir komut dosyası aynı pencerede aynı anda çalışıyorsa, değişiklik siparişlerini sunucuya yaklaşık olarak aynı anda gönderirlerse:
- danışman şu anda Bai'yi değiştirir, t_o, Sovet=OrderModify(..)
- komut dosyası şu anda BuyLimit'i değiştirir, t_o +1ms, Script=OrderModify(..)
Diğer etkinlikler:
-server, siparişin başarılı bir şekilde değiştirilmesinden sonra (hangisini bilmiyorum) DOĞRU döndürür,
(Hangi değişken DOĞRU olacak - Sovet veya Komut Dosyası?)
ve 1 ms sonra..
-sunucu, siparişin başarılı bir şekilde değiştirilmesinden sonra (hangisini bilmiyorum) YANLIŞ döndürür

Soru.
1. Sunucuya yapılan isteklerin, adlandırılacak şekilde tasarlandığını ve bunlara atanan sunucu yanıtlarının karıştırılmayacağını ve yanıtların her birinin kendi OrderModify() işlevine döndürüleceğini varsaymak doğru mudur?
2. Değilse, sunucu yanıtlarını ayırt etmenin normal bir yolu var mı? (bir öncekine yanıt aldıktan sonra bir sonraki siparişi oluşturma uygulaması hariç)?

(Birkaç benzer sorum daha var; kritik değilse, lütfen MQL4 forumunda yanıtlayın, soru orada çoğaltılır ve mümkünse orada tartışın, çünkü kodları orada sunmak daha uygun olur)
 
yeni sözlükten alıntı
===
Uzman Danışmanlardan ve komut dosyalarından alım satım işlemlerini yürütmek için, bir program alım satım bağlamında başlatılan yalnızca bir iş parçacığı sağlanır. Bu nedenle, bu bağlam bir Uzman Danışmanın ticaret işlemiyle meşgulse, o zaman başka bir Uzman Danışman veya komut dosyası, 146 hatası (ERR_TRADE_CONTEXT_BUSY) nedeniyle ticaret işlevlerini o anda çağıramaz. Alım satım işlemleri gerçekleştirmenin mümkün olup olmadığını belirlemek için IsTradeAllowed() işlevini kullanın. Ticaret bağlamına erişimi açıkça ayırmak için, değeri GlobalVariableSetOnCondition() işlevi kullanılarak değiştirilmesi gereken global bir değişkene dayalı bir semafor kullanabilirsiniz.
===
Aynı anda birden fazla Uzman Danışman (veya bir Uzman Danışman ve bir komut dosyası) ticareti yapamazsınız. "hata numarası 6" dalında, durumu bir semaforla çözme örneği verilmiştir
 
Slava ,
Cevap için teşekkürler. Çok önemli bilgiler. Bir şeyler temizleniyor.

Ama daha çok soru var.
etkisi var mı
Uzman Danışmanlardan ve komut dosyalarından alım satım işlemlerini yürütmek için yalnızca bir iş parçacığı sağlanır.

emirlerin bir sonrakini takip eden bir danışman veya komut dosyasında yürütülmesi için. şemalar?:
 a=SiparişModify(..number1);
c=SiparişModify(..number2);


 OrderModify(..number1);
OrderModify(..number2);


Şunu varsaymak doğru mudur:
- ilk örnekte, OrderModify(..number2), OrderModify(..number1)'e sunucu yanıtı alındıktan sonra atama operatörü a= yürütülene kadar yürütülmeyecek mi?
- ikinci örnekte, OrderModify(..number2) sunucunun OrderModify(..number1) yanıtını beklemeden hemen çalışmaya başlayacak mı?

 
her iki durumda da işlevlerin başlatılması sıralı olacaktır. üçlüden farklı olarak, şimdi tüm işlevler (öncelikle ticaret işlevleri anlamına gelir) eşzamanlıdır