Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 155

 
Nikolai Semko :

İki yıl önce farklı dillerin etkinliğini karşılaştıran ilginç bir çalışma buldum

https://greenlab.di.uminho.pt/wp-content/uploads/2017/09/paperSLE.pdf



Aman!

Ada yaşıyor ve büyüyor mu?! Yanılmıyorsam, ilk OOP. 80'lerin başında okumuştum. Şimdiye kadar hakkında hiçbir şey duymadım, Modula gibi dilin öldüğünü düşündüm. Her ikisi de Pascal'ın derin modernizasyonlarıdır. Ada derleyicim yoktu, ama Modula - biri hatırlarsa DVK'da yedi geçişliydi.

 

Test Cihazında yürütme hatalarıyla karşılaşmamak için, geçerli fiyatta bir gecikme veya SL/TP ayarlamanız gerekiyorsa uygun piyasa emirlerini gönderin:

  • Geçerli fiyatta bir gecikme ayarlayın - OrderSend'den sonra bir piyasa emri ekleyin.
  • SL/TP pozisyonlarını mevcut fiyattan gösteririz - OrderClose'dan sonra pozisyonları ekleriz.
 
fxsaber :

Test Cihazında yürütme hatalarıyla karşılaşmamak için, geçerli fiyat üzerinden bir gecikme veya SL/TP ayarlamanız gerekiyorsa uygun piyasa emirlerini gönderin:

  • Geçerli fiyatta bir gecikme ayarlayın - OrderSend'den sonra bir piyasa emri ekleyin.
  • SL/TP pozisyonlarını mevcut fiyattan gösteririz - OrderClose'dan sonra pozisyonları ekleriz.

Daha ayrıntılı bir şey yapmak mümkün mü? Sonuçta, hiçbir şey net değil:

  • Mevcut fiyattan bekleyen bir emir vermek için, bir pozisyon açma talebi gönderdikten sonra bir şey eklemeniz gerekir (?????????)
  • cari fiyata bir stop emri (ne?) vermek için, pozisyonu kapatmak için bir istek gönderdikten sonra bir şey eklemeniz gerekir (?????????)
Yazdıklarını deşifre etmeye çalıştıktan sonra ortaya çıkan sorular bunlar...
 
Artyom Trishkin :

Daha ayrıntılı bir şey yapmak mümkün mü? Sonuçta, hiçbir şey net değil:

  • Mevcut fiyattan bekleyen bir emir vermek için, bir pozisyon açma talebi gönderdikten sonra bir şey eklemeniz gerekir (?????????)
  • cari fiyata bir stop emri (ne?) vermek için, pozisyonu kapatmak için bir istek gönderdikten sonra bir şey eklemeniz gerekir (?????????)
Yazdıklarını deşifre etmeye çalıştıktan sonra ortaya çıkan sorular bunlar...

Sorun burada gösteriliyor. Karar.

 // Делает более точными MT4/5-тестеры.
TICKET_TYPE MyOrderSend( const string Symb, int Type, const double dVolume, const double Price, const int SlipPage, const double SL, const double TP,
                         const string comment = NULL , const MAGIC_TYPE magic = 0 , const datetime dExpiration = 0 , color arrow_color = clrNONE )
{
   static const bool IsTester = MQLInfoInteger ( MQL_TESTER );
   MqlTick Tick = { 0 };  
  
   bool Res = IsTester && SymbolInfoTick (Symb, Tick);
  
   if (Res && (Type > OP_SELL))
  {
     if ((Type == OP_BUYLIMIT) || (Type == OP_BUYSTOP))
    {
       if (Price == Tick.ask)
        Type = OP_BUY;
    }
     else if (Price == Tick.bid)
      Type = OP_SELL;
  }
  
   const TICKET_TYPE Ticket = OrderSend (Symb, Type, dVolume, Price, SlipPage, SL, TP, comment, magic, dExpiration, arrow_color);
  
  Res = Res && (Type <= OP_SELL) && (Ticket != - 1 ) &&
        (Type ? (SL == Tick.ask) || (TP == Tick.ask) : (SL == Tick.bid) || (TP == Tick.bid)) &&
        OrderClose(Ticket, dVolume, Type ? Tick.ask : Tick.bid, SlipPage, arrow_color);
  
   return (Ticket);
}

// Делает более точными MT4/5-тестеры.
bool MyOrderModify( const long Ticket, const double Price, const double SL, const double TP, const datetime Expiration, const color Arrow_Color = clrNONE )
{
   static const bool IsTester = MQLInfoInteger ( MQL_TESTER );
  
   bool Res = false ;
  
   if (IsTester && OrderSelect (Ticket, SELECT_BY_TICKET) && !OrderCloseTime())
  {
     if (OrderType() <= OP_SELL)
    {
      Res = (OrderClosePrice() == SL) || (OrderClosePrice() == TP);
      Res = OrderModify(Ticket, Price, SL, TP, Expiration, Arrow_Color) && (!Res || OrderClose(Ticket, OrderLots(), OrderClosePrice(), 0 , Arrow_Color));
    }
     else if (OrderClosePrice())    
      Res = ((OrderClosePrice() == Price) &&
             (MyOrderSend(OrderSymbol(), OrderType() & 1 , OrderLots(), Price, 0 , SL, TP,
                          OrderComment(), OrderMagicNumber(), OrderExpiration(), Arrow_Color) != - 1 ) && OrderDelete(Ticket)) ||
            OrderModify(Ticket, Price, SL, TP, Expiration, Arrow_Color);
     else
    {
       MqlTick Tick = { 0 };
      
       if ( SymbolInfoTick (OrderSymbol(), Tick))
        Res = ((( bool )(OrderType() & 1 ) ? (Price == Tick.bid) : (Price == Tick.ask)) &&
               (MyOrderSend(OrderSymbol(), OrderType() & 1 , OrderLots(), Price, 0 , SL, TP,
                            OrderComment(), OrderMagicNumber(), OrderExpiration(), Arrow_Color) != - 1 ) && OrderDelete(Ticket)) ||
               OrderModify(Ticket, Price, SL, TP, Expiration, Arrow_Color);
       else
        Res = OrderModify(Ticket, Price, SL, TP, Expiration, Arrow_Color);                     
    }
  }
   else
    Res = OrderModify(Ticket, Price, SL, TP, Expiration, Arrow_Color); 
  
   return (Res);
}

#define OrderSend MyOrderSend
#define OrderModify MyOrderModify
 
fxsaber :

Sorun burada gösteriliyor. Karar.

Bundan neden ihtiyaç duyulduğu ve ne yapılması gerektiği netleşmedi. Gerçekten de birçoğu, kendi kodunu yapmak veya hazır olanı kullanmak için kodu okumaya başlamadan önce, onları çözümü yazmaya iten neden hakkında yazılanları anlamalıdır.

Bunu daha ayrıntılı açıklamak için kelimeler istedim:

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

Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri

fxsaber , 2019.12.18 12:45

Test Cihazında yürütme hatalarıyla karşılaşmamak için, geçerli fiyatta bir gecikme veya SL/TP ayarlamanız gerekiyorsa uygun piyasa emirlerini gönderin:

  • Geçerli fiyatta bir gecikme ayarlayın - OrderSend'den sonra bir piyasa emri ekleyin.
  • SL/TP pozisyonlarını mevcut fiyattan gösteririz - OrderClose'dan sonra pozisyonları ekleriz.

Ve benim tarafımdan ve belki bir başkası tarafından nasıl algılandığına dair bir örnek gösterdi:

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

Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri

Artyom Trishkin , 2019.12.18 12:53

Daha ayrıntılı bir şey yapmak mümkün mü? Sonuçta, hiçbir şey net değil:

  • Mevcut fiyattan bekleyen bir emir vermek için, bir pozisyon açma talebi gönderdikten sonra bir şey eklemeniz gerekir (?????????)
  • cari fiyata bir stop emri (ne?) vermek için, pozisyonu kapatmak için bir istek gönderdikten sonra bir şey eklemeniz gerekir (?????????)
Yazdıklarını deşifre etmeye çalıştıktan sonra ortaya çıkan sorular bunlar...

Neyse...

 
Artyom Trishkin :

Şey, daha ayrıntılı açıklamak için kelimeler istedim

Geçerli fiyata bir gecikme ve SL/TP ayarlamak, MT5 Test Cihazındaki mevcut onay işareti üzerinde yürütmeyi kabul etmez.

 

Herkese selam.

Söylesene, pls, MT5'te kene çizelgelerini görüntülemek için hangi araçlar var?

MT4'te "çevrimdışı aç" seçeneği vardı. Kendi hst geçmiş dosyalarınızı oluşturarak içindeki kenelerle çalışmak uygun oldu.

Ve MT5'te "özerk olarak aç" prensipte yoktur. Kenelerle çalışmak için yazılım araçları mükemmel olsa da.

Bunları bir çizelgede gösterme imkanı verilmemiş olamaz.

 
fxsaber :

Sorun burada gösteriliyor. Karar.

   const TICKET_TYPE Ticket = OrderSend ();
  ...
  OrderClose(Ticket, dVolume, Type ? Tick.ask : Tick.bid, SlipPage, arrow_color);

Sıçtık! Neden SL/TP'yi mevcut fiyattan açalım?

Peki, SL / TP'yi cari fiyata yerleştirerek kapatıyorlarsa, kasıtlı olarak. Ayrıca, işlemi taklit etmenize gerek yoktur.

 
Andrey Khatimlianskii :

Sıçtık! Neden SL/TP'yi mevcut fiyattan açalım?

Peki, SL / TP'yi cari fiyata yerleştirerek kapatıyorlarsa, kasıtlı olarak. Ayrıca, işlemi taklit etmenize gerek yoktur.

Böylece onlarca dakika veya saat içinde basitçe yanıt alabilirsiniz..

Bir şekilde hesaplanan TP ile kapatmanız gerektiğini düşünün. Ve şimdi cari fiyata eşit hale geldi.

 
fxsaber :

bir şekilde hesaplanan TP'yi kapatmanız gerekir. Ve şimdi cari fiyata eşit hale geldi.

Bu durumda, her zaman bu TP'nin zaten çalışıp çalışmadığını kontrol ediyorum (fiyat onu geçti) ve piyasaya göre kestim.

Ya da bir limitle çıkmanız gerekiyorsa, sel basana kadar fiyattan sonra çekin.

Neden: