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

 

Merhaba. Lütfen bana söyle. yürütmede gecikme nasıl organize edilir. Böylece yeni bir mumdan sonra, güncelleme yapılmadan önce 10 saniye geçer.

 #define   WM_COMMAND                     0x0111
#property indicator_chart_window
#import "user32.dll"
int RegisterWindowMessageA( string lpstring);
int PostMessageA( int   hWnd, int   Msg, int   wParam, string lParam);
int New_Bar;
datetime Time_0;
#import
int start()
 {
     New_Bar= 0 ;                   // Для начала обнулимся
   if (Time_0 != Time [ 0 ])           // Если уже другое время начала бара
      {
      New_Bar= 1 ;                 // А вот и новый бар
      Time_0 = Time [ 0 ];           // Запомним время начала нового бара
      PostMessageA ( WindowHandle ( Symbol (), Period ()), WM_COMMAND, 33324 , 0 );
      PostMessageA ( WindowHandle ( Symbol (), 0 ), RegisterWindowMessageA ( "MetaTrader4_Internal_Message" ), 2 , 1 );
      } 
 return ( 0 );
 }
 
Merhaba, grafikten 1 nesneyi kaldırırsanız geri kalanın (isteğe bağlı) silineceği koşulu için bir kod yazmanızı affedeceğim.

1 nesneye eklenmiş başkaları var ve bu nesne silindiğinde, gerisi sadece çizelgede asılı kalıyor
 
Dmitry Ivkin :
Merhaba, grafikten 1 nesneyi kaldırırsanız geri kalanın (isteğe bağlı) silineceği koşulu için bir kod yazmanızı affedeceğim.

1 nesneye eklenmiş başkaları var ve bu nesne silindiğinde, gerisi sadece çizelgede asılı kalıyor
Nesneleri oluştururken önekleri kullanırım, yani. adının başlangıcı. Örneğin: ObjectCreate ("777_a" ... ObjectCreate("777_z" ve ardından ObjectsDelete(0,"777_") grubunu siliyorum)
 
werter :

Merhaba. Lütfen bana söyle. yürütmede gecikme nasıl organize edilir. Böylece yeni bir mumdan sonra, güncelleme yapılmadan önce 10 saniye geçer.

En basiti Time_0 = Time[0]'dan sonradır; Uyku (10000) ekleyin; ve alt #import yönergesinin 2 satır yukarı taşınması gerektiği görülüyor

 
STARIJ :

En basiti Time_0 = Time[0]'dan sonradır; Uyku (10000) ekleyin; ve alt #import yönergesinin 2 satır yukarı taşınması gerektiği görülüyor

Eh, evet, eğer bir uzman olsaydı... Uyku göstergesinde bu imkansız, ne yazık ki.
 
STARIJ :
Nesneleri oluştururken önekleri kullanırım, yani. adının başlangıcı. Örneğin: ObjectCreate("777_a" ... ObjectCreate("777_z" ve ardından ObjectsDelete(0,"777_") grubunu siliyorum)

Cevap verdiğiniz için teşekkür ederim, hayır, anlamadınız, nesneye bağlı başka nesnelerim var ve göstergeyi kaldırırsanız, her şey yolunda, ancak doğru düğmeye basarsanız. fare ve sil sonra tam olarak 1 nesne silinecek, ancak ekli olanlara ihtiyacınız var, umarım anlarsınız)

 
Dmitry Ivkin :

Cevap verdiğiniz için teşekkür ederim, hayır, anlamadınız, nesneye bağlı başka nesnelerim var ve göstergeyi kaldırırsanız, her şey yolunda, ancak doğru düğmeye basarsanız. fare ve sil o zaman tam olarak 1 nesne silinecek, ancak ekli olanlara ihtiyacınız var, umarım anlarsınız)

Periyodik olarak ( her tik ?) ana nesnenin varlığını kontrol edin ve yoksa, alt nesneleri önekle silin
 
werter Eh, evet, bir uzman olurdu... Uyku göstergesinde imkansız, ne yazık ki.
 datetime Time_0= 0 ;

void ...
{
   if (Time_0 < TimeCurrent ())
   {
       Alert ( TimeCurrent ());
      Time_0 = Time [ 0 ]+ PeriodSeconds ()+ 10 ; 
   }
 

Uzun zamandır MQL4'te yazmadım, şimdi Expert Advisor'ı MQL5'ten yeniden yazmam gerekiyor. Danışmanın bulunduğu sembolde 1 işlem açması gereken kod doğru mu?

Nedense test cihazında 2 işlem açıldı

...
if (!Orderex( _Symbol ))
{
   OrderSend ( NULL , OP_SELL ,lot, Bid , 30 , Bid +stop* Point , Bid -take* Point , NULL ,magicf, 0 , clrRed );
}
...
bool Orderex( string symbol)
{
   for ( int i= OrdersTotal (); i> 0 ; i--)
      {
         OrderSelect (i, SELECT_BY_POS , MODE_TRADES );
         if ( OrderSymbol ()==symbol && OrderMagicNumber ()==magicf) return true ;
      
      
      
      }


   return false ;
}
 

Daha önce düşünmediğim başka bir nüansla karşılaştım

1) çiftlerde çok sayıda danışmanımız var

2) herhangi bir danışman tarafından kendi ayarlarıyla herhangi bir sipariş açarken (bazıları örneğin 0.1 bazı 0.5 açar), "uzmanlar" satırında bir giriş görüntülenir

3) uzmanların satırı okunur ve x lottan daha fazla değere sahip açık pozisyonlarla , robotların geri kalanı kendilerini siler, kapanır vb.


Soru, nasıl okunacağı ve işleneceğidir. günlük dosyalarında görünmüyor.