MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1725

 
EVGENII SHELIPOV # :

Alex resmi büyüt lütfen

Artırılmış. Okun tam olarak alttan ikinci siparişin fiyatını ve sondan bir öncekinin kriterlerini karşılamayan siparişin biletini gösterdiğini gördüm. Kodumu çalıştırın ve en düşük siparişin biletini görün. Ve bu işlevi, alt SATIN AL emrini değil, alttan ikincisini kendiniz alana kadar tamamlayabilirsiniz.

 
Alexey Viktorov # :

Artırılmış. Okun tam olarak alttan ikinci siparişin fiyatını ve sondan bir öncekinin kriterlerini karşılamayan siparişin biletini gösterdiğini gördüm. Kodumu çalıştırın ve en düşük siparişin biletini görün. Ve bu işlevi, alt SATIN AL emrini değil, alttan ikincisini kendiniz alana kadar tamamlayabilirsiniz.

Sadece sorum olarak, sondan bir önceki siparişin biletini belirleme kodundaki hata nerede ???

 //+----------------------------------------------------------------------------+
//| Расчет тикета предпоследнего ордера в сетке                                |
//+----------------------------------------------------------------------------+
int GetTicketPenultimateOrder()
  {
   penultimate_ticket = 0 ;
     {
       for ( int cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--)
        {
         if ( OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES))
           {
             if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
              {
               if (OrderType() == OP_BUY || OrderType() == OP_SELL)
                 {
                   if (OrderTicket() > penultimate_ticket && penultimate_ticket != GetTicketMaxOrder())
                     penultimate_ticket = OrderTicket();
                 }
              }
           }
        }
     }
   return (penultimate_ticket);
  }
 
EVGENII SHELIPOV # :

Sadece sorum olarak, sondan bir önceki siparişin biletini belirleme kodundaki hata nerede ???

Hata, siparişin fiyatının hiçbir şekilde dikkate alınmamasıdır.

İletişim kutunuzda bir yerde, her şeyi bir diziye koymanız ve herhangi bir sayıda bilet almak için sıralamanız için bir tavsiye var. Ancak yanıt olarak, bunun nasıl yapılacağına dair bir anlayış eksikliği ...

Bunun gibi

 //+------------------------------------------------------------------+
//| Расчет тикета второго снизу ордера BUY в сетке                   |
//+------------------------------------------------------------------+
int GetTicketMaxOrder()
 {
   int total = OrdersTotal (),
      arrSize = 0 ;
   double arr[][ 2 ];
   for ( int cnt = 0 ; cnt < total; cnt++)
   {
     if ( OrderSelect (cnt, SELECT_BY_POS) && OrderSymbol() == Symbol ()) // && OrderMagicNumber() == Magic)
     {
       if (OrderType() == OP_BUY)
       {
        arrSize = ArrayRange (arr, 0 );
         ArrayResize (arr, arrSize+ 1 );
        arr[arrSize][ 0 ] = OrderOpenPrice();
        arr[arrSize][ 1 ] = OrderTicket();
       }
     }
   }
   ArraySort (arr);
   return (( int )arr[ 1 ][ 1 ]);
 }
/*****************************End program****************************/
 
EVGENII SHELIPOV # :

Sadece sorum olarak, sondan bir önceki siparişin biletini belirleme kodundaki hata nerede ???

 //+----------------------------------------------------------------------------+
//| Расчет тикета предпоследнего ордера в сетке                                |
//+----------------------------------------------------------------------------+
int GetTicketPenultimateOrder()
  {
   penultimate_ticket = 0 ;
     {
       for ( int cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--)
        {
         if ( OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES))
           {
             if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
              {
               if (OrderType() == OP_BUY || OrderType() == OP_SELL)
                 {
                   if (OrderTicket() > penultimate_ticket && penultimate_ticket != GetTicketMaxOrder() )
                     penultimate_ticket = OrderTicket() ;
                 }
              }
           }
        }
     }
   return (penultimate_ticket);
  }

Ve bir başka büyük hata da, bir döngüde emirler üzerinde yinelenirken, sırayla, emirler üzerinde de yinelenen bir fonksiyon çağırırsınız ... Ve kod yürütme fonksiyona döndüğünde, başka bir emir zaten seçilmiştir ... Ve OrderTicket(), beklediğinizden tamamen farklı bir şey döndürür .

 
Alexey Viktorov # :

Hata, siparişin fiyatının hiçbir şekilde dikkate alınmamasıdır.

İletişim kutunuzda bir yerde, her şeyi bir diziye koymanız ve herhangi bir sayıda bilet almak için sıralamanız için bir tavsiye var. Ancak yanıt olarak, bunun nasıl yapılacağına dair bir anlayış eksikliği ...

Bunun gibi

Alexey, günlükteki hatalar hakkında yorum yapabilir misin?

2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: ArraySort işlevi için yanlış başlangıç konumu 0

2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: 'eGriD2.mq4' içinde dizi aralık dışında (664,18)

2021.11.07 12:17:40.792 2020.01.02 06:00:00 EA'daki kritik bir hata nedeniyle test geçişi durduruldu


 
EVGENII SHELIPOV # :

Alexey, günlükteki hatalar hakkında yorum yapabilir misin?

2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: ArraySort işlevi için yanlış başlangıç konumu 0

2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: dizi 'eGriD2.mq4' içinde aralık dışında (664,18)

2021.11.07 12:17:40.792 2020.01.02 06:00:00 EA'daki kritik bir hata nedeniyle test geçişi durduruldu


Bunlar benim kodumdaki hatalar değil. İngilizce bilmiyorum, bu sitenin yerleşik çevirmeni kullanıyorum. İşte nasıl tercüme ettiği.

ArraySort işlevi için yanlış başlangıç konumu 0 - ArraySort işlevi için yanlış başlangıç konumu 0

'eGriD2.mq4' içinde dizi aralık dışında (664,18) — 'eGriD2.mq4' içinde dizi aralık dışında (664,18)

EA'daki kritik bir hata nedeniyle test geçişi durduruldu - EA'daki kritik bir hata nedeniyle test geçişi durduruldu

Yani kod stüdyoda.

not; Bununla birlikte, ikiden az sipariş olduğunda bu işlevi çağırırsanız, bu hatalar meydana gelir. ………'a karşı korumadım, ama görünüşe göre gerekliydi.

Tam da bu nedenle, birine yardım etme arzusundan tamamen yoksunum ... İpuçlarımın kasıtlı olarak uygulanmasına güveniyorsunuz, ama ...... ...

 
Güzel gün. Bana n çubukları için minimum / maksimum aramayı nasıl uygulayacağımı söyle?
 
Snajper007 # :
Güzel gün. Bana n çubukları için minimum / maksimum aramayı nasıl uygulayacağımı söyle?
iEn yüksek

iEn düşük

 
MakarFX

Böyle bir soru daha. Fraktal çizen bir gösterge var. n çubuklar için bir sinyalin varlığı nasıl kontrol edilir?

 
Snajper007 # :

Böyle bir soru daha. Fraktal çizen bir gösterge var. n çubuklarda bir sinyal nasıl kontrol edilir?

Her şeyden önce, fraktalları çizen göstergeye bağlıdır.
Neden: