Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 12

 
Aslan59 :
Teşekkür ederim!
Anladığım kadarıyla, "aktif emir" terimi, ALIŞ ve/veya SATIŞ pozisyonlarının yanı sıra verilen bekleyen emirleri (komisyoncu tarafından kabul edilen) içerir.
Açık: Uzun ve Kısa pozisyonlarım varsa ve ayrıca Buy Limit ve Sell Stop ayarladıysam, OrdersTotal () =4 değerini döndürür. Böyle?

Bir ALIŞ pozisyonu ve geçerli bir ALIŞ emri açılabilir. Yukarıda bir kod örneği verdim ama muhtemelen parmaklarda daha kolaydır. Açık bir pozisyonun TP'si nasıl tetiklenir?

  • Fiyat TP BUY pozisyonuna ulaşır.
  • Ticaret sunucusu, ilgili geçerli bir SATIŞ emri yaratır.
  • Bundan sonra, terminalde aynı anda bir AL pozisyonu ve bir SATIŞ emri bulunur.
  • SATIŞ emri gerçekleştirilir, geçmişe girer ve aynı yerde bir anlaşma oluşturur.
  • İşlem verilerine dayanarak, hiçbir yere düşmeyen orijinal SATIN AL pozisyonu kapatılır - işlem geçmişinde dolaylı olarak bulunur.

 
Aslan59 :
Her şey uzun zamandır kabul edildi ve belgeleri yazmadan önce, muhtemelen Sergey Kovalev'in öğreticisini okumak gereksiz olmazdı (MQL4'te yerleşiktir):
Konu başlığını okuyun. Herkes MQL5 ile ilgili olduğunu düşündü. Burada forumda MQL4 ve MT4 için ilgili bir bölüm var. Soruyu orada sorsaydın daha farklı cevaplardın.
 
Aslan59 :
Her şey uzun zamandır kabul edildi ve belgeleri yazmadan önce, muhtemelen Sergey Kovalev'in öğreticisini okumak gereksiz olmazdı (MQL4'te yerleşiktir):


Piyasa ve bekleyen emirlerin analiz edildiği bir blok şu şekilde oluşturulabilir:

   for ( int i= 1 ; i<= OrdersTotal (); i++)       //Цикл по всем ордерам,..
     {                                         //отражённым в терминале
       if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) //Если есть следующий
        {                                    
         // Здесь должен выполняться ..
         // ..анализ характеристик ордеров
        }
     }                                         //Конец тела цикла

Döngü operatörünün başlığı i=1 başlangıç değerini içerir ve döngüyü sonlandırma koşulu i<=OrdersTotal() ifadesidir. OrdersTotal() işlevi, toplam piyasa ve bekleyen emir sayısını döndürür, yani. Ticaret sekmesindeki Terminal'e yansıtılan emirler. Bu nedenle, döngü, ticaretteki siparişler kadar yinelemeye sahip olacaktır.

Lütfen kodu doğru yapıştırın: Kodu doğru şekilde foruma yapıştırın (Yapıştırdığınız şeyi zaten düzelttim - ve bakın: sadece metni yapıştırdınız ve şimdi KOD, sözdizimi vurgulamalı).
 
Vitaly Muzichenko :

tavlanması gerekmez)

Bu MT4 kodudur ve içinde emir ve pozisyon ayrımı yoktur - her şey içinde karıştırılır

Ve ne, MQL4 ve MQL5'te OrdersTotal() işlevi farklı işlevler mi? Derleyici aynı...
 
Aslan59 :
Her şey uzun zamandır kabul edildi ve belgeleri yazmadan önce, muhtemelen Sergey Kovalev'in öğreticisini okumak gereksiz olmazdı (MQL4'te yerleşiktir):


Piyasa ve bekleyen emirlerin analiz edildiği bir blok şu şekilde oluşturulabilir:

   for ( int i= 1 ; i<= OrdersTotal (); i++)       //Цикл по всем ордерам,..
     {                                         //отражённым в терминале
       if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) //Если есть следующий
        {                                    
         // Здесь должен выполняться ..
         // ..анализ характеристик ордеров
        }
     }                                         //Конец тела цикла

Döngü operatörünün başlığı i=1 başlangıç değerini içerir ve döngüyü sonlandırma koşulu i<=OrdersTotal() ifadesidir. OrdersTotal() işlevi, toplam piyasa ve bekleyen emir sayısını döndürür, yani. Ticaret sekmesindeki Terminal'e yansıtılan emirler. Bu nedenle, döngü, ticaretteki siparişler kadar yinelemeye sahip olacaktır.

Sadece mql4'ten bahsetmiyor ve mql4'ten kod (ve mql5'te programlamanın özellikleri ve incelikleri hakkında bir konu) göstermiyorsunuz, ayrıca döngüyü yanlış yazdınız - sıfırdan başlamanız gerekiyor, aksi takdirde her zaman bir sıra atlarsınız.
 
Aslan59 :
Ve ne, MQL4 ve MQL5'te OrdersTotal() işlevi farklı işlevler mi? Derleyici aynı...
Evet, farklı.
 
Aslan59 :
Ve ne, MQL4 ve MQL5'te OrdersTotal() işlevi farklı işlevler mi? Derleyici aynı...

Ticaret işlevlerine gelince, farklılıklar var. Yukarıda MQL4 hakkında zaten söyledik:

oysa MQL5 OrdersTotal()'da bekleyen siparişlerin sayısını döndürür. Böylece, MQL5'te her şey daha yüksek bir düzeyde sistemleştirilir: pirzolalar ayrı ayrı uçar.
 
Artyom Trishkin :
Evet, farklı.
Ve fark nedir?
 
Aslan59 :
Ve fark nedir?

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri

Vladimir Karputov , 2017.02.28 19:44

Ticaret işlevlerine gelince, farklılıklar var. Yukarıda MQL4 hakkında zaten söyledik:

oysa MQL5 OrdersTotal()'da bekleyen siparişlerin sayısını döndürür. Böylece, MQL5'te her şey daha yüksek bir düzeyde sistemleştirilir: pirzolalar ayrı ayrı uçar.

 
Aslan59 :
Ve fark nedir?

Sipariş Toplamı()

Aktif siparişlerin sayısını döndürür.

int Sipariş Toplamı ();

Geri dönüş değeri

int tipinin değeri.

Not

Aktif bekleyen emirleri, "Araçlar" panelindeki "Ticaret" sekmesinde de görüntülenen pozisyonlarla karıştırmayın. Emir, bir alım satım işlemi yürütmek için verilen bir talimattır ve bir pozisyon, bir veya daha fazla işlemin sonucudur.

"Netleştirme" pozisyon muhasebesi ile (ACCOUNT_MARGIN_MODE_RETAIL_NETTING ve ACCOUNT_MARGIN_MODE_EXCHANGE), bir veya daha fazla anlaşmanın sonucu olan her sembol için herhangi bir zamanda sadece bir pozisyon açılabilir. Pozisyonlar, "Araçlar" panelindeki "Ticaret" sekmesinde de görüntülenen aktif bekleyen emirlerle karıştırılmamalıdır.

Pozisyonların bağımsız temsili ile (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), her bir sembol için aynı anda birkaç pozisyon açılabilir.


PozisyonlarToplam()

Açık pozisyonların sayısını döndürür.

int KonumlarToplam ();

Geri dönüş değeri

int tipinin değeri.

Not

"Netleştirme" pozisyon muhasebesi ile (ACCOUNT_MARGIN_MODE_RETAIL_NETTING ve ACCOUNT_MARGIN_MODE_EXCHANGE), bir veya daha fazla anlaşmanın sonucu olan her sembol için herhangi bir zamanda sadece bir pozisyon açılabilir. Pozisyonlar, "Araçlar" panelindeki "Ticaret" sekmesinde de görüntülenen aktif bekleyen emirlerle karıştırılmamalıdır.

Pozisyonların bağımsız temsili ile (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), her bir sembol için aynı anda birkaç pozisyon açılabilir.