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

 
Vladimir Baskakov :

Durumun doğru yazılışı konusunda kafanız karıştı, yardım edin:

İki seçenek olabilir:

  1. "MA Hızlı"nın üstünde "MA Yavaş"
  2. "MA Yavaş", "MA Hızlı"ya eşit veya daha az


Buna göre sonucun işareti "+" veya "-" olacaktır. İşaret "-" ise, "-" her zaman 5*Puan()'dan küçük olacağından, koşulunuz hiçbir zaman karşılanmayacaktır.


Yani kod şu şekilde olacaktır:

   if (ma_slow[ 0 ]>ma_slow[ 9 ])
       if (ma_slow[ 0 ]-ma_slow[ 9 ]> 5 * Point ())
        {

        }
   if (ma_slow[ 9 ]>ma_slow[ 0 ])
       if (ma_slow[ 9 ]-ma_slow[ 0 ]> 5 * Point ())
        {

        }
 
Vladimir Karputov :

İki seçenek olabilir:

  1. "MA Hızlı"nın üstünde "MA Yavaş"
  2. "MA Yavaş", "MA Hızlı" dan küçük veya eşittir


Buna göre sonucun işareti "+" veya "-" olacaktır. İşaret "-" ise, "-" her zaman 5*Puan()'dan küçük olacağından, koşulunuz hiçbir zaman karşılanmayacaktır.


Yani kod şu şekilde olacaktır:

Aynen öyle! İkinci şart ben de öyle yapmayı düşündüm ;) Teşekkürler
 
Artyom Trishkin :

Belki de derlenmiş kodu gönderdiniz? Belki yürütülebilir dosyanın ayrıştırılmasıyla ilgili başka bir şey istediler?

hayır, sorular kodu mql4'ten mql5'e çevirmekle ilgiliydi
Her şeyi yaptım ama çalışma sırasında bir hata oldu, çözmek için yardım istedim.

 
Roman Sharanov :

hayır, sorular kodu mql4'ten mql5'e çevirmekle ilgiliydi
Her şeyi yaptım ama çalışma sırasında bir hata oldu, çözmek için yardım istedim.

Garip. Bir kod var mıydı? Belki de derleme belirtileri vardı?

 

Bir pozisyon açamıyorum , herhangi bir değer için yanlış hacim yanıtı alıyorum.


   if (direction== 0 )
      open_label=open_label+ "Buy  " + "V = " + DoubleToString (V, 2 )+ " price = " + DoubleToString (price_open, _Digits )+
                   " SL = " + DoubleToString (SL, _Digits )+ "  TP = " + DoubleToString (TP, _Digits );
   else    
      open_label=open_label+ "Sell  " + "V = " + DoubleToString (V, 2 )+ " price = " + DoubleToString (price_open, _Digits )+
                   " SL = " + DoubleToString (SL, _Digits )+ "  TP = " + DoubleToString (TP, _Digits );
   
     Print (open_label);

   if (direction== 0 && last.ask<=price_open)
      {
         if (!trade.PositionOpen( _Symbol , ORDER_TYPE_BUY ,V,price_open,SL,TP))
           Print ( "Метод PositionOpen() потерпел неудачу. Код возврата=" ,trade.ResultRetcode(),
             ". Описание кода: " ,trade.ResultRetcodeDescription());
         else
           Print ( "Метод PositionOpen() выполнен успешно. Код возврата=" ,trade.ResultRetcode(),
             " (" ,trade.ResultRetcodeDescription(), ")" );
      }


2019.05.20 21:53:24.814 position_open (XAUUSD,M10) Alımı Bekle V = 1.00 fiyat = 1278.15 SL = 0.00 TP = 0.00

2019.05.20 21:53:34.002 position_open (XAUUSD,M10) CTrade::OrderSend: piyasa satın al 1.00 XAUUSD [geçersiz hacim]

2019.05.20 21:53:34.002 position_open (XAUUSD,M10) PositionOpen() yöntemi başarısız oldu. Dönüş kodu=10014. Kod açıklaması: geçersiz birim

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
merhaba arkadaşlar, bana MT5'te açık işlemlerdeki komisyonu nasıl hesaplayacağımı veya hazır bir fonksiyonun nerede olduğunu söyleyin
 
Aleksandr Egorov :
merhaba arkadaşlar, bana MT5'te açık işlemlerdeki komisyonu nasıl hesaplayacağımı veya hazır bir fonksiyonun nerede olduğunu söyleyin
 #include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

// Комиссия всех открытых позиций.
double GetSumCommission()
{
   double Sum = 0 ;
  
   for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)
     if ( OrderSelect (i, SELECT_BY_POS))
      Sum += OrderCommission();
      
   return (Sum);
}
 
Aleksandr Egorov :
merhaba arkadaşlar, bana MT5'te açık işlemlerdeki komisyonu nasıl hesaplayacağımı veya hazır bir fonksiyonun nerede olduğunu söyleyin
 PositionGetDouble ( POSITION_COMMISSION )

Veya CPositionInf Komisyonu

 
Konstantin Nikitin :

Veya CPositionInf Komisyonu

Uzun süredir sürmüyor.

 
fxsaber :

Uzun süredir sürmüyor.

bu arada, belki ellerim beceriksizdir denedim her şekilde sabanla sürmüyor ama işleviniz açıkça sürüyor, her halükarda, yanıt verdiğiniz için hepinize teşekkür ederim,

en azından bacaklarımın nereden büyüdüğünü anladım bu komisyonu nereden alacağım)) Kampanya için kendi fonksiyonumu yazdım, MT5'te yeniyim bu yüzden doğru veya yanlış değerlendirebilirseniz çok fazla tekme atmayın

bence doğru, her şeyi kontrol ettim

double PROFIT()     {

   double   rez= 0 , alprof= 0 ,svap= 0 ,commicion= 0 ;

   ulong ticet= 0 ,tikett= 0 ;

   long   entry= 0 ;

   string com= "" ;

   ulong tik;

   ulong ord;

   int i= 0 ;

   for (i= PositionsTotal ()- 1 ;i>= 0 ;i--) 

     {

       if ( PositionGetSymbol (i)== Symbol () || PositionGetSymbol (i)==Pair)

        {

         if ((tik= PositionGetTicket (i))> 0 )

           {

            alprof+= PositionGetDouble ( POSITION_PROFIT );

            svap+= PositionGetDouble ( POSITION_SWAP );

           }

        }

     }

   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 )

           {

             for ( int t= PositionsTotal ()- 1 ;t>= 0 ;t--) 

              {

               if (tik==ord)

                 {

                  commicion+= HistoryDealGetDouble (tikett, DEAL_COMMISSION );

                 }

              }

           }

        }

     }

   rez+=alprof+commicion+svap;

   return (rez);   }