[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 414

 
inoy :

EA, kendi siparişini zamanında kapatmaz, bir başkasının bir sembol siparişi varsa, kendisinden ERKEN açılmıştır.
sipariş. Başka birinin siparişi daha sonra açılırsa veya başka birinin siparişi yoksa OrderClose işlevi doğru çalışır. söyle hata nerde


Hata, sadece 0 indeksli bir emir almanız ve onu açık emirler arasında aramamanızdır.
 
Roger :

Hata, sadece 0 indeksli bir emir almanız ve onu açık emirler arasında aramamanızdır.

Üzgünüm ama BU varyantta durum benzer.
 //---- закрытие позиции
if(OrdersTotal() > 0)
for ( int i= OrdersTotal ();i>= 0 ;i--)
OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()== Symbol ()&& OrderMagicNumber() == MagicNumber)
if ( iTime( Symbol (), 0 , 0 ) >= OrderOpenTime()+SecondsClose )
if (OrderType() == OP_BUY)
OrderClose(OrderTicket(),OrderLots(), NormalizeDouble (Bid, Digits ), NormalizeDouble ((Ask - Bid) * Point , Digits ), DodgerBlue );
Lütfen soruna doğru çözümü verin
 
Avelox :

Aşağıdaki ifadeden göstergede bir ses sinyali nasıl çıkarılır:

if (sayı1 == 9) {
ObjectCreate(""+i, OBJ_TEXT, 0, Zaman[i+1],Yüksek[i+1]+10*Nokta );
ObjectSetText(""+i, ""+DoubleToStr(num1,0), 16, "Arial", RoyalBlue);

}

Mümkünse, " OBJ_SICICOCI kullanabilir ve MQL4 belgelerinde ayrıntıları görebilirsiniz, her şey orada!"

Bu sorunu kendim çözmeyi başardım:


ObjectCreate(""+i, OBJ_TEXT , 0, Zaman[i+1],Yüksek[i+1]+10*Nokta );
ObjectSetText(""+i, ""+DoubleToStr(num1,0), 18, "Arial", RoyalBlue);
PlaySound("havecall.wav"); }
 
inoy :

Üzgünüm ama BU varyantta durum benzer. Lütfen soruna doğru çözümü verin

 //---- закрытие позиции
if ( OrdersTotal () > 0 ) 
{
   for ( int i= OrdersTotal ();i>= 0 ;i--) 
  {
     OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()== Symbol ()&& OrderMagicNumber() == MagicNumber) 
    {
       if ( iTime( Symbol (), 0 , 0 ) >= OrderOpenTime()+SecondsClose ) 
      {
         if (OrderType() == OP_BUY)
         {
            OrderClose(OrderTicket(),OrderLots(), NormalizeDouble (Bid, Digits ), NormalizeDouble ((Ask - Bid) * Point , Digits ), DodgerBlue );
         }
      }
   }
}
 

Oh, ayrıca, değiştirin

 for ( int i= OrdersTotal ();i>= 0 ;i--) 

üzerinde

 for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) 


И еще, не понял, что за элемент в функции (подчеркнуто красным)?

OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits), NormalizeDouble((Ask - Bid) * Point ,Digits), DodgerBlue);

 
for ( Expression_1 ; ; Expression_2 ) // Eksik Koşul
      { // Açılış ayracı
      İfade bloğu, // Döngü gövdesi ..
      döngü gövdesini oluşturan //.. birkaç ifadeden
      } // küme ayracı kapatılıyor

Bu döngü için çıkış koşulu nedir? ya da bunun gibi

 for ( ; ; ) // Eksik. İfadeler ve Durum
      { // Açılış ayracı
      İfade bloğu, // Döngü gövdesi ..
      döngü gövdesini oluşturan //.. birkaç ifadeden
      } // Ayracı kapatma
 
VladimirR :

Böyle bir döngü için çıkış koşulunun ne olduğunu söyleyebilir misiniz? ya da bunun gibi


kırmak
 

Vinin, Roger - teşekkürler, yardımcı oldu.

NormalizeDouble((Ask - Bid) * Point, Digits ), XAUUSD gibi yüksek spread sembolleri için bir Kaymadır.

 
inoy :

Vinin, Roger - teşekkürler, yardımcı oldu.

NormalizeDouble((Ask - Bid) * Point,Digits), XAUUSD gibi yüksek spread sembolleri için bir Kaymadır.


Yani 0 olduğunu mu düşünüyorsun? İlk olarak, kayma pozitif bir tamsayı olmalı ve ikinci olarak, fark çarpılmamalı, Nokta'ya bölünmelidir.
 
Kral! geceleri ticaret yapmamak için bir danışman nasıl "sütten kesilir"? Yani, 23 ila 02 saat arasındaki terminal saatine göre (Greenwich Ortalama Saati).. Hour()>=2&&Hour()<=23 satırları yardımcı olmadı...