4756 hatası - sayfa 2

 
angevoyageur :
Siparişlerinizi göndermek/değiştirmek için hangi işlevi, sınıfları/yöntemi kullanıyorsunuz?
MqlTradeRequest'i kurduktan sonra OrderSend()
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure
  • www.mql5.com
Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure - Documentation on MQL5
 
RaptorUK :
MqlTradeRequest'i kurduktan sonra OrderSend()

Bunu gördünüz mü ( OrderSend belgesinden )?

Unutulmamalıdır ki OrderSend() yöntemi işleminin başarılı bir şekilde tamamlanması, bir piyasa emri verilirken her zaman başarılı bir anlaşmanın tamamlandığı anlamına gelmez. Döndürülen sonuçta ticaret sunucusu iade kodunu içeren retcode değerini ve işlem türüne göre işlem veya sipariş alanı değerlerini kontrol edin .


Kodu görmede yardımcı olmak daha kolay olurdu .

 
angevoyageur :

Bunu gördünüz mü ( OrderSend belgesinden )?


Kodu görmede yardımcı olmak daha kolay olurdu .

Döndürülen sonucu kontrol ediyorum ve yalnızca SL & TP'yi TRADE_RETCODE_PLACED veya TRADE_RETCODE_DONE döndürürse yerleştirmeye çalışıyorum

         if ( result.retcode != TRADE_RETCODE_PLACED && result.retcode != TRADE_RETCODE_DONE ) 
            {
            SetTPandSL = false ;
             Print ( "Return code # " , result.retcode, " Bid " , result.bid, " Ask " , result.ask, " Deal price " , result.price);
            }
         else SetTPandSL = true ;

         if (SetTPandSL && ECN)
            {
             // now modify Position to add SL & TP
             ZeroMemory (request);
             ZeroMemory (result);
            request.action = TRADE_ACTION_SLTP ;                   // setting the TP & SL
            request.symbol = _Symbol ;                             // symbol
            request.sl = lastTick.ask - SL_Size * _Point ;         // Stop Loss
            request.tp = lastTick.ask + TP_Size * _Point ;         // Take Profit  
            
             //--- send a trade request
             OrderSend (request,result);
            
             //--- write the server reply to log  
             Print ( __FUNCTION__ , ": Placeing SL & TP " ,result.comment, " Return code # " , result.retcode);  
             if ( result.retcode != TRADE_RETCODE_PLACED && result.retcode != TRADE_RETCODE_DONE ) 
               Print ( "Return code # " , result.retcode, " Bid " , lastTick.bid, " Ask " , lastTick.ask, " Deal price " , 
                  result.price, " SL: " , request.sl, " TP: " , request.tp, " Freeze: " , Freeze, " Stoplevel: " , Stop );
            }
 
RaptorUK :

Döndürülen sonucu kontrol ediyorum ve yalnızca SL & TP'yi TRADE_RETCODE_PLACED veya TRADE_RETCODE_DONE döndürürse yerleştirmeye çalışıyorum


Unutulmamalıdır ki OrderSend() yöntemi işleminin başarılı bir şekilde tamamlanması, bir piyasa emri verilirken her zaman başarılı bir anlaşmanın tamamlandığı anlamına gelmez. Döndürülen sonuçta ticaret sunucusu iade kodunu içeren retcode değerini ve işlem türüne göre işlem veya sipariş alanı değerlerini kontrol edin .

Anlaşma bilet numarasını kontrol etmelisiniz:

   if ( (result.retcode != TRADE_RETCODE_PLACED && result.retcode != TRADE_RETCODE_DONE ) || result.deal == 0 ) 

Bu son söz değildir, anlaşma biletiniz 0 ise, SL/TP değişikliğiniz yine de yürütülmeyecektir. Hala aranıyor...


 
angevoyageur :

Anlaşma bilet numarasını kontrol etmelisiniz:

Bu son söz değildir, anlaşma biletiniz 0 ise, SL/TP değişikliğiniz yine de yürütülmeyecektir. Hala aranıyor...

Bunu yapabilirim ama mesele şu ki, ticaret başarılı oldu ve pozisyon açıldı. . yine de SL & TP'yi eklemeye çalıştığımda geçersiz olmasalar bile Geçersiz Duraklar ile başarısız oldu. TP & SL'yi ayarlama isteğini göndermeden önce bir şeylerin olmasını beklemem gerekiyor gibi görünüyor. . . ama beklemem gereken resmi, belgelenmiş şeyin ne olduğunu gerçekten bilmiyorum.

Yanıt için teşekkürler :-)

 
RaptorUK :

Bunu yapabilirim ama mesele şu ki, ticaret başarılı oldu ve pozisyon açıldı. . yine de SL & TP'yi eklemeye çalıştığımda geçersiz olmasalar bile Geçersiz Duraklar ile başarısız oldu. TP & SL'yi ayarlama isteğini göndermeden önce bir şeylerin olmasını beklemem gerekiyor gibi görünüyor. . . ama beklemem gereken resmi, belgelenmiş şeyin ne olduğunu gerçekten bilmiyorum.

Yanıt için teşekkürler :-)

Biliyorum. Bir yanıt bulmak için tüm mql5 sitesini kontrol ediyorum :-D

Düzenlemek:

Bu sitede , bir ticaret yürütme türü olan bir sl /tp'nin nasıl yerleştirileceğini gösteren kesinlikle hiçbir şey yok.

Aslında bende de aynı sorun var ama OrderSend yerine PositionOpen kullanarak manuel olarak da yapabiliyorum.

 
angevoyageur :

Biliyorum. Bir yanıt bulmak için tüm mql5 sitesini kontrol ediyorum :-D

Düzenlemek:

Bu sitede , bir ticaret yürütme türü olan bir sl /tp'nin nasıl yerleştirileceğini gösteren kesinlikle hiçbir şey yok.

Aslında bende de aynı sorun var ama OrderSend yerine PositionOpen kullanarak manuel olarak da yapabiliyorum.

buldum. Bu, EA'nız ve ticaret sunucunuz arasında bir senkronizasyon sorunudur. OnTradeTransaction() olay işleyicisini kullanmanız gerekir.

OrderSend() işlevi tarafından gönderilen bir sunucuda işlem talebinin yürütülmesinin sonucu OnTradeTransaction işleyicisi tarafından izlenebilir. Bir ticaret talebi yürütülürken OnTradeTransaction işleyicisinin birkaç kez çağrılacağına dikkat edilmelidir.

Örneğin bir piyasa alış emri gönderirken işleme alınır, hesap için uygun bir alış emri oluşturulur, daha sonra emir yürütülür ve açık olanlar listesinden çıkarılır, daha sonra emir geçmişine eklenir, uygun bir alış emri verilir. anlaşma tarihe eklenir ve yeni bir pozisyon oluşturulur. Bu olayların her biri için OnTradeTransaction işlevi çağrılır.

RTFM ;-) Benim için yarın bir deneyin.
 
angevoyageur :

buldum. Bu, EA'nız ve ticaret sunucunuz arasında bir senkronizasyon sorunudur. OnTradeTransaction() olay işleyicisini kullanmanız gerekir.

RTFM ;-) Benim için yarın bir deneyin.
Ahhhh, teşekkürler, bir göz atacağım. :-)
 
RaptorUK :
Ahhhh, teşekkürler, bir bakacağım. :-)
Bulduğunuz konu bu muydu? https://www.mql5.com/en/forum/10850 , yaşadığım sorunu bildiriyor
 

EA'm yapı 778 ile size garip hatalar getiriyor. 0.1'in hacmi normalleştirildi ve açıkça geçersiz değil.

2013.03.12 07:29:57 pivotlar (GÜMÜŞ,M5) SILVER, 0,10 birim ile ORDER_TYPE_SELL_STOP başarısız oldu; err# 4756 kontrol kodu: 10014 yorum: Geçersiz birim

2013.03.12 07:20:00 pivotlar (GÜMÜŞ,M5) SILVER, 0,10 birim ile ORDER_TYPE_SELL_STOP başarısız oldu; err# 4756 döndürülen kod: 10014, komisyoncu yorumları: Geçersiz birim

İşte onu getiren kod

       ResetLastError ();
       if ( OrderCheck (_request,_check)){
         if (! OrderSend (_request,_result)){
             Print (TradeSymbol, " failed " , EnumToString (OrderType), " with volume " , DoubleToString (OrderVolume, 2 ), "; err# " , GetLastError (), " returned code: " ,_result.retcode, ", broker comments: " ,_result.comment);
             return ( false );}
         else {
             if (_result.retcode!=( 0 || TRADE_RETCODE_PLACED || TRADE_RETCODE_DONE )){
               Print (TradeSymbol, " failed " , EnumToString (OrderType), " with volume " , DoubleToString (OrderVolume, 2 ), "; err# " , GetLastError (), " returned code: " ,_result.retcode, ", broker comments: " ,_result.comment);}}}
       else {
         Print (TradeSymbol, " failed " , EnumToString (OrderType), " with volume " , DoubleToString (OrderVolume, 2 ), "; err# " , GetLastError (), " check code: " ,_check.retcode, " comments: " ,_check.comment);
         return ( false ); }


Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5