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

 
Koldun Zloy # :

Kimse faydalı olmayacak. Kodunuzda büyük hatalar var. Ve onları düzeltmek anlamsız.

Dilin temellerini öğrenme zahmetine bile girmedin ama bir şeyler yazmaya çalışıyorsun.

Ya ciddiye alırsın ya da bırakırsın.

Lütfen neyin yanlış olduğunu açıklayın. Kısaca tezde nelere dikkat etmeniz gerektiğini yazabilirsiniz. Ve kod çalışacaksa, "hatası" ne olacak?

 
Ivan Butko # :

Lütfen neyin yanlış olduğunu açıklayın. Kısaca tezde nelere dikkat etmeniz gerektiğini yazabilirsiniz. Ve kod çalışacaksa, "hatası" ne olacak?

 //+------------------------------------------------------------------+
//| Функция IsMainPendingOrder (установлен отложенный ордер):        |
//| возвращает истину, если в советнике не установлен отложенный     |
//| ордер, в противном случае возвращает ложь.                       |
//| Применим для функции тип данных bool, чтобы хранить              |
//| логические значения true (истина) или false (ложь).              |
//+------------------------------------------------------------------+
bool IsMainPendingOrder()
  {
   int orders_total= OrdersTotal (); // количество установленных отложенных ордеров
//--- перебираем все установленные отложенные ордера
   for ( int i=orders_total- 1 ; i>= 0 ; i--)
     {
       ulong   order_ticket= OrderGetTicket (i); // тикет ордера
       /* если отложенного ордера нет, значит и у нашего советника отложенного ордера нет */
       if ( OrderSelect (i) == false )
         return true ; // поэтому возвращаем значение истина
       else // в противном случае
         return false ; // возвращаем значение ложь
     }
   /* если отложенный ордер уже есть и его мэджик совпадает с мэджиком нашего советника */
   if ( OrderGetInteger ( ORDER_MAGIC )==Magic_Number)
       return true ;   // то возвращаем истину
   /* в противном случае, если отложенный ордер уже есть, но его мэджик не совпадает с мэджиком нашего советника */
   else
       return false ; // значит это чужой ордер, поэтому возвращаем значение ложь

dokümanlardan ... gelen kutusunda bir dizin değil, bir bilet olmalıdır

 bool    OrderSelect ( 
   ulong    ticket       // тикет ордера 
   );

Liste farklı enstrümanlar için birkaç sipariş içeriyorsa ve listede aradığımız ikinci sipariş ise, onu bulamayız. Veya sadece bir sihirbaz var, ancak onu başka bir sembolle bulmanız gerekiyor, o zaman yine fonksiyondan yanlış bir cevap olacak ...

 
Alexey Viktorov # :

dokümanlardan ... gelen kutusunda bir dizin değil, bir bilet olmalıdır

Bahşiş için teşekkürler Alex! Gece bilgisayar başında oturmak beni çok kötü etkiliyor. Görünüşe göre dün bir sipariş bileti ile başladım ve kodun içine zaten şu satırı yazdım:

 ulong   order_ticket= OrderGetTicket (i); // тикет ордера

ve sonra oradan taşındı.

Alexey, ancak kodun böyle bir çeşidi kabul edilebilir mi?

 //+------------------------------------------------------------------+
//| Функция IsMainPendingOrder (установлен отложенный ордер):        |
//| возвращает истину, если установлен отложенный ордер,             |
//| в противном случае возвращает ложь.                              |
//| Применим для функции тип данных bool, чтобы хранить              |
//| логические значения true (истина) или false (ложь).              |
//+------------------------------------------------------------------+
bool IsMainPendingOrder()
  {
   int orders_total= OrdersTotal (); // количество установленных отложенных ордеров
//--- перебираем все установленные отложенные ордера
   for ( int i=orders_total- 1 ; i>= 0 ; i--)
     {
       ulong  order_ticket= OrderGetTicket (i); // тикет ордера
       /* если отложенного ордера нет, значит и у нашего советника отложенного ордера нет */
       if (order_ticket== 0 )
         return false ; // поэтому возвращаем значение ложь
       else // в противном случае
         return true ; // возвращаем значение истина
     }
   /* если отложенный ордер уже есть и его мэджик совпадает с мэджиком нашего советника */
   if ( OrderGetInteger ( ORDER_MAGIC )==Magic_Number)
       return true ;   // то возвращаем истину
   /* в противном случае, если отложенный ордер уже есть, но его мэджик не совпадает с мэджиком нашего советника */
   else
       return false ; // значит это чужой ордер, поэтому возвращаем значение ложь
  }

Henüz Magic'e dokunmuyorum çünkü. kod, tek karakterli bir Uzman Danışman için tasarlanmıştır.

Saygılarımla, Vladimir.

 
MrBrooklin # :

Bahşiş için teşekkürler Alex! Gece bilgisayar başında oturmak beni çok kötü etkiliyor. Görünüşe göre dün bir sipariş bileti ile başladım ve kodun içine zaten şu satırı yazdım:

ve sonra oradan taşındı.

Alexey, ancak böyle bir kod seçeneği kabul edilebilir mi?

Henüz Magic'e dokunmuyorum çünkü. kod, tek karakterli bir Uzman Danışman için tasarlanmıştır .

Saygılarımla, Vladimir.

Benim için bu yaklaşım kabul edilemez. Bir sihir ve sembol kontrolü, iki satır kod ve buna karşılık sorunu çözmek için normal bir yaklaşım ekleyin. Ve ilkelerime dikkat etmezseniz, o zaman tam olarak doğru kod değil.

Bu daha mantıklı.

 //+------------------------------------------------------------------+
//| Функция IsMainPendingOrder (установлен отложенный ордер):        |
//| возвращает истину, если установлен отложенный ордер ,             |
//| в противном случае возвращает ложь .                              |
//| Применим для функции тип данных bool, чтобы хранить              |
//| логические значения true (истина) или false (ложь).              |
//+------------------------------------------------------------------+
bool IsMainPendingOrder()
  {
   int orders_total= OrdersTotal (); // количество установленных отложенных ордеров
//--- перебираем все установленные отложенные ордера
   for ( int i=orders_total- 1 ; i>= 0 ; i--)
     {
       ulong order_ticket= OrderGetTicket (i); // тикет ордера
       /* если отложенный ордер есть */
       if (order_ticket > 0 )
         return true ; // поэтому возвращаем истину
     }
       return false ; // если нет открытого отложенного ордера…
  }

Ve bu kodda boş çeki değiştirmek yeterlidir.

       if (order_ticket > 0 )

magick ve sembolü kontrol etmek için

       if ( OrderGetString ( ORDER_SYMBOL ) == _Symbol && OrderGetInteger ( ORDER_MAGIC ) == Magic_Number)

ve daha çok yönlü bir işlev...

 
Alexey Viktorov # :

dokümanlardan ... gelen kutusunda bir dizin değil, bir bilet olmalıdır

Liste farklı enstrümanlar için birkaç sipariş içeriyorsa ve listede aradığımız ikinci sipariş ise, onu bulamayız. Veya sadece bir sihirbaz var, ancak onu başka bir sembolle bulmanız gerekiyor, o zaman yine fonksiyondan yanlış bir cevap olacak ...

teşekkürler

 
Alexey Viktorov # :

Benim için bu yaklaşım kabul edilemez. Bir sihir ve sembol kontrolü, iki satır kod ve buna karşılık sorunu çözmek için normal bir yaklaşım ekleyin. Ve ilkelerime dikkat etmezseniz, o zaman tam olarak doğru kod değil.

Bu daha mantıklı.

Ve bu kodda boş çeki değiştirmek yeterlidir.

magick ve sembolü kontrol etmek için

ve daha çok yönlü bir işlev...

Herkese günaydın ve iyi bir ruh hali!

ÇOK TEŞEKKÜR EDERİM Alexey, muhataba karşı sabırlı yaklaşımın ve hatalarımın ne olduğunu anlaşılır bir şekilde açıkladığın için.

Saygılarımla, Vladimir.

 
Ivan Butko # :

Lütfen neyin yanlış olduğunu açıklayın. Kısaca tezde nelere dikkat etmeniz gerektiğini yazabilirsiniz. Ve kod çalışacaksa, "hatası" ne olacak?

Temel şeylerin yanlış anlaşılmasındaki hatalar.

Onları kendiniz görmüyorsanız, siz de: Öğrenin. çalış ve öğren!

 
Koldun Zloy # :

Temel şeylerin yanlış anlaşılmasındaki hatalar.

Onları kendiniz görmüyorsanız, siz de: Öğrenin. çalış ve öğren!

Durmak. Yeni başlayanlar için sorularla konu açın. Bu nedenle ya başlıkta sorulan sorulara cevap verirsiniz ya da moralinizi bozmadan geçersiniz.

Neden kendilerini gösterdiler? İnsanlar fotoğraftaki yakışıklı adamı değil, soruların cevaplarını görmek istiyor.

 
Artyom Trishkin # :

Durmak. Yeni başlayanlar için sorularla konu açın. Bu nedenle ya başlıkta sorulan sorulara cevap verirsiniz ya da moralinizi bozmadan geçersiniz.

Neden kendilerini gösterdiler? İnsanlar fotoğraftaki yakışıklı adamı değil, soruların cevaplarını görmek istiyor.

Bir kişinin bir şey öğrenmek isteyip istemediğini öğrenmek istedim, o zaman yardımcı olabilirim.

 
Koldun Zloy # :

Bir kişinin bir şey öğrenmek isteyip istemediğini öğrenmek istedim, o zaman yardımcı olabilirim.

İyi. Arzuyu tanımanın yolu garip görünüyordu: "Nasıl olduğunu bilmiyorsun, çalışman ve çalışman gerekiyor."

Ama olsun...

Neden: