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

 
Vladimir Karputov :
Şimdi basit bir danışmanla kontrol edelim...
Kontrol etmeye gerek yok. Mantık MQL4'tekiyle aynıdır: Kar, Komisyon ve Takas ayrı varlıklardır.
 
fxsaber :
Kontrol etmeye gerek yok. Mantık MQL4'tekiyle aynıdır: Kar, Komisyon ve Takas ayrı varlıklardır.
Lütfen kodla birlikte gösterin, işte doğrudan kod mql5'te ve tercihen saptırma olmadan
 
Vladimir Karputov :
Şimdi basit bir danışmanla kontrol edelim...

Vladimir, sonuç şu ki dördünde şunu yapıyorum:

// считаем комиссии и свопы в пипки
     swap= OrderSwap ();
     commission= OrderCommission ();
     if (swap+commission< 0.0 ) {
      costs= NormalizeDouble ( MathAbs (((swap+commission)/( SymbolInfoDouble (_symbol, SYMBOL_TRADE_TICK_VALUE )*ol))* _Point ), _Digits );
     } else {
      costs= 0.0 ;
     }
// прибавляем количество пипок
if ((( Bid -(br+costs+((BreakevenStep* _Point )*D)))>=op) && typ== 0 )
{
   OrderModify (...);
}

Beşincide nasıl yapılır?

 
Vitaly Muzichenko :

Vladimir, sonuç şu ki dördünde şunu yapıyorum:

// считаем комиссии и свопы в пипки
     swap= OrderSwap ();
     commission= OrderCommission ();
     if (swap+commission< 0.0 ) {
      costs= NormalizeDouble ( MathAbs (((swap+commission)/( SymbolInfoDouble (_symbol, SYMBOL_TRADE_TICK_VALUE )*ol))* _Point ), _Digits );
     } else {
      costs= 0.0 ;
     }
// прибавляем количество пипок
if ((( Bid -(br+costs+((BreakevenStep* _Point )*D)))>=op) && typ== 0 )
{
   OrderModify (...);
}

Beşincide nasıl yapılır?

Baştan ekle
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006
Veya her şeyi şiddetle yeniden yazın.
 
Vitaly Muzichenko :
Lütfen kodla birlikte gösterin, işte doğrudan kod mql5'te ve tercihen saptırma olmadan
Bu neredeyse imkansız! SB'den çıkarıldı, doğrudan kod
//+------------------------------------------------------------------+
//| Get the property value "POSITION_COMMISSION"                     |
//+------------------------------------------------------------------+
double CPositionInfo::Commission( void ) const
  {
   return ( PositionGetDouble ( POSITION_COMMISSION ));
  }
//+------------------------------------------------------------------+
//| Get the property value "POSITION_SWAP"                           |
//+------------------------------------------------------------------+
double CPositionInfo::Swap( void ) const
  {
   return ( PositionGetDouble ( POSITION_SWAP ));
  }
//+------------------------------------------------------------------+
//| Get the property value "POSITION_PROFIT"                         |
//+------------------------------------------------------------------+
double CPositionInfo::Profit( void ) const
  {
   return ( PositionGetDouble ( POSITION_PROFIT ));
  }
 
fxsaber :
Bu neredeyse imkansız! SB'den çıkarıldı, doğrudan kod
//+------------------------------------------------------------------+
//| Get the property value "POSITION_COMMISSION"                     |
//+------------------------------------------------------------------+
double CPositionInfo::Commission( void ) const
  {
   return ( PositionGetDouble ( POSITION_COMMISSION ));
  }
//+------------------------------------------------------------------+
//| Get the property value "POSITION_SWAP"                           |
//+------------------------------------------------------------------+
double CPositionInfo::Swap( void ) const
  {
   return ( PositionGetDouble ( POSITION_SWAP ));
  }
//+------------------------------------------------------------------+
//| Get the property value "POSITION_PROFIT"                         |
//+------------------------------------------------------------------+
Belgelere yazmayı unuttum ama bu " POSITION_COMMISSION " işe yarıyor mu?
 
new-rena :
Belgelere yazmayı unuttum ama bu " POSITION_COMMISSION " işe yarıyor mu?
Sapıklık olmadan sordun. Ve eğer onlarla

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

Hatalar, hatalar, sorular

fxsaber , 2016.07.19 12:40

Test cihazındaki (RoboForexEU-MetaTrader 5) POSITION_COMMISSION özelliği her zaman sıfır komisyon döndürür.

 //+------------------------------------------------------------------+
//| Get the property value "POSITION_COMMISSION"                     |
//+------------------------------------------------------------------+
double CPositionInfo::Commission( void ) const
  {
   return ( PositionGetDouble ( POSITION_COMMISSION ));
  }

Ayrıca POSITION_COMMISSION (== 8) yardım ve meta düzenleyicide (vurgulama) eksik, ancak derleyici tanıdık. Pozisyon komisyonunun başka bir (çalışan) yöntemle belirlenmesi zor değildir. POSITION_COMMISSION özelliği bir kalıntı mı?


Yani böyle
double GetPositionCommission( void )
{
   double Commission = :: PositionGetDouble ( POSITION_COMMISSION );

   // На случай, если POSITION_COMMISSION не работает
   if (Commission == 0 )
  {
     const ulong Ticket = MT4ORDERS::GetPositionDealIn();

     if (Ticket > 0 )
    {
       const double LotsIn = :: HistoryDealGetDouble (Ticket, DEAL_VOLUME );

       if (LotsIn > 0 )
        Commission = :: HistoryDealGetDouble (Ticket, DEAL_COMMISSION ) * :: PositionGetDouble ( POSITION_VOLUME ) / LotsIn;
    }
  }

   return (Commission);
}
Veya

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

Yeni Başlayanlardan Sorular

fxsaber , 2016.10.29 16:23

MT4Orders kitaplığını empoze etmiyorum. Ama belki eski güzel OrderCommission'u aramak daha kolay olurdu?

Yine de sadece hedge hesaplarında değil, aynı zamanda nette de çalışır.

 
Vladimir Karputov :
Şimdi basit bir danışmanla kontrol edelim...

Burada: POSITION_PROFIT , pozisyon kârını gösterir

POSITION_PROFIT

. Bu, takas ve benzerlerini hesaba katmaz.

 
Vitaly Muzichenko :

Vladimir, sonuç şu ki dördünde şunu yapıyorum:

// считаем комиссии и свопы в пипки
     swap= OrderSwap ();
     commission= OrderCommission ();
     if (swap+commission< 0.0 ) {
      costs= NormalizeDouble ( MathAbs (((swap+commission)/( SymbolInfoDouble (_symbol, SYMBOL_TRADE_TICK_VALUE )*ol))* _Point ), _Digits );
     } else {
      costs= 0.0 ;
     }
// прибавляем количество пипок
if ((( Bid -(br+costs+((BreakevenStep* _Point )*D)))>=op) && typ== 0 )
{
   OrderModify (...);
}

Beşincide nasıl yapılır?

Komisyon öyle öngörülemez bir maddedir ki, ancak kapalı bir işlem için belirlenebilir. Açık bir pozisyondan sadece cari karı (swap etkisini veya komisyon etkisini dikkate almayan) ve takası öğrenebilirsiniz. İşte kod:

" m_trade.PositionClose(Symbol());" satırına bir kesme noktası koyun ve geriye dönük testi çalıştırın. Test cihazı kesme noktasında durduğunda, Kar ve Takas sütunlarındaki sayıları Test Cihazının Günlüğünde yazdırılacak sayılarla karşılaştırın.

Dosyalar:
3.mq5  5 kb
 
Vladimir Karputov :

Burada: POSITION_PROFIT , pozisyon kârını gösterir

. Bu, takas ve benzerlerini hesaba katmaz.

TAMAM. Anladım.

fxsaber'ın çözümü iyi , uygulanmış.

Prensip olarak, programımı neredeyse hiç problem yaşamadan MQL4'ten MQL5'e aktardım.

Nüanslar - yukarıda.

Herkese çok teşekkürler!