Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1005

 

Bekleyen ayar için buraya böyle bir istek gönderiyorum. Ancak işlem gününün sonunda süresi dolmaz. ORDER_TIME_SPECIFIED_DAY denendi , bu da yardımcı olmuyor. Sorun ne olabilir?\

 MqlTradeRequest   request = { 0 };
         request.action = TRADE_ACTION_PENDING ;
         request.symbol = _Symbol ;
         request.volume = Lot;
         request.price  = high(Quant_Bars); 
         request.sl     = sl;
         request.tp     = tp;
         request.type   = ORDER_TYPE_BUY_STOP ; 
         request.expiration = ORDER_TIME_DAY ;
         request.magic = magicN;
MqlTradeResult result = { 0 };

if ( OrderSend (request,result))
    {
     Print ( "Ордер успешно отправлен, ошибок нет =  " , GetLastError ());
    } else
       {
         Print ( "Не удалось отправить запрос, ошибка = " , GetLastError ());
       }
 

TrendLineVisible işlevi - standart CCurve sınıfından - bu bir gerileme çizgisi mi?

Bu çizgiyi tamamen çizelgeye düşürmeyi ve kesilmemesini nasıl sağlayabilirim?


 

neden burada diyor ki ... pozisyon sadece yöntemle seçilmelidir   Seçme   veya   SelectByIndex ,

SelectByTicket yöntemi de işe yararsa?

 

ArrayPrint işlevini bulmama yardım et - Dizinin son 100 öğesini ve ilk 100 ve son 100 öğesini almak istiyorum.

               ArrayPrint (arr_P_val_X, 8 , NULL ,Calc_XY- 100 , 100 , ARRAYPRINT_INDEX ); //Ожидаю получить 100 последних элементов, выдает первые
               ArrayPrint (arr_P_val_X, ARRAYPRINT_LIMIT ); //Хочу получить 100 и 100 последний - выдает весь массив - что не так?

Calc_XY - dizideki eleman sayısı.

 

yeni açılan bir anlaşmanın bileti nasıl alınır?
CTrade sınıfını ve Buy() işlevini kullanırsanız.

MT4'te OrderSend() işlevi hemen bir bilet verdi.



Pozisyon indeksine göre pozisyon bileti veren bir fonksiyon var mı?

Yoksa önce bir pozisyon seçmem mi gerekiyor (seç)?

 
multiplicator :

yeni açılan bir anlaşmanın bileti nasıl alınır?
CTrade sınıfını ve Buy() işlevini kullanıyorsanız.

MT4'te OrderSend() işlevi hemen bir bilet verdi.



Pozisyon indeksine göre pozisyon bileti veren bir fonksiyon var mı?

Yoksa önce bir pozisyon seçmem mi gerekiyor (seç)?

OnTradeTransaction'da, işlem türü trans.type == TRADE_TRANSACTION_DEAL_ADD ise, bileti trans.position yapısında bulursunuz.

 struct MqlTradeTransaction 
  { 
   ulong                          deal;             // Тикет сделки 
   ulong                          order;             // Тикет ордера 
   string                         symbol;           // Имя торгового инструмента 
   ENUM_TRADE_TRANSACTION_TYPE    type;             // Тип торговой транзакции 
   ENUM_ORDER_TYPE                order_type;       // Тип ордера 
   ENUM_ORDER_STATE               order_state;       // Состояние ордера 
   ENUM_DEAL_TYPE                 deal_type;         // Тип сделки 
   ENUM_ORDER_TYPE_TIME           time_type;         // Тип ордера по времени действия 
   datetime                       time_expiration;   // Срок истечения ордера 
   double                         price;             // Цена  
   double                         price_trigger;     // Цена срабатывания стоп-лимитного ордера 
   double                         price_sl;         // Уровень Stop Loss 
   double                         price_tp;         // Уровень Take Profit 
   double                         volume;           // Объем в лотах 
   ulong                          position;         // Тикет позиции 
   ulong                          position_by;       // Тикет встречной позиции 
  };
 
Herkese merhaba, sevgili forum katılımcıları, moderatörler, yöneticiler vb. 
Lütfen bana MQL5'te açık pozisyonlardaki toplam kârın nasıl hesaplanacağını açıklayın. MQL4'te bununla ilgili herhangi bir sorun yoktur. Buraya tembellikten yazmıyorum. 
ama nasıl uygulayacağımı bilmediğim için. PositionGetDouble (POSITION_PROFIT) kullanılarak sadece ilk açık pozisyon için kar hesaplanır, 
geri kalanı için hesaplanmaz. 

MQL4'te OrderProfit() tüm siparişler için karı gösterir . Bir şey kaçırmış olabilir... 


Üzgünüm, hedge hesap türünü belirtmeyi unuttum
 
Ramiz Mavludov :
Üzgünüm, hedge hesap türünü belirtmeyi unuttum

Acilen ve kesinlikle okuma yazma kurslarına katılmanız gerekiyor. mql5'te, tıpkı mql4'te olduğu gibi, bir pozisyonla çalışmadan önce (mql4'te bir emirle), bir pozisyon seçilmelidir. mql4'ün aksine mql5'te ÜÇ konum seçim fonksiyonunu hatırlıyorum. Belgelerde iyi açıklanmıştır. Yolda ... kabalık için almayın.

 
Ramiz Mavludov :
Üzgünüm, hedge hesap türünü belirtmeyi unuttum

Kod Önceki Mum Dağılımı 3 , CalculatePositions işlevi, tam kâr

 //+------------------------------------------------------------------+
//| Calculate positions Buy and Sell                                 |
//+------------------------------------------------------------------+
void CalculatePositions( int &count_buys, int &count_sells, double &profit)
  {
   count_buys= 0 ;
   count_sells= 0 ;
   profit= 0.0 ;

   for ( int i= PositionsTotal ()- 1 ;i>= 0 ;i--)
       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)
           {
            profit+=m_position.Commission()+m_position.Swap()+m_position.Profit();
             if (m_position.PositionType()== POSITION_TYPE_BUY )
               count_buys++;

             if (m_position.PositionType()== POSITION_TYPE_SELL )
               count_sells++;
           }
//---
   return ;
  }

bu sembol ve bu Magic'y için tüm pozisyonları atladıktan sonra, kar değişkeni toplam karı içerecektir.

 
Vladimir Karputov :

Kod Önceki Mum Dağılımı 3 , CalculatePositions işlevi, tam kâr

bu sembol ve bu Magic'y için tüm pozisyonları atladıktan sonra, kar değişkeni toplam karı içerecektir.

Vladimir'e teşekkürler.