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

 
SanAlex :

hala sıfır ve komisyonu göstermek istemiyor

 double Komsa( string Pair) {
   double   commicion= 0 ;
   int tikett,entry;
   ulong tik,ord;
//---------------------------------------------------------------   
   for ( int i= PositionsTotal ()- 1 ;i>= 0 ;i--) {
   if ( PositionGetSymbol (i)==Pair){  tik= PositionGetTicket (i); 
//---------------------------------------------------------------         
   HistorySelect ( 0 , TimeCurrent ());
   for ( uint r= HistoryDealsTotal ()- 1 ;r> 0 ;r--)   {
   if ((tikett= HistoryDealGetTicket (r))> 0 )   {
   ord= HistoryDealGetInteger (tikett, DEAL_ORDER );
   entry = HistoryDealGetInteger (tikett, DEAL_ENTRY );
   if (entry== DEAL_ENTRY_IN ) {
   if (tik==ord)  { commicion+= HistoryDealGetDouble (tikett, DEAL_COMMISSION )* 2 ;    }  }  } }  } }
//--------------------------------------------------------------  
   Comment ( " commisia " +commicion);
   return (commicion);  }

kısacası, seçilen çifti sayar, hızlı bir şekilde körlenir xs doğru veya yanlış, peki, kontrol edildiğinde doğru gösteriyor

 
Aleksandr Egorov :

kısacası, seçilen çifti hesaba katar

Teşekkür ederim! - şimdi test edeceğim, hala bu fonksiyonla ilgilenmem gerekiyor

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Evet! gösterir. Teşekkür ederim!

Fx10 4

 
SanAlex :

Teşekkür ederim! - şimdi test edeceğim, hala bu fonksiyonla ilgilenmem gerekiyor

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Evet! gösterir. Teşekkür ederim!


burada komisyon sadece bir taraf için hesaplanırsa, 2 ile çarpıldığı için fonksiyonun doğru çalışmadığı ortaya çıkıyor.

 DEAL_ENTRY_IN
bir şekilde ideal şekilde bitirmelisin
 
Aleksandr Egorov :

burada komisyon sadece bir taraf için hesaplanırsa, 2 ile çarpıldığı için fonksiyonun doğru çalışmadığı ortaya çıkıyor.

bir şekilde ideal olarak bitirmelisin

her şeyi gösteriyor gibi görünüyor

Biraz - düzelttim - doğru olup olmadığını bilmiyorum. ama uyarılar gitti

 //+------------------------------------------------------------------+
//|                                                   Commission.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link        " https://www.mql5.com "
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   Komsa( _Symbol );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Komsa( string Pair)
  {
   double   commicion= 0 ;
   ulong tikett,entry;
   ulong tik,ord;
//---------------------------------------------------------------
   for ( int i= PositionsTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( PositionGetSymbol (i)==Pair)
        {
         tik= PositionGetTicket (i);
         //---------------------------------------------------------------
         HistorySelect ( 0 , TimeCurrent ());
         for ( uint r= HistoryDealsTotal ()- 1 ; r> 0 ; r--)
           {
             if ((tikett= HistoryDealGetTicket (r))> 0 )
              {
               ord= HistoryDealGetInteger (tikett, DEAL_ORDER );
               entry = HistoryDealGetInteger (tikett, DEAL_ENTRY );
               if (entry== DEAL_ENTRY_IN )
                 {
                   if (tik==ord)
                    {
                     commicion+= HistoryDealGetDouble (tikett, DEAL_COMMISSION );
                    }
                 }
              }
           }
        }
     }
//--------------------------------------------------------------
   Comment ( " commisia " + DoubleToString (commicion, 2 ));
   return (commicion);
  }
//+------------------------------------------------------------------+

Fx10 5

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

ters bir pozisyon açtı ve komisyon arttı - doğru görünüyor

BTCUSDH1

 
SanAlex :

her şeyi gösteriyor gibi görünüyor

Biraz - düzelttim - doğru olup olmadığını bilmiyorum. ama uyarılar gitti

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

ters bir pozisyon açtı ve komisyon arttı - doğru görünüyor


Burada ayrıca giriş ve çıkış olarak nelerin sayıldığını veya sadece 1 lot ile açtıysanız ve 0,5 ile kapattıysanız sadece giriş ve pozun bir kısmını almak için kontrol etmeniz gerekir.

kısacası hala uğraşmanız gerekiyor
 

İşte her enstrüman için dönem kârını, toplam lotu ve komisyonu gösteren komut dosyası.
Teşekkür etme.

Dosyalar:
 
Dmitiry Ananiev :

İşte her enstrüman için dönem kârını, toplam lotu ve komisyonu gösteren komut dosyası.
Teşekkür etme.

senaryo normları iyi, gerçek şu ki, açık pozisyonlar için bir komiteye ihtiyacımız var ve bu tarihte

 
Aleksandr Egorov :

senaryo normları iyi, gerçek şu ki, açık pozisyonlar için bir komiteye ihtiyacımız var ve bu tarihte

Daha önce tartışıldı zaten. Brokerin işlem koşullarında komisyonu (broker tarafından beyan edilen) görebilirsiniz. Ve bir emrin (emrinin) yerine getirilmesi için gerçek komisyon, ancak emrin yerine getirilmesinden sonra bulunabilir, icradan önce bulunamaz.

not. Bir sonraki tikte bir yayılma gibi. Şu anki tikte ne fiyat, ne spread, ne takas, ne komisyon bir sonrakinde ne olacağını bilmiyoruz. Ve komisyoncu bunları değiştirme hakkına sahiptir.

 
Aleksandr Egorov :

Burada ayrıca giriş ve çıkış olarak nelerin sayıldığını veya sadece 1 lot ile açtıysanız ve 0,5 ile kapattıysanız sadece giriş ve pozun bir kısmını almak için kontrol etmeniz gerekir.

kısacası hala uğraşmanız gerekiyor

bilge olduğum bir şey - kendim anlayana kadar. Pozisyon açıldığında ayrı, pozisyon kapandığında ayrı ayrı kayıt yapıyorum.

bilge

 //+------------------------------------------------------------------+
//|                                                   Commission.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link        " https://www.mql5.com "
#property version    "1.00"
#include <Trade\Trade.mqh>
CTrade trade;
#property script_show_inputs
//---
input bool Inp_open_close = false ; // Open --> false || Close --> true
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ( void )
  {
//---
   if (!Inp_open_close)
     {
       if (!trade.PositionOpen( _Symbol , ORDER_TYPE_BUY , 0.1 , SYMBOL_ASK , 0.0 , 0.0 ))
         Print (trade.ResultRetcode());
       PlaySound ( "ok.wav" );
      CSV_OPEN();
     }
   if (Inp_open_close)
     {
       if ( TerminalInfoInteger ( TERMINAL_TRADE_ALLOWED ) && Bars ( _Symbol , _Period )> 100 )
         trade.PositionClose( _Symbol , 3 );
       PlaySound ( "ok.wav" );
      CSV_CLOS();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Komsa( void )
  {
   double   commicion= 0 ;
   ulong tikett,entry;
   ulong tik,ord;
//---------------------------------------------------------------
   for ( int i= PositionsTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( PositionGetSymbol (i)== _Symbol )
        {
         tik= PositionGetTicket (i);
         //---------------------------------------------------------------
         HistorySelect ( 0 , TimeCurrent ());
         for ( uint r= HistoryDealsTotal ()- 1 ; r> 0 ; r--)
           {
             if ((tikett= HistoryDealGetTicket (r))> 0 )
              {
               ord= HistoryDealGetInteger (tikett, DEAL_ORDER );
               entry = HistoryDealGetInteger (tikett, DEAL_ENTRY );
               if (entry== DEAL_ENTRY_IN )
                 {
                   if (tik==ord)
                    {
                     commicion+= HistoryDealGetDouble (tikett, DEAL_COMMISSION );
                    }
                 }
              }
           }
        }
     }
//--------------------------------------------------------------
   Comment ( " commisia " + DoubleToString (commicion, 2 ));
   return (commicion);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CSV_OPEN( void )
  {
//---
   ResetLastError ();
   int filehandle= FileOpen ( "CommissionOpen.csv" , FILE_READ | FILE_WRITE | FILE_CSV );
   if (filehandle==- 1 )
     {
       int res= GetLastError ();
       Print ( "File open error :  " ,
            res);
       return ;
     }
   FileSeek (filehandle, 0 , SEEK_END );
   FileWrite (filehandle,Komsa());
   FileClose (filehandle);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CSV_CLOS( void )
  {
//---
   ResetLastError ();
   int filehandle= FileOpen ( "CommissionClose.csv" , FILE_READ | FILE_WRITE | FILE_CSV );
   if (filehandle==- 1 )
     {
       int res= GetLastError ();
       Print ( "File open error :  " ,
            res);
       return ;
     }
   FileSeek (filehandle, 0 , SEEK_END );
   FileWrite (filehandle,Komsa());
   FileClose (filehandle);
  }
//+------------------------------------------------------------------+
 
Valeriy Yastremskiy :

Daha önce tartışıldı zaten. Brokerin işlem koşullarında komisyonu (broker tarafından beyan edilen) görebilirsiniz. Ve bir emrin (emrinin) yerine getirilmesi için gerçek komisyon, ancak emrin yerine getirilmesinden sonra bulunabilir, icradan önce bulunamaz.

not. Bir sonraki tikte bir yayılma gibi. Şu anki tikte ne fiyat, ne spread, ne takas, ne komisyon bir sonrakinde ne olacağını bilmiyoruz. Ve komisyoncu bunları değiştirme hakkına sahiptir.

Açık pozisyonlardan öğrenmesi gerekiyor

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

Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5

Aleksandr Egorov, 2021.07.14 22:30

senaryo normları iyi, gerçek şu ki , açık pozisyonlar için bir komiteye ihtiyacımız var ve bu tarihte