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

 
Konstantin Nikitin :

Bu yüzden sınıftan gerekli işlevselliği çıkarın ve kendinize yazın.

Teşekkür ederim. Sorum çok daha basit - OrderSend(request,result) aracılığıyla bir sipariş açtım ve hemen parametreleriyle çalışmak istiyorum - örneğin bunları yazdırın. Bunun gibi:
 //============================================================
         //--- declare and initialize the trade request and result of trade request
         MqlTradeRequest request={ 0 };
         MqlTradeResult   result={ 0 };
         //--- parameters of request
        request.action   = TRADE_ACTION_DEAL ;     // type of trade operation
        request.symbol   = Pair1;                 // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;             // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
   //===================================      
         if ( OrderSend (request,result))
                
        Print ( "retcode = " + retcode + "; " );        
         Print ( "deal = " + deal + "; " );
         Print ( "order = " + order + "; " ); 
         Print ( "volume = " + volume + "; " );  
         Print ( "price = " + price + "; " )
Yeniden kod, sipariş ve hacim gibi bazı parametreler görüntülenir, ancak anlaşma ve fiyat gösterilmez.
Özellikle fiyatla ilgileniyor. Tüm sonuçlar MqlTradeResult içindedir . Onları da aynı şekilde yazdırıyorum, ancak bir şey görüntüleniyor, ancak bir şey görünmüyor. Soru, neden bazı parametreler görüntülenirken diğerleri görüntülenmiyor?
 

Diziler nasıl birleştirilir?

 string eData[][ 50 ][ 3 ];
string bData[][ 20 ][ 5 ];
 ArrayCopy (eData,bData, ArraySize (eData)); // error: incompatible 3 arrays ranges for ArrayCopy function (50 and 20)

ArrayCopy'nin yalnızca tek boyutlu dizileri kopyaladığını anlıyorum?

 
Vitaly Muzichenko :

Diziler nasıl birleştirilir?

ArrayCopy'nin yalnızca tek boyutlu dizileri kopyaladığını anlıyorum?

Hayır, ArrayCopy mql5\4 içinde izin verilen tüm dizileri kopyalar. Ancak kopyalamak için aynı olmaları gerekir. Birinci dizinin ikinci boyutunda 50, ikinci dizide ise sadece 20 olsun, üçüncü boyutta da aynı.
 
Algotrader18 :
Teşekkür ederim. Sorum çok daha basit - OrderSend(request,result) aracılığıyla bir sipariş açtım ve hemen parametreleriyle çalışmak istiyorum - örneğin bunları yazdırın. Bunun gibi: Yeniden kod, sipariş ve hacim gibi bazı parametreler görüntülenir, ancak anlaşma ve fiyat gösterilmez.
Özellikle fiyatla ilgileniyor. Tüm sonuçlar MqlTradeResult içindedir . Onları da aynı şekilde yazdırıyorum, ancak bir şey görüntüleniyor, ancak bir şey görünmüyor. Soru, neden bazı parametreler görüntülenirken diğerleri görüntülenmiyor?
 //============================================================
         //--- declare and initialize the trade request and result of trade request
         MqlTradeRequest request={ 0 };
         MqlTradeResult   result={ 0 };
         //--- parameters of request
        request.action   = TRADE_ACTION_DEAL ;     // type of trade operation
        request.symbol   = Pair1;                 // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;             // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
   //===================================      
         if (! OrderSend (request,result))
           return ;
                
         Print ( "retcode = " + result. retcode + "; " );        
         Print ( "deal = " + result. deal + "; " );
         Print ( "order = " + result. order + "; " ); 
         Print ( "volume = " + result. volume + "; " );  
         Print ( "price = " + result. price + "; " );
 
Konstantin Nikitin :

Başlangıçta

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

Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5

Algotrader18 , 2018.10.25 07:39

Tünaydın!

Bir pozisyon açıyorum ve MqlTradeResult içeriğini şu şekilde yazdırmak istiyorum:


   //--- declare and initialize the trade request and result of trade request
         MqlTradeRequest request={ 0 };
         MqlTradeResult   result={ 0 };
         //--- parameters of request
        request.action   = TRADE_ACTION_DEAL ;     // type of trade operation
        request.symbol   = Pair1;                 // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;             // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
 //============================================================     
         if ( OrderSend (request,result))       
         Print ( "result.retcode = " + result .retcode + "; " );        
         Print ( "deal = " + result .deal + "; " );
         Print ( "order = " + result .order + "; " ); 
         Print ( "volume = " + result .volume + "; " );  
         Print ( "price = " + result .price + "; " );

sonuç.retcode, sipariş ve hacim çıktı, anlaşma ve fiyat her zaman sıfırdır.
Söyle bana, lütfen, neyi yanlış yapıyorum?

neden aşağıdaki kodda kayboluyor ... soru ...

Ama bana göre iade kabul edilemez. Sonuçta, bu mühür bir sonraki kene üzerinde olacak.

 
Alexey Viktorov :
Ama bana göre iade kabul edilemez. Sonuçta, bu mühür bir sonraki kene üzerinde olacak.

Öğrenim SiparişiGönder

Geri dönüş değeri

Başarılı bir temel yapı kontrolü durumunda (işaretçilerin kontrolü), true döndürülür - bu, bir ticaret işleminin başarılı bir şekilde yürütüldüğünü göstermez . İşlev yürütme sonucunun daha ayrıntılı bir açıklamasını elde etmek için sonuç yapısının alanlarını analiz etmelisiniz .

Temel kontrol geçtiyse, sadece onu yazdırırız. Hepsi aynı tık üzerinde. bu yüzden yazdım
         if ( ! OrderSend (request,result))
           return ;
 
Konstantin Nikitin :

Öğrenim SiparişiGönder

Temel kontrol geçtiyse, sadece onu yazdırırız. Hepsi aynı tık üzerinde. bu yüzden yazdım
Evet. Ve burada ! Daha önce görmedim. İtiraf ediyorum...
 
Alexey Viktorov :

Başlangıçta

neden aşağıdaki kodda kayboluyor ... soru ...

Ama bana göre iade kabul edilemez. Sonuçta, bu mühür bir sonraki kene üzerinde olacak.

Bu da dahil olmak üzere farklı seçenekler denedim:

        ulong   deal;
         ulong   order;
         double volume;
         double price;    
          
 //============================================================
         //--- declare and initialize the trade request and result of trade request
         MqlTradeRequest request={ 0 };
         MqlTradeResult   result={ 0 };
         //--- parameters of request
        request.action   = TRADE_ACTION_DEAL ;     // type of trade operation
        request.symbol   = Pair1;                 // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;             // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
   //===================================      
         if ( OrderSend (request,result))

        retcode = result.retcode;
        deal = result.deal;
        order = result.order;
        volume = result.volume;
        price = result.price;
       
      
         Print ( "retcode = " + retcode + "; " );        
         Print ( "deal = " + deal + "; " );
         Print ( "order = " + order + "; " ); 
         Print ( "volume = " + volume + "; " );  
         Print ( "price = " + price + "; " );

ve soruya kopyalanan her şey yanlışlıkla değil ...

 
Algotrader18 :

Bu da dahil olmak üzere farklı seçenekler denedim:

ve soruya kopyalandı, yanlışlıkla her şey değil ...

Aramaya çalışın, fxsaber bir zamanlar bu sorunla mücadele etti. Ne oldu bilmiyorum, ilgilenmedim. OnTradeTransaction'da tüm bu parametreleri almak benim için daha kolay
 
Rustam Esedulaev :
Merhaba!
mql 4, IsTradeContedtBusy gibi bir kontrole sahiptir
mql 5'te benzer bir şey var mı?
Teşekkür ederim!

Böyle bir şey yok. MT5 çok iş parçacıklı

Neden: