Sonsuza kadar harika ve korkunç MT4 (veya bir geçiş stratejisinin nasıl doğru bir şekilde geliştirileceği) - sayfa 19

 
fxsaber :

MT4 ve MT5 için koşullar aynıdır.

Uzun yıllar boyunca herkes iki katına çıkmayı, gelmeyi biliyordu... Uyumak . Çünkü ÇOK ZOR. Forumda gündeme getirilen ticaret API'sinin birçok özelliği, geliştiricilerin farkında değil veya yorumlarını vermedi.


Kimse MT5'ten nefret etmez. Temel problemlerin çözümünde bazı problemlere örnekler gösterdi.

Neden aynılar? Çünkü soruyu hala cevaplamadın.

Kimse MT5'ten nefret etmez. Temel problemlerin çözümünde bazı problemlere örnekler gösterdi.

Sadece OrderSend() işlevinin yürütülmesinin sonucunu doğru bir şekilde işlemeniz gerekir ve mql4'ün basitliğinden kopamazsınız. Senin kendi amacın var, mikrosaniyeleri yakalamak, takas yapmamak... Bir DC'nin sorunları var ve sen bu sorunları MT hatası olarak geçiyorsun. MQ hesabında ikiye katlanan pozisyonları gösterin, ardından geliştiriciler buna dikkat edecektir. Kodunuzu Robo demosunda çalıştırdım ve herhangi bir hata görmedim.

Hata mesajlarınızdan bazıları gerçekten saygı duyulmaya değer, ancak bazıları… üzgünüm, böyle saçmalık, yeterince düzgün kelime yok.

Hepsi bu... Zafer Bayramınız kutlu olsun. Dünya. Çalışmak. Mayıs.

 
Alexey Viktorov :

Neden aynılar? Çünkü soruyu hala cevaplamadın.

Bir kez daha, MT4/5 için görev koşulları aynıdır. Script yürütme sonunda boş bir hesapta 100 açık pozisyonun olması gerekir. Aynı zamanda, herhangi bir Terminalden komut dosyası yürütme sırasında bazı pozisyonların kapatılmasına izin verilir. Bu "müdahale" sadece aptalca kararlar olmaması için gereklidir.

 for ( int i = 0 ; i < 100 ; i += OrderSend (Request, Result))
  ;

Sadece OrderSend() işlevinin yürütülmesinin sonucunu doğru bir şekilde işlemeniz gerekir ve mql4'ün basitliğinden kopamazsınız. Senin kendi amacın var, mikrosaniyeleri yakalamak, takas yapmamak... Bir DC'nin sorunları var ve sen bu sorunları MT hatası olarak geçiyorsun. MQ hesabında ikiye katlanan pozisyonları gösterin, ardından geliştiriciler buna dikkat edecektir. Kodunuzu Robo demosunda çalıştırdım ve herhangi bir hata görmedim.

Hata mesajlarınızdan bazıları gerçekten saygı duyulmaya değer, ancak bazıları… üzgünüm, böyle saçmalık, yeterince düzgün kelime yok.

Sorunları görmemeniz, onların olmadığı anlamına gelmez. MQ demosu, hata ayıklama açısından iğrenç bir yerdir. Orada, OrderSend yalnızca bir pozisyon açıldığında piyasa emirleri için true döndüğünde, bu tür bir yürütme belirlenir. Gerçekte ECN hesaplarında böyle bir şey yok. true - piyasa emri kabul edildi. Sırada ne var - takip etmeniz gerekiyor. Yalnızca mutfak DC'leri farklı (MQ-Demo'da olduğu gibi) yürütme şeması kullanır.

Hepsi bu... Zafer Bayramınız kutlu olsun. Dünya. Çalışmak. Mayıs.

karşılıklı.

 
fxsaber :

MT5 üzerine boş bir hesapta 100 pozisyon açan bir script yazmanız gerekiyor.


MT4'te bu şekilde karar verildi.

 void OnStart ()
{
   while ( OrdersTotal () < 100 )
     OrderSend ( _Symbol , OP_BUY, 0.1 , Ask, 0 , 0 , 0 );
    
   Print ( OrdersTotal ());
}

MT5'te kimin hangi çözümleri var?

MT5'e yazabileceğim en kısa kod:

 MqlTradeRequest BuyRequest = { 0 };
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
{
   static bool run = false ;
   if (run) return ;
   BuyRequest.action = TRADE_ACTION_DEAL ;
   BuyRequest.type = ORDER_TYPE_BUY ;
   BuyRequest.symbol = _Symbol ;
   BuyRequest.volume = 0.1 ;
   BuyRequest.price = SymbolInfoDouble ( _Symbol , SYMBOL_ASK );
   BuyRequest.type_filling = GetFilling();
   MqlTradeResult result;
   run = OrderSend (BuyRequest, result);
}
//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade ()
{
   MqlTradeResult result;
   while ( PositionsTotal () < 10 &&
         SymbolInfoDouble ( _Symbol , SYMBOL_ASK , BuyRequest.price) &&
         OrderSend (BuyRequest, result))
   {}
}
//+------------------------------------------------------------------+
ENUM_ORDER_TYPE_FILLING GetFilling( const uint Type = ORDER_FILLING_FOK )
{
   const ENUM_SYMBOL_TRADE_EXECUTION ExeMode = ( ENUM_SYMBOL_TRADE_EXECUTION ):: SymbolInfoInteger ( _Symbol , SYMBOL_TRADE_EXEMODE );
   const int FillingMode = ( int ):: SymbolInfoInteger ( _Symbol , SYMBOL_FILLING_MODE );

   return ((FillingMode == 0 || (Type >= ORDER_FILLING_RETURN ) || ((FillingMode & (Type + 1 )) != Type + 1 )) ?
          (((ExeMode == SYMBOL_TRADE_EXECUTION_EXCHANGE ) || (ExeMode == SYMBOL_TRADE_EXECUTION_INSTANT )) ?
           ORDER_FILLING_RETURN : ((FillingMode == SYMBOL_FILLING_IOC ) ? ORDER_FILLING_IOC : ORDER_FILLING_FOK )) :
          ( ENUM_ORDER_TYPE_FILLING )Type);
}
//+------------------------------------------------------------------+

GetFilling() olmadan - kripto üzerinde çalışmaz (((

ama bu kodda bile 11 pozisyon açtım:


 
Igor Makanu :

MT5'e yazabileceğim en kısa kod:

Kısalık için SB yapabilirsiniz

ama bu kodda bile 11 pozisyon açtım:

Çünkü koddaki mantık şu şekilde.

 
fxsaber :

Kısalık için SB yapabilirsiniz

Çünkü koddaki mantık şu şekilde.

Görev, şu şekilde bile PositionsTotal () kullanılarak çözülmez:

 void OnTrade ()
{
   if ( PositionsTotal () >= 10 ) return ;
   MqlTradeResult result;
   BuyRequest.price = SymbolInfoDouble ( _Symbol , SYMBOL_ASK );
   OrderSend (BuyRequest, result);
}

10 pozisyonda, hatta 13 adet olduğunda açılır

özel bir seçenek yoktur, sadece MqlTradeResult sonucundan sipariş biletini hatırlayın ve açık bir pozisyonun görünmesini bekleyin, ardından belirtilen sayıda pozisyon tam olarak açılacaktır.

 
Igor Makanu :

Görev, şu şekilde bile PositionsTotal () kullanılarak çözülmez:

10 pozisyonda, hatta 13 adet olduğunda açılır

özel bir seçenek yoktur, sadece MqlTradeResult sonucundan sipariş biletini hatırlayın ve açık bir pozisyonun görünmesini bekleyin , ardından belirtilen pozisyon sayısı tam olarak açılacaktır.

Öyleyse bekle!!! Sonuçta, mql4 bekliyor ve kızmıyorsunuz. Ve MQL5'te, sadece bir istek gönderebileceğinize karar verdiniz ve bunun yerine getirilmesi gerektiğini düşündünüz…………

 
Igor Makanu :

Görev, şu şekilde bile PositionsTotal () kullanılarak çözülmez:

10 pozisyonda, hatta 13 adet olduğunda açılır

özel bir seçenek yoktur, sadece MqlTradeResult sonucundan sipariş biletini hatırlayın ve açık bir pozisyonun görünmesini bekleyin, ardından belirtilen sayıda pozisyon tam olarak açılacaktır.

Bunun artık bir komut dosyası/hizmet değil, bir Uzman Danışman olduğunu unutmayın. Ancak bir Uzman Danışmanla bile böyle basit bir görevi iki satırda çözmek için kafanızı kırmanız gerekecek.

 
Alexey Viktorov :

Öyleyse bekle!!! Sonuçta, mql4 bekliyor ve kızmıyorsunuz. Ve MQL5'te, sadece bir istek gönderebileceğinize karar verdiniz ve bunun yerine getirilmesi gerektiğini düşündünüz…………

Burada birkaç kişi zorluk olmadığını söyledi. Ancak bir çözüm sunmadılar.

 
fxsaber :

Burada birkaç kişi zorluk olmadığını söyledi. Ancak bir çözüm sunmadılar.

Ben de yapmayacağım, en basit nedenden dolayı. ... kodlayıcılara öğretmek istemiyorum (bu sizin için geçerli değil), ancak bir ihtiyaç varsa, sorunu tereddüt etmeden çözeceğim. Ve hepsi aynı nedenle, CodeBase uzun süredir kodları yalnızca kuzudan alıyor. Diğer herkes sessiz...

 
Alexey Viktorov :

Ben de yapmayacağım, en basit nedenden. ... kodlayıcılara öğretmek istemiyorum (bu sizin için geçerli değil), ancak bir ihtiyaç varsa, sorunu tereddüt etmeden çözeceğim. Ve hepsi aynı nedenle, CodeBase uzun süredir kodları yalnızca kuzudan alıyor. Diğer herkes sessiz...

Dilinle öğütmek torba yuvarlamak değildir. Alıp öğreteceklerdi. Ben lütfen.

Bir sorun var ve kendini sadece bu komisyoncuda göstermiyor.
Sorun şu ki, belirli bir emrin yürütülmesini beklemeniz gerekmiyor (bu farklı bir düzlemden), ancak emirlerin uygulandığı anda, tüm listelerden (açık, kapalı, anlaşmalar, pozisyonlar) geçici olarak kayboluyorlar. .

Elbette başka bir koltuk değneği ile destekleyebilirsiniz. Ama ben insani bir çözüm istiyorum. Hangi fxsaber'ın halka açık olarak çalıştığı, geçen iyi dileklerin havlamalarını dinleyerek.