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

 
Chiripaha :

Kabul etmeye hazır değilim. - Çünkü böyle bir durumdan, hem para hem de pozisyon danışmanları tarafından işin ve hesaplamanın doğruluğunu sürdürme mantığı kaybolur. - Bu zaman. İkinci. - Danışmanım örneğin 100 milisaniye uyursa ve o sırada bir diğeri çalışmaya başlarsa, o zaman ne olur ki, bu 100 milisaniye geçer geçmez diğeri işini durdurmak zorunda kalacak ... ve iletmek zorunda kalacak. ortası buna geri döndü ve sonsuzca... Öte yandan. Uzman Danışmanlarda (nadiren değil) her işlem bloğunda dakikalarca ve birçok kez "uyku" gönderdiklerini gördüm. - O zaman, şu anda diğer tüm baykuşlar çalışmıyorsa, bir şekilde yanlıştır. - Bu nedenle, soru oldukça alakalı. Şu anda çalışmanın mantığını anlamak istiyorum. Ancak resmi belgelerde ayrıntılı bir açıklama bulamadım.

Pekala, kabul etmeye hazırım. Bir seçenek olarak, başlangıçta, mql4 göründüğünde, başka hiç kimse çok para birimli hesapları ve bir terminaldeki baykuş paketleri hakkında düşünmedi .. Yani bunun normal olduğu bir seçenek var.

Chiripaha :

Ama iki kötülükten ikincisini seçerdim. Bu durumda, emin olduğum baykuşu bırakırdım. Bu yapılmazsa, önemli değil: çalışmaları yavaşlasa da en azından yeniden hesaplamaların doğruluğu korunur.

Birkaç sinyal kullanmak daha mantıklıdır, yani. her sembolün kendi sinyali vardır.Ardından dizide gerektiği kadar sinyal topluyoruz ve her şey bir danışman tarafından takas ediliyor. Madem mantık aynı, neden bu kadar Uzman Danışman var?

Chiripaha :

Sorun göründüğü kadar önemsiz değil. - Mesele şu ki, deneylerimin gösterdiği gibi, "Danışmanın ticaret yapmasına izin ver" onay kutusu işaretlenmediğinde, danışmanın işi durmaz - tüm hesaplamalar her bir onay üzerinde de yapılır. Sadece danışmanın işlemleri sunucuya gösterilmez. Ancak, bu hesaplamalarda bu "fişler" tıkanmışsa (tamamen doğru değil), o zaman bu tür 5-10 danışman varsa, şu anda ticarette olan mevcut danışmanın yürütülmesini özellikle yavaşlatabilirler.

Evet, bazı programcılar ticaret iznini kontrol eder ve bu temelde baykuşun işini atlar. Ancak çoğu zaman bu yapılmaz. Ve eğer kod kapalıysa, işin yavaşlayıp yavaşlamadığını (ve özellikle hangi baykuşun) hiç anlayamayız. - Şimdi forum aramasında bu konuya bakacağım. Bir şey yavaşladı.

Görünüşe göre evet, bu " Uzman Danışmanın ticaret yapmasına izin ver " düğmesi, yalnızca Uzman Danışman kodunda sağlanmışsa amaçlandığı gibi çalışır.
 
Chiripaha :

Kabul etmeye hazır değilim. - Çünkü böyle bir durumdan, hem para hem de pozisyon danışmanları tarafından işin ve hesaplamanın doğruluğunu sürdürme mantığı kaybolur. - Bu zaman. İkinci. - Danışmanım örneğin 100 milisaniye uyursa ve o sırada bir diğeri çalışmaya başlarsa, o zaman ne olur ki, bu 100 milisaniye geçer geçmez diğeri işini durdurmak zorunda kalacak ... ve iletmek zorunda kalacak. ortası buna geri döndü ve sonsuzca... Öte yandan. Uzman Danışmanlarda (nadiren değil) her işlem bloğunda dakikalarca ve birçok kez "uyku" gönderdiklerini gördüm. - O zaman, şu anda diğer tüm baykuşlar çalışmıyorsa, bir şekilde yanlıştır. - Bu nedenle, soru oldukça alakalı. Şu anda çalışmanın mantığını anlamak istiyorum. Ancak resmi belgelerde ayrıntılı bir açıklama bulamadım.

Ama iki kötülükten ikincisini seçerdim. Bu durumda, emin olduğum baykuşu bırakırdım. Bu yapılmazsa, önemli değil: çalışmaları yavaşlasa da en azından yeniden hesaplamaların doğruluğu korunur.

Sorun göründüğü kadar önemsiz değil. - Mesele şu ki, deneylerimin gösterdiği gibi, "Danışmanın ticaret yapmasına izin ver" onay kutusu işaretlenmediğinde, danışmanın işi durmaz - tüm hesaplamalar her bir onay üzerinde de yapılır. Sadece danışmanın işlemleri sunucuya gösterilmez. Ancak, bu hesaplamalarda bu "fişler" tıkanmışsa (tamamen doğru değil), o zaman bu tür 5-10 danışman varsa, şu anda ticarette olan mevcut danışmanın yürütülmesini özellikle yavaşlatabilirler.

Evet, bazı programcılar ticaret iznini kontrol eder ve bu temelde baykuşun işini atlar. Ancak çoğu zaman bu yapılmaz. Ve eğer kod kapalıysa, işin yavaşlayıp yavaşlamadığını (ve özellikle hangi baykuşun) hiç anlayamayız. - Şimdi forum aramasında bu konuya bakacağım. Bir şey yavaşladı.

Arles'a hatırlatan ve güncellenen soru için teşekkürler. Daha önce, bu konuda yazılanları anlayacak kadar tecrübem yoktu. Şimdi tekrar uzanacağım.


İşlemci kodu işlemenin inceliklerine girmeden, genel "resim" üzerinde duralım: Sleep() sırasında - bu özel kodun daha fazla işlenmesi için bir duraklama (diğer tüm kodlar BAĞIMSIZ paralel iş parçacıklarında işlenir).
 
TarasBY :
İşlemci kodu işlemenin inceliklerine girmeden, genel "resim" üzerinde duralım: Sleep() sırasında - bu özel kodun daha fazla işlenmesi için bir duraklama (diğer tüm kodlar BAĞIMSIZ paralel iş parçacıklarında işlenir).

Peki, burada ... Ve bu zaten bir "pusu". Söylenenleri doğru anladıysam. - Açıklığa kavuşturmama izin ver...

Seni doğru anlarsam, Igor, o zaman Uzman Danışmanlar genellikle sıralı olarak değil (deneylerimde yaptığım gibi), paralel olarak mı işlenir? Ve eğer durum buysa, Arles'in haklı olduğu ortaya çıkıyor ve her sinyal gerekli koşulları alırsa aynı anda 2 işlem açılabilir mi?

Bu benim için neden önemli - işi doğru bir şekilde düzenlemeye yardımcı olacak. Ne olduğunu ve nasıl olduğunu anlamadığınızda, terbiyeli bir şekilde berbat edebilirsiniz.
 

Ayrıca, hazırlıksız, Sleep() test cihazında çalışmaz, hatta belgelerde bir yerde yazılmıştır ..

Expert Advisor, her onay işaretinin gelmesiyle Start() işlevinde başlatılır. Bir düzine Uzman Danışmanınız varsa, hataları işlemeye çalışın, bunların yayınlanması gerekir. DC'ye bir sürü istekte bulunursanız, büyük olasılıkla "İş parçacığı meşgul" gibi bir hata olacaktır.

" Danışmanın ticaret yapmasına izin ver " onay kutusuyla ilgili. Evet, danışman çalışır, ancak yalnızca işlemler yasaktır, günlüğe bakın, içine her şey yazılacak.

 

Merhaba, bu komut dosyası nedir?

 //+------------------------------------------------------------------+
//|                                                        close.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net/"
#property show_confirm

//+------------------------------------------------------------------+
//| script "close first market order if it is first in the list"     |
//+------------------------------------------------------------------+
int start()
  {
   bool    result;
   double price;
   int     cmd,error;
//----
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES))
     {
      cmd=OrderType();
       //---- first order is buy or sell
       if (cmd==OP_BUY || cmd==OP_SELL)
        {
         while ( true )
           {
             if (cmd==OP_BUY) price=Bid;
             else             price=Ask;
            result=OrderClose(OrderTicket(),OrderLots(),price, 3 , CLR_NONE );
             if (result!=TRUE) { error= GetLastError (); Print ( "LastError = " ,error); }
             else error= 0 ;
             if (error== 135 ) RefreshRates();
             else break ;
           }
        }
     }
   else Print ( "Error when order select " , GetLastError ());
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
alex12 :

Merhaba, bu komut dosyası nedir?

Ayrıca, "Listede ilkse ilk piyasa emrini kapatın" yazıyor.
 
alex12 :

Merhaba, bu komut dosyası nedir?


Alex, orada diyor ki:

 script "close first market order if it is first in the list"

Listedeki ilk emir ise ilk piyasa emrini kapatmak için komut dosyası.

Onlar. kodun mantığından anladığım kadarıyla ilk açık emir büyük ihtimalle kapanacaktır. Örneğin, açık 10 siparişiniz varsa, 1 numaralı sipariş kapanacaktır. ilk açılmış olan.

 
Chiripaha :

Peki, burada ... Ve bu zaten bir "pusu". Söylenenleri doğru anladıysam. - Açıklayayım...

Seni doğru anlarsam, Igor, o zaman Uzman Danışmanlar genellikle sıralı olarak değil (deneylerimde yaptığım gibi), paralel olarak mı işlenir? Ve eğer durum buysa, Arles'in haklı olduğu ortaya çıkıyor ve her sinyal gerekli koşulları alırsa aynı anda 2 işlem açılabilir mi?

Bu benim için neden önemli - işi doğru bir şekilde düzenlemeye yardımcı olacak. Ne olduğunu ve nasıl olduğunu anlamadığınızda, terbiyeli bir şekilde berbat edebilirsiniz.

Sergey, "Tüm Uzman Danışmanlar terminal tarafından sırayla işlenir" gibi bir varsayımı nereden aldınız? - paralel hesaplama çağında. ;)

Bu tür deneyler yapmadım (danışman kodlarının terminal tarafından işlenme sırasını oluşturmak için) - cevabım mantık düzeyinde. Ben sadece (terminalin işleyişinin ayrıntılarına girmeden) ticaret operasyonları sırasında Uzman Danışmanların tutarlı çalışmalarını (zorla) organize ediyorum. AMA en doğru cevap kendi deneyiminizdir. Doğru, bir deney kurarken, elde edilen sonuçları doğru bir şekilde işlemek için girdi parametrelerini doğru bir şekilde hesaba katmayı unutmamak gerekir. :)

Not Bir yerde (geliştiriciden) mevcut MT4 yapısının aynı anda 8'e kadar (belleğim bana hizmet ediyorsa) ticaret siparişlerini işleyebileceğini okudum, ancak "çan kulemden" kullanıcı terminalinin bununla ne ilgisi olduğu net değil - bu, DC sunucusu tarafından düzenlenir ("hattın diğer ucunda"). ;)

 
Chiripaha :

...

Onlar. kodun mantığından anladığım kadarıyla ilk açık emir büyük ihtimalle kapanacaktır. Örneğin, açık 10 siparişiniz varsa, 1 numaralı sipariş kapanacaktır. ilk açılmış olan.


Evet. Ama sadece bu ilk emir bir piyasa emriyse. Gecikirse, hiçbir şey olmaz.
 
TarasBY :

Sergey, "Tüm Uzman Danışmanlar terminal tarafından sırayla işlenir" gibi bir varsayımı nereden aldınız? paralel hesaplama çağında. ;)

Bu tür deneyler yapmadım (danışman kodlarının terminal tarafından işlenme sırasını oluşturmak için) - cevabım mantık düzeyinde. Ben sadece (terminalin işleyişinin ayrıntılarına girmeden) ticaret operasyonları sırasında Uzman Danışmanların tutarlı çalışmalarını (zorla) organize ediyorum. AMA en doğru cevap kendi deneyiminizdir. Doğru, bir deney kurarken, elde edilen sonuçları doğru bir şekilde işlemek için girdi parametrelerini doğru bir şekilde hesaba katmayı unutmamak gerekir. :)

Önemli olan bu (deneysel parametrelerin doğru ayarlanması için). Bu yüzden sorular soruyorum çünkü. Kendi yeteneklerime güvenmiyorum ve bu nedenle, bu sonuçlar farklıysa, belki de yanlış bir şey yaptığımı belirlemeye çalışıyorum. Bu daha çok bir test meselesidir - böyle anlarda, doğru yazılmış bir program çöküyor ve bir yere bakmanız gerektiğini anlıyorsunuz.

Bu "deneyler" tesadüfen başıma geldi. Ayrıca paralel çalışma için programlar yazdım - şimdi bu yöntemi terk ettim çünkü. Bu verimliliğimi artırmadı (belki başka projelerde uygulanıyor). Sonuç olarak, böyle bir şey ortaya çıktı ki, ilk program işlenene kadar veri alınmadı, ardından ikincisi başlamadı (veya daha doğrusu lanetlendi). Ve bu sıra, danışman bloklarını hangi pencereye (yani hangi sırayla) yerleştirdiğime bağlıydı. - Sonuç olarak - Pencerelerin sırası önemli olduğu için, Expert Advisors'ın paralel olarak değil, sırayla işlendiği anlamına gelir. Ve bu sıra, terminal listesindeki pencerelerin numaralandırılmasına bağlıdır.

Bu, kazanılan deneyimin tüm özüydü.

Ancak, yine, bu sonuçlarımın yanlış yorumlanması olabilir. Bu nedenle, ısrarla şimdi bu sorunu çözmeye çalışıyorum ve sadece "slip" ile ilgili değil.

Neden: