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

 
Aslan59 :
Teşekkür ederim!
"Emir alım satım işlemi yapmak için verilen bir emir" olduğundan, sadece bekleyen emirler "aktif emir" olarak sınıflandırılabilir ve "Pozisyonlar - al ve sat" bir alım satım işlemi yürütmek için bir talimat değildir. Yoksa bir şey mi kaçırıyorum?

Rusça'ya tercüme edilen sipariş bir emirdir. Bir sipariş (sipariş) verirsiniz, herhangi biri 8 olabilir.

1, 2, 3, 4 - al-durdur, sat-durdur, al-limit ve sat-limit - pozisyon tetiklendikten sonra belirir

5, 6 - al veya sat - bunlar artık emir değil

7, 8 - zararı durdur ve kar al - emirler, piyasadan çıkmak için DC emirleri

1, 2, 3, 4 durumunda - bekleyen siparişler

5, 6 - piyasayı ele geçirmek), yani piyasada belirli bir pozisyonu işgal etmek, tıpkı bir savaşta olduğu gibi, herkesin emir (emir) komutanları tarafından gönderildikleri cephede kendi pozisyonu vardır.

 
Aslan59 :
Teşekkür ederim!
"Emir alım satım işlemi yapmak için verilen bir emir" olduğundan, sadece bekleyen emirler "aktif emir" olarak sınıflandırılabilir ve "Pozisyonlar - al ve sat" bir alım satım işlemi yürütmek için bir talimat değildir. Yoksa bir şey mi kaçırıyorum?
Ayrıca bağlantıda ilk "Ticaret koşulları" bölümünü de görebilirsiniz.
 
Vitaly Muzichenko :

5, 6 - al veya sat - bunlar artık emir değil

Aşağıdaki kod, bunların geçerli siparişler olduğunu gösterir.

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

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

fxsaber , 2017.02.25 16:30

// Триггер срабатывания SL/TP - работает только на демо/реале (не в тестере).
void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest &Request, const MqlTradeResult &Result )
{
   if ((Trans.type == TRADE_TRANSACTION_ORDER_ADD ) &&
       PositionSelectByTicket (Trans.position) && OrderSelect (Trans.order) &&
       ( PositionGetInteger ( POSITION_TYPE ) == 1 - OrderGetInteger ( ORDER_TYPE )))
  {
     const double Price = OrderGetDouble ( ORDER_PRICE_OPEN );
    
     if (Price == PositionGetDouble ( POSITION_TP ))
       Print ( "Position #" + ( string )Trans.position + " - triggered TP." );    
     else if (Price == PositionGetDouble ( POSITION_SL ))
       Print ( "Position #" + ( string )Trans.position + " - triggered SL." );    
  }
}
 
fxsaber :
Aktif emirler, TP/SL ve MarginCall emirleri haricinde, icra veya iptal bekleyen alım satım emirleridir. Geçerli emirler AL ve SAT olabilir.
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?
 
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?
Numara. OrdersTotal () 2 döndürür (bunlar Buy Limit ve Sell Stop bekleyen emirlerdir ) ve PositionsTotal() ayrıca 2 (Al ve Sat pozisyonları) döndürür.
 
Vladimir Karputov :
Numara. OrdersTotal () 2 döndürür (bunlar Buy Limit ve Sell Stop bekleyen emirlerdir ) ve PositionsTotal() ayrıca 2 (Al ve Sat pozisyonları) döndürür.
)) Şimdi bu harika!!!! OrdersTotal () işlevi hala ne döndürüyor?
 
Aslan59 :
)) Şimdi bu harika!!!! OrdersTotal () işlevi hala ne döndürüyor?
Aşağıdaki terminolojiyi kabul edebilirsiniz: pozisyon, halihazırda alınmış / satılmış veya manuel olarak alınmış veya bekleyen bir emir tetiklenmiş bir şeydir ve emir, fiyat belirli bir seviyeye ulaştığında bir pozisyon açmak için bekleyen bir emirdir.
 
Aslan59 :
)) Şimdi bu harika!!!! OrdersTotal () işlevi hala ne döndürüyor?

En sonunda okumaya yardım edin :).

Öğrenmek:

//+------------------------------------------------------------------+
//|                                    OrdersTotalPositionsTotal.mq5 |
//|                              Copyright © 2017, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
//---
#include <Trade\PositionInfo.mqh>
#include <Trade\OrderInfo.mqh>
CPositionInfo  m_position;                   // trade position object
COrderInfo     m_order;                       // pending orders object
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   int total= 0 ;
   for ( int i= PositionsTotal ()- 1 ;i>= 0 ;i--) // returns the number of open positions
       if (m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
        {
         //if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
         Print ( "position " ,total, ": " ,m_position. Symbol (), " " , EnumToString (m_position.PositionType()),
               " " , DoubleToString (m_position. Volume (), 2 ), " " , DoubleToString (m_position.PriceOpen(), 8 ));
         total++;
        }
   total= 0 ;
   for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) // returns the number of current orders
       if (m_order.SelectByIndex(i))     // selects the pending order by index for further access to its properties
        {
         //if(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic)
         Print ( "pending order " ,total, ": " ,m_order. Symbol (), " " , EnumToString (m_order. OrderType ()),
               " " , DoubleToString (m_order.VolumeInitial(), 2 ), " " , DoubleToString (m_order.PriceOpen(), 8 ));
         total++;
        }
  }
//+------------------------------------------------------------------+

İşte "Ticaret" sekmesinin durumu:

Ticaret

Gördüğünüz gibi, İKİ POZİSYON açık (EURUSD 0.03 al ve USDCAD 0.02 al ve 0.02 al) ve ÜÇ BEKLEMEDE EMİR (USDJPY alış limiti, USDJPY satış limiti ve EURUSD alış limiti) veriliyor.

ve komut dosyası çıktısı:

2017.02 . 28 20 : 14 : 43.804 OrdersTotalPositionsTotal (EURUSD,H1)   position 0 : USDCAD POSITION_TYPE_BUY 0.02 1.32797000
2017.02 . 28 20 : 14 : 43.804 OrdersTotalPositionsTotal (EURUSD,H1)   position 1 : EURUSD POSITION_TYPE_BUY 0.03 1.06088000
2017.02 . 28 20 : 14 : 43.804 OrdersTotalPositionsTotal (EURUSD,H1)   pending order 0 : EURUSD ORDER_TYPE_BUY_LIMIT 0.03 1.05879000
2017.02 . 28 20 : 14 : 43.804 OrdersTotalPositionsTotal (EURUSD,H1)   pending order 1 : USDJPY ORDER_TYPE_SELL_LIMIT 0.01 112.71100000
2017.02 . 28 20 : 14 : 43.804 OrdersTotalPositionsTotal (EURUSD,H1)   pending order 2 : USDJPY ORDER_TYPE_BUY_LIMIT 0.01 111.74500000
 
Maksim Krolenko :
Aşağıdaki terminolojiyi kabul edebilirsiniz: pozisyon, halihazırda alınmış / satılmış veya manuel olarak alınmış veya bekleyen bir emir tetiklenmiş bir şeydir ve emir, fiyat belirli bir seviyeye ulaştığında bir pozisyon açmak için bekleyen bir emirdir.
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.

 
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:

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.

tavlanması gerekmez)

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