Hatalar, hatalar, sorular - sayfa 2533

 
Georgiy Merts :

Sizin durumunuzda, bir while () döngüsü düzenlemeniz gerekir, for () değil.

Yanıp sönmenin bittiğine dair bir işaret olup olmadığını kontrol edin.

Ancak "değişken bir frekansta yanıp sönme" gerçeği hakkında - garip bir şey ... Hemen herhangi bir hata görmüyorum, oldukça sık yanıp sönmesi gerekiyor.

Ancak, makul olduğundan şüpheliyim - onları görünmez yapmak yerine grafik nesneleri oluşturmak ve silmek . Ama bir cismi görünmez yapmak imkansız görünüyor... Yani geriye sadece onu silmek kalıyor.

Cevap için teşekkürler, şimdi çalışıyor. Ama yanıp sönme de bir o kadar kaotik, nasıl olduğunu kaydettim. Ve silmeyi, LABEL rengini siyah olarak değiştirerek değiştirdim.



 int i = 1 ;
   while (i > 0 )   //true?
   {      
       if (! ObjectCreate ( 0 , "Blink" , OBJ_LABEL , 0 , 0 , 0 ))
   {
       Print ( "Not Create! Error - " , GetLastError ());
   }
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_XDISTANCE , 50 +i);
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_YDISTANCE , 50 );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_CORNER , CORNER_RIGHT_UPPER );
   ObjectSetString ( 0 , "Blink" , OBJPROP_TEXT , "Test" );
   ObjectSetString ( 0 , "Blink" , OBJPROP_FONT , "Arial" );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_FONTSIZE , 18 );
   ObjectSetDouble ( 0 , "Blink" , OBJPROP_ANGLE , 0 );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_ANCHOR , ANCHOR_RIGHT_UPPER );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_COLOR ,Red);
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_BACK , false );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_SELECTABLE , true );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_SELECTED , false );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_HIDDEN , true );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_ZORDER , 0 );
   
   Sleep ( 200 );
   
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_COLOR ,Black);
   
   Sleep ( 200 );
   } 
 
Влад :

Cevap için teşekkürler, şimdi çalışıyor. Ama yanıp sönme de bir o kadar kaotik, nasıl olduğunu kaydettim. Ve silmeyi, LABEL rengini siyah olarak değiştirerek değiştirdim.


Teak'e bağlı olduğu görülebilir. Bu tür kodlar OnTick()'te değil, OnTimer()'da yapılmalıdır.

Ve onu siyaha boyamanız gerekmez - nesnelerin belirli bir grafik periyodunda ( OBJPROP_TIMEFRAMES ) görünürlük özelliği vardır - bu nedenle görünürlüğü kontrol etmeleri gerekir.

Nesnenin görünür olması gereken zaman dilimlerinin değerleri bir dizi bayrakla belirlenir. Sizin durumunuzda, 0 ( OBJ_NO_PERIODS ) - hiçbir yerde görünmez ve OBJ_ALL_PERIODS - her yerde görünür olarak ayarlamanız gerekir. ChartRedraw() kullanarak özellik değerini değiştirdikten sonra grafiği güncellemeyi unutmayın.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
  • www.mql5.com
Комбинация флагов видимости объекта определяет таймфреймы графика, на которых объект отображаем. Для установки/получения значения свойства OBJPROP_TIMEFRAMES можно использовать функции ObjectSetInteger()/ObjectGetInteger...
 
Влад :

Cevap için teşekkürler, şimdi çalışıyor. Ama yanıp sönme de bir o kadar kaotik, nasıl olduğunu kaydettim. Ve silmeyi, LABEL rengini siyah olarak değiştirerek değiştirdim.

Bence hala kaybedecek bir şeyiniz yok, script kodumu kullanmayı deneyin, işe yarıyor, daha kısa

 #property copyright "IgorM"
#property link        "https://www.mql5.com/ru/users/igorm"
#property version    "1.00"
#property strict

#include <ChartObjects\ChartObjectsTxtControls.mqh>
CChartObjectLabel Label;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   Label.Create( 0 , "tst" , 0 , 0 , 50 );
   Label.Description( "Hello word!" );
   Label.FontSize( 14 );
   bool show= true ;
   while (! IsStopped ())
     {
       color col=show ? clrRed : clrNONE ;
      Label.Color(col);
      show=!show;
       ChartRedraw ();
       Sleep ( 1000 );
     }
  }
//+------------------------------------------------------------------+

komut dosyası klasöründe!

 
Igor Makanu :

Bence hala kaybedecek bir şeyiniz yok, script kodumu kullanmayı deneyin, işe yarıyor, daha kısa

komut dosyası klasöründe!

Igor, anladığım kadarıyla bu MQL5'te yazılmış ve ne yazık ki Metatrader 4'e sahibim.

 
Влад :

Igor, anladığım kadarıyla bu MQL5'te yazılmış ve ne yazık ki Metatrader 4'e sahibim.

bu MQL4... şimdiden deneyebilirsiniz))))

 
Kahretsin, kesinlikle) Çok teşekkür ederim, Igor! Küstahlık için özür dilerim, ancak bir senaryo değil, bir gösterge alabilir miyim? Ve sonra TF'yi değiştirdiğinizde, komut dosyası uçar. Bağırsakları gösterge şablonuna kopyaladım, normal bir şekilde derleniyor ve grafiğe attığımda terminal donuyor.
 
Lütfen söyleyin, kim bilir: test edilmiş MQL5 Expert Advisor'da ileri optimizasyonun sonucunu nasıl elde edersiniz? Bu soru bir başlıktaydı . Belki cevap burada bulunur.
 
Влад :
Kahretsin, kesinlikle) Çok teşekkür ederim, Igor! Küstahlık için özür dilerim, ancak bir senaryo değil, bir gösterge alabilir miyim? Ve sonra TF'yi değiştirdiğinizde, komut dosyası uçar. Bağırsakları gösterge şablonuna kopyaladım, normal bir şekilde derleniyor ve grafiğe attığımda terminal donuyor.
Dosyalar:
Blink.mq4  3 kb
 
Igor Makanu :

Çok teşekkür ederim adamım! )

 

Site yöneticileri için:

nerde bulamadım buraya yazıyorum

Profildeki satıcının bilgilerini değiştirmeniz gerekiyor.

nasıl yapılır ?

satıcının ofisine uzun süre mesaj yazdı, cevap yok

belki başka bir yolu vardır?