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

 
Artyom Trishkin :

Son pozisyonun açılma zamanını, son pozisyonun kapanma zamanını nasıl belirleyebilirsiniz?

Ve genel olarak, mql5‌'deki açık/kapalı pozisyonlar hakkında bilgi elde etmek için genel prensipleri ve algoritmaları bilmek istiyorum.

Nelere dikkat edilmesi gerekiyor, şu anda hangi özellikler var?

Mesele şu ki, ticaret bölümü ile çalışırken MQL5 sözdiziminden 1000 kat daha hafif ve daha net olan MQL4 sözdizimini kullanıyorum.

MQL4'te sorununuzu üç satırda ve herkes için anlaşılır şekilde çözmenin ne kadar kolay olduğunu çok iyi biliyorsunuz. Ben de bu şekilde karar veriyorum.

MQL5 ile ilgili tüm soruları cevaplamak için kütüphanenin kaynak koduna bakıyorum. Bildiğim tüm nüanslar dikkate alındı.

Şu anda Hedge ve Netleştirme pozisyonlarının çok farklı olduğunu söyleyebiliriz. Örneğin, Netleştirme'de, sürekli ticaret yaparken, aylar boyunca her zaman yalnızca bir pozisyonunuz olabilir. Bu nedenle, MT5'in standart anlayışındaki netleştirme pozisyonları, iyi düşünülmemiş ve dolayısıyla uygunsuz bir şeydir. Bu nedenle, aynı Netleştirme için kendi pozisyon varlığınızı yaratmanız mümkündür. Aynı MT4'te Netleştirme pozisyonlarına sahip olmak oldukça mümkündür, ancak çok daha anlaşılır bir etkileşim ile.

1 lot için bir pozisyon açın. Ardından 0,99'da kapatın ve aynı miktarı ekleyin. Ve böylece birkaç kez.

H‌edge, çok yönlü pozisyonlara sahip olmanın mümkün olduğu için değil, TEK yönün bir sembolünde birkaç pozisyon olabileceği için uygundur. Bu tam olarak Netleştirme sistemlerinde uygun gördüğüm pozisyonlarla çalışma türüdür. Ve MT5'te olan şey değil.

İdeal olarak, Netting hesapları üzerinde çalışırken, her zaman MT4 ifadelerine tam olarak uyan bir tablonuz olmalıdır. Çünkü yalnızca bu tür tablolar, ticaret hesabında ne ve nasıl olduğunu hemen anlayabilir. MT5 ifadeleri değil.

MT5-Hedge'e gelince, orada her şey basit. Ancak CloseBy kazmadı. Yani bilmiyorum.

 
fxsaber :
Kapalı bir pozisyonun SL/TP seviyelerini bulmak her zaman mümkün değildir.

Ayrıca alıntıdan, MT5'teki bir pozisyonun TP'sinin her zaman bir piyasa emri olduğu sonucu çıkar. Limit analoguna bahis yapmayın - yukarıya bakın.

Ama bu zaten ilginç... Son kapatılan pozisyonun kar al ile kapatıldığından emin olma ihtiyacı ile karşı karşıya kaldı.

Kesin olarak bilmenin bir yolu var mı?

 
Artyom Trishkin :

Ama bu zaten ilginç... Son kapatılan pozisyonun kar al ile kapatıldığından emin olma ihtiyacı ile karşı karşıya kaldı.

Kesin olarak bilmenin bir yolu var mı?

tavsiye edildiği gibi yapıyorum:

 //+------------------------------------------------------------------+
//| Возвращает причину закрытия позиции по Take Profit               |
//+------------------------------------------------------------------+
bool IsClosedByTP ( const string symbol)
{
   //--- Получим комментарий последней сделки на указанном символе
   string last_comment = LastDealComment (symbol);
   //--- Если в комментарии есть строка "tp"
   if ( StringFind (last_comment, "tp" , 0 ) > - 1 )
     return ( true );
   //--- Если нет строки "tp"
   return ( false );
}
//+------------------------------------------------------------------+
//| Возвращает причину закрытия позиции по Stop Loss                 |
//+------------------------------------------------------------------+
bool IsClosedBySL ( const string symbol)
{
   //--- Получим комментарий последней сделки на указанном символе
   string last_comment = LastDealComment (symbol);
   //--- Если в комментарии есть строка "sl"
   if ( StringFind (last_comment, "sl" , 0 ) > - 1 )
     return ( true );
   //--- Если нет строки "sl"
   return ( false );
}
//+------------------------------------------------------------------+
//| Возвращает комментарий последней сделки на указанном символе     |
//+------------------------------------------------------------------+
string LastDealComment ( const string symbol)
{
   int     total_deals  = 0 ;   // Всего сделок в списке выбранной истории
   string deal_symbol  = "" ; // Символ сделки
   string deal_comment = "" ; // Комментарий сделки
                             //--- Если история сделок получена
   if ( HistorySelect ( 0 , TimeCurrent ()))
  {
     //--- Получим количество сделок в полученном списке
    total_deals = HistoryDealsTotal ();
     //--- Пройдемся по всем сделкам в полученном списке от последней сделки к первой
     for ( int i = total_deals - 1 ; i >= 0 ; i--)
    {
       //--- Получим комментарий сделки
      deal_comment = HistoryDealGetString ( HistoryDealGetTicket (i), DEAL_COMMENT );
       //--- Получим символ сделки
      deal_symbol = HistoryDealGetString ( HistoryDealGetTicket (i), DEAL_SYMBOL );
       //--- Если символ сделки и текущий символ равны, остановим цикл
       if (deal_symbol == symbol)
         break ;
    }
  }
   //---
   return (deal_comment);
}

 
Andrey Dik :

tavsiye edildiği gibi yapıyorum:

Tamam, ama son işlemin bir pozisyonu kapatmak veya tersine çevirmekle sonuçlandığını nereden biliyorsunuz?

Pozisyon kapalı veya tersine çevrilmişse, danışmanın mantığı için gerekli olacak verilerini kontrol etmek mantıklıdır: hacim, al veya dur ile kapanma gerçeği, vb.

Aksi takdirde, son anlaşmanın bir alımla kapatıldığı tespit edildiyse, ancak pozisyon kaldıysa, son kapatılan pozisyondaki verileri kontrol etmenin bir anlamı yoktur (hala var).

Genel olarak, elbette, 4 sıralı sistemden sonra MT5 sipariş sisteminin mantığına hızlı bir şekilde geçmek oldukça zordur - danışman davranışının mantığı hakkında düşünürken, verilerle bağlantılı olan çok fazla soru ortaya çıkar. son kapalı pozisyon - 4 pozisyonunda her şey şeffaf - pozisyonun kendi tipi var ve son - uygun - verileri alıp kullanıyoruz. Ama burada... riskten korunma, netleştirme... ve sonucun aynı olması gerekiyor... ve düşünceler alt üst oldu...‌

 
Artyom Trishkin :

Tamam, ama son işlemin bir pozisyonu kapatmak veya tersine çevirmekle sonuçlandığını nereden biliyorsunuz?

1. Pozisyon kapalı veya tersine çevrilmişse, danışmanın mantığı için gerekli olacak olan verilerini kontrol etmek mantıklıdır: hacim, al veya dur ile kapanma gerçeği, vb...

2. Aksi takdirde, son anlaşmanın bir alımla kapatıldığı tespit edildiyse, ancak pozisyon kaldıysa, son kapatılan pozisyondaki verileri kontrol etmenin bir anlamı yoktur (hala var).

Genel olarak, elbette, 4 sıralı sistemden sonra MT5 sipariş sisteminin mantığına hızlı bir şekilde geçmek oldukça zordur - danışman davranışının mantığı hakkında düşünürken, verilerle bağlantılı olan çok fazla soru ortaya çıkar. son kapalı pozisyon - 4 pozisyonunda her şey şeffaf - pozisyonun kendi tipi var ve son - uygun - verileri alıp kullanıyoruz. Ama burada... riskten korunma, netleştirme... ve sonucun aynı olması gerekiyor... ve düşünceler alt üst oldu...‌

1. İşlem türünü, GİRİŞ, ÇIKIŞ veya GİRİŞ/ÇIKIŞ'ı kontrol edin

2. Pozisyon SL veya TP tarafından kapatılmışsa, artık orada değildir, kapatılmıştır, işlem türünü kontrol etmeye gerek yoktur.

 
Andrey Dik :

1. İşlem türünü, GİRİŞ, ÇIKIŞ veya GİRİŞ/ÇIKIŞ'ı kontrol edin

2. Pozisyon SL veya TP tarafından kapatılmışsa, artık orada değildir, kapatılmıştır, işlem türünü kontrol etmeye gerek yoktur.

Bu ağ için doğru mu? Yoksa çit için de mi? Bir hedge hesabının tek yönde birden fazla pozisyonu olamaz mı? Veya, yine de, konum birdir ve .... Peki ya "ve"? ... Kahretsin ... Neyin “ve” olduğunu bilmiyorum ... Bir sürü soru var, cevaplar hala kafama uymuyor.
 
Artyom Trishkin :
Bu ağ için doğru mu? Yoksa çit için de mi? Bir hedge hesabının tek yönde birden fazla pozisyonu olamaz mı? Yoksa hala bir konum mu - bir ve .... Peki ya "ve"? ... Kahretsin ... Neyin “ve” olduğunu bilmiyorum ... Bir sürü soru var, cevaplar hala kafama uymuyor.

‌Çit için de.

Birkaç yıldır beynim ağlarla keskinleştirildi.‌ Sipariş->Ticaret->Pozisyon. Bir pozisyonda çok sayıda işlem olabilir (hedge ile, sadece bir işlem vardır, değilse guruları düzeltin), işlem türüne göre pozisyona ne olduğunu belirleyebilirsiniz.

Çitte, elbette, anlaşılması daha kolaydır, ancak bakımı daha zordur. IMHO elbette.

 
Andrey Dik :

‌Çit için de.

Birkaç yıldır beynim ağlarla keskinleştirildi.‌ Sipariş->Ticaret->Pozisyon. Bir pozisyonda çok sayıda işlem olabilir (hedge ile, sadece bir işlem vardır, değilse guruları düzeltin), işlem türüne göre pozisyona ne olduğunu belirleyebilirsiniz.

Çitte, elbette, anlaşılması daha kolaydır, ancak bakımı daha zordur. IMHO elbette.

Tamam teşekkür ederim. Çözeceğim.
 
Artyom Trishkin :

Ama bu zaten ilginç... Son kapatılan pozisyonun kar al ile kapatıldığından emin olma ihtiyacı ile karşı karşıya kaldı.

Kesin olarak bilmenin bir yolu var mı?

DEAL_ENTRY_OUT son fırsatını bulduğunuzda ve bu listede HistorySelectByPosition pozisyonunun tüm geçmişini seçtiğinizde, hadge hesapları için 2 fırsat ve 2 emir, pozisyon açma ve kapatma var. Kapanışın gerçekleştiği sipariş, ORDER_PRICE_OPEN içeriyor. Daha sonra pozisyonun tipini ve kapatılan emrin tipini kontrol edersiniz... Emir ters tipte ise, o zaman kapalıdır. Buna göre, emrin fiyatı, küçük bir açıklama ile istenen fiyattır: Emrin karı > 0 ise, bu TP'nin fiyatıdır, < 0 ise, pozisyon SL tarafından kapatılmıştır.

Arama emriyle ilgili bir yoruma güvenerek, yapmazdım.]

 
Alexey Viktorov :

DEAL_ENTRY_OUT son fırsatını bulduğunuzda ve bu listede HistorySelectByPosition pozisyonunun tüm geçmişini seçtiğinizde, hadge hesapları için 2 fırsat ve 2 emir, pozisyon açma ve kapatma var. Kapanışın gerçekleştiği sipariş, ORDER_PRICE_OPEN içeriyor. Daha sonra pozisyonun tipini ve kapatılan emrin tipini kontrol edersiniz... Emir ters tipte ise, o zaman kapalıdır. Buna göre, emrin fiyatı, küçük bir açıklama ile istenen fiyattır: Emrin karı > 0 ise, bu TP'nin fiyatıdır, < 0 ise, pozisyon SL tarafından kapatılmıştır.

Arama emriyle ilgili bir yoruma güvenmezdim.]

SL trolüne ne dersiniz? Siyah SL trolünde neyin kapalı olduğunu nasıl belirleyeceksiniz?
Neden: