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

 
Artyom Trishkin # :
Ancak bir diziye koymak ve istenen kritere göre sıralamak ne kadar kolay. Ama şimdiden 100500 sayfadan topuklara koltuk değneği bağladık.
Lütfen kodda bir örnek gösterin. Bir diziye nasıl ekleyeceğimi ve sonra tekrar nasıl sıralayacağımı bilmiyorum.
 
Alexey Viktorov # :
Birinden cevap beklemekten daha kolay ve daha hızlı kontrol etmek ...

mql'deki becerilerim hala çok küçük) Kesinlikle deneyebilirim, ama çok zamanımı alacak) bu yüzden bir şeyi yapmanın mümkün olup olmadığını önceden bilmek, çok zaman harcamaktan ve kazanacağını anlamaktan daha iyidir' çalışma)
Elime geçtiğinde ve daha fazla boş zaman olacak, o zaman elbette kendim denemek daha kolay olacak, ama şimdilik daha deneyimli insanlara yapılabilir mi diye sorsam iyi olur.

 
Scarick # :

mql'deki becerilerim hala çok küçük) Kesinlikle deneyebilirim, ama çok zamanımı alacak) bu yüzden bir şeyin mümkün olup olmadığını önceden bilmek, çok fazla zaman harcayıp işe yaramayacağını anlamaktan daha iyidir )
Elime geçtiğinde ve daha fazla boş zaman olacak, o zaman elbette kendim denemek daha kolay olacak, ama şimdilik daha deneyimli insanlara yapılabilir mi diye sorsam iyi olur.

Sizin durumunuzda, beceriler harika değilse, ancak bu sorudan anlaşılabilecek mantıklı düşünme çalışıyorsa

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

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

Scarick , 2021.11.06 17:01

Yani, göstergede 5 karakter imzalarsam, o zaman sadece bir OnBookEvent() aracılığıyla 5 karakterin tamamıyla çalışabilir miyim? Ana şey, değişiklik hangi karaktere göre filtrelemektir?

en güvenilir şey kontrol etmek ve birinden olumlu bir cevap beklememektir. O yüzden cevapladığım şekilde cevap verdim.
 
MakarFX # :
Lütfen kodda bir örnek gösterin. Bir diziye nasıl ekleyeceğimi ve sonra tekrar nasıl sıralayacağımı bilmiyorum.

Buraya bakın https://www.mql5.com/ru/articles/1404 Orada sıralama yok, diziye koyun.

Управление ордерами – это просто
Управление ордерами – это просто
  • www.mql5.com
Статья описывает разнообразные способы контроля открытых позиций и отложенных ордеров и призвана облегчить написание экспертов.
 
MakarFX # :
Lütfen kodda bir örnek gösterin. Bir diziye nasıl ekleyeceğimi ve sonra tekrar nasıl sıralayacağımı bilmiyorum.

bool BubbleSort(yapı &dizi[])

{

for(int i = ArraySize(arr)-1;i>=0;i--)
for(int j = i-1;j>=0;j--) {

if (Compare(arr[i],arr[j])<0 ) Swap(arr[i],arr[j]);

}

}

hadi, siktir git - okula git ... bu tür mikro algoritmalar hafızadan ve sarhoş bir stuporda, bir gözü kapatarak yazılır

Cidden: bazı konuların algoritmik kurslarını alın ..

 
Alexey Viktorov # :

Sizin durumunuzda, beceriler harika değilse, ancak bu sorudan anlaşılabilecek mantıklı düşünme çalışıyorsa

en güvenilir şey kontrol etmek ve birinden olumlu bir cevap beklememektir. O yüzden cevapladığım şekilde cevap verdim.
Evet, daha az emekle nasıl deneyeceğimi çoktan anladım. Ancak bir test cihazı ile kontrol edemezsiniz. İş günlerini beklemek zorundayız. Ama direk cevaplayabilirlerdi) Benim için kod yazmanı istemiyorum, sadece bir soru sordum.
 

Maxim Kuznetsov # :

hadi, siktir git - okula git ... bu tür mikro algoritmalar hafızadan ve sarhoş bir stuporda, bir gözü kapatarak yazılır

Cidden: bazı konuların algoritmik kurslarını alın ..

İlginç bir iletişim şekli... zorlamaya değmezdi

 
MakarFX # :

İlginç bir iletişim şekli... zorlamaya değmezdi

normal şekilde - size bir sıralama algoritması verilir. Tüm yol boyunca, normal kabarcık sıralaması. Kimse gergin değildi.

ve gerçekten normal bir mesaj - algoritmalar hakkında bilgi edinin

Peki, literatürü okuyun.

 

İyi günler Programcılar!!!!

Sorumu yeniden ifade etmeye çalışacağım ama biraz yeniden ifade edeceğim.

Uzman Danışman ızgarasında, sondan bir önceki siparişin biletini bulmanız gerekir. Maximum order biletinden -1 gibi bir çözüm işe yaramıyor belki strateji testerda işe yarar ama demo ve gerçek hesaplarda çalışmaz resim ekliyorum sebebi belli olur.

Sondan bir önceki siparişin biletini belirlemek için fonksiyon kodunu yazdım. Mantığı şudur: griddeki tüm açık emirleri yineledikten sonra, onu takip eden en yüksek olanı buluyoruz ve gerekli emir bileti var.

Ancak programlamamın seviyesi yüksek değil ve kodun içine bir tür hata girdi. Bu işlevin sonucu en az bilettir. Bu iki işlev, maksimum bilet ve sondan bir önceki bilettir. Maks. bilet sorunsuz çalışıyor.

 //+----------------------------------------------------------------------------+
//| Расчет тикета предпоследнего ордера в сетке                                |
//+----------------------------------------------------------------------------+
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);
  }
 //+----------------------------------------------------------------------------+
//| Расчет тикета максимального ордера в сетке                                 |
//+----------------------------------------------------------------------------+
int GetTicketMaxOrder()
  {
   max_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() > max_ticket)
                     max_ticket = OrderTicket();
                 }
              }
           }
        }
     }
   return (max_ticket);
  }

Sizden ne bir hata olduğunu sormanızı rica ediyorum. Teşekkür ederim.

 
Scarick # :
Evet, daha az çabayla nasıl deneyeceğimi çoktan anladım. Ancak bir test cihazı ile kontrol edemezsiniz. İş günlerini beklemek zorundayız. Ama direk cevaplayabilirlerdi) Benim için kod yazmanı istemiyorum, sadece bir soru sordum.

Şey... Seni gücendirmeyi düşünmedim bile. Ve olumlu bir cevaptan ne değişirdi? Sonuçta, herkes için sadece çalışma saatlerinde yazmanız ve kontrol etmeniz gerekir.

Neden: