Çeviri zorlukları :) - sayfa 5

 
fxsaber : #include <Trade/Trade.mqh> varsa, SONRA bu satırı ekleyin
Sonra - her şey yolundaysa)
 
Alexey Volchanskiy :

Soru - MQL5'te bir pozisyonun komisyonu nasıl bulunur?

MQL4'te bunu yaptım

Ve MQL5'te komisyon yok, sadece bu şekilde ortaya çıkıyor

Siparişin özelliklerine baktım komisyon da yok. Ve ne yapmalı?

Sembolün özelliklerinde bir yerde
 
Alexey Volchanskiy :

Soru - MQL5'te bir pozisyonun komisyonu nasıl bulunur?

MQL4'te bunu yaptım

Ve MQL5'te komisyon yok, sadece bu şekilde ortaya çıkıyor

Siparişin özelliklerine baktım komisyon da yok. Ve ne yapmalı?

İşlem özelliklerine bakın. HistoryDealGetDouble (bilet, DEAL_COMMISSION);
 
Alexey Volchanskiy :

Soru - MQL5'te bir pozisyonun komisyonu nasıl bulunur?

MQL4'te bunu yaptım

Ve MQL5'te komisyon yok, sadece bu şekilde ortaya çıkıyor

Siparişin özelliklerine baktım komisyon da yok. Ve ne yapmalı?

Kütüphane çağrıldığında doğru değeri döndürür

 OrderCommission ()

Oradaki kaynakta

   static ulong GetPositionDealIn( const ulong HistoryTicket= 0 )
     {
       ulong Ticket= 0 ;

       if ((HistoryTicket== 0 ) ? :: HistorySelectByPosition (:: PositionGetInteger ( POSITION_TICKET )) : :: HistorySelectByPosition (HistoryTicket))
        {
         const int Total=:: HistoryDealsTotal ();

         for ( int i= 0 ; i<Total; i++)
           {
             const ulong TicketDeal=:: HistoryDealGetTicket (i);

             if (TicketDeal> 0 )
               if (( ENUM_DEAL_ENTRY ):: HistoryDealGetInteger (TicketDeal, DEAL_ENTRY )== DEAL_ENTRY_IN )
                 {
                  Ticket=TicketDeal;

                   break ;
                 }
           }
        }

       return (Ticket);
     }

   static 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);
     }
 

Vermek ... Belgelerde POSITION_COMISSION özelliği yoktur, sadece DEAL_COMISSION işleminin özelliklerinde.

Teşekkürler, belgelerdeki bir yanlışlığı daha öğreneceğim.

 
Peki komisyon nasıl hesaplanır? Pozisyonun karına eklenmiyor mu? İşlemden hemen sonra pozisyon açmak bakiyeyi etkiler mi?
 
Dmitry Fedoseev :
Peki komisyon nasıl hesaplanır? Pozisyonun karına eklenmiyor mu? İşlemden hemen sonra pozisyon açmak bakiyeyi etkiler mi?
Evet.
 
fxsaber :

Kütüphane çağrıldığında doğru değeri döndürür

Oradaki kaynakta

Sonunda yorum yaptığınız tanımlar var, doğru mu? Ve ilerisi. YouTube blogumda MQL4'ten MQL5'e çeviri hakkında bir video yapacağım. Kitaplığınızı da düşünmemin sakıncası var mı? Ve elbette kod tabanına bir bağlantı.

 /*
#define OrderClose  MT4ORDERS::MT4OrderClose
#define OrderModify MT4ORDERS::MT4OrderModify // нельзя, например: CTrade::OrderModify
#define OrderDelete MT4ORDERS::MT4OrderDelete // нельзя, например: CTrade::OrderDelete

#define OrdersHistoryTotal MT4ORDERS::MT4OrdersHistoryTotal

#define OrderTicket      MT4ORDERS::MT4OrderTicket
#define OrderType        MT4ORDERS::MT4OrderType // нельзя, например: CHistoryOrderInfo::OrderType
#define OrderLots        MT4ORDERS::MT4OrderLots
#define OrderSymbol      MT4ORDERS::MT4OrderSymbol
#define OrderComment     MT4ORDERS::MT4OrderComment
#define OrderOpenPrice   MT4ORDERS::MT4OrderOpenPrice
#define OrderOpenTime    MT4ORDERS::MT4OrderOpenTime
#define OrderStopLoss    MT4ORDERS::MT4OrderStopLoss
#define OrderTakeProfit  MT4ORDERS::MT4OrderTakeProfit
#define OrderClosePrice  MT4ORDERS::MT4OrderClosePrice
#define OrderCloseTime   MT4ORDERS::MT4OrderCloseTime
#define OrderExpiration  MT4ORDERS::MT4OrderExpiration
#define OrderMagicNumber MT4ORDERS::MT4OrderMagicNumber
#define OrderProfit      MT4ORDERS::MT4OrderProfit
#define OrderCommission  MT4ORDERS::MT4OrderCommission
#define OrderSwap        MT4ORDERS::MT4OrderSwap
#define OrderPrint       MT4ORDERS::MT4OrderPrint
*/
 
Alexey Viktorov :

Vermek ... Belgelerde POSITION_COMISSION özelliği yoktur, sadece DEAL_COMISSION işleminin özelliklerinde.

Teşekkürler, belgelerdeki bir yanlışlığı daha öğreneceğim.

Ve belgelerde böyle bir özellik yoktur, ancak derler ) Terminal yardımında bu kadar.

POSITION_VOLUME

konum hacmi

çift

POSITION_PRICE_OPEN

pozisyon fiyatı

çift

POSITION_SL

Açık bir pozisyon için Zararı Durdur seviyesi

çift

POSITION_TP

Açık bir pozisyon için Kar seviyesini al

çift

POSITION_PRICE_CURRENT

Sembole göre geçerli fiyat

çift

POSITION_SWAP

birikmiş takas

çift

POSITION_PROFIT

Mevcut kar

çift

 
Alexey Viktorov :
İşlem özelliklerine bakın. HistoryDealGetDouble (bilet, DEAL_COMMISSION);
Yani komisyon ancak pozisyon kapatıldıktan sonra öğrenilebilir mi? Ama açılışta alınır en azından Alpa ve Robo'daki ECN hesaplarında. O kötü..
Neden: