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

 
Valeriy Yastremskiy :

booleanları tercih ederim

Burada nasıl uygulanabileceğini tam olarak anlamıyorum.

Zor değilse kodumu düzeltebilir miyim?

       string symbol;
       long currChart= ChartFirst (); int i= 0 ;
       while (currChart>= 0 )
        {
         if ( ChartGetInteger (currChart, CHART_BRING_TO_TOP , 0 )== true ) 
           { 
             if ( ChartSymbol (currChart)!=symbol)
              {
               symbol= ChartSymbol (currChart); Print (symbol);
              }
           } 
         currChart= ChartNext (currChart);  i++;
        }
 
Ve ne, Vitaliy iyi bir kod yazdı. Doğru yerde i++ var. Bu kod nasıl çalışır?
 
MakarFX :

Değeri değiştirirken Print() 'i nasıl yazdıracağımı söyle

hangi değeri değiştirirken?

 
MakarFX :

Burada nasıl uygulanabileceğini tam olarak anlamıyorum.

Zor değilse kodumu düzeltebilir miyim?

 string symbol, printsimbol="";
       long currChart= ChartFirst (); int i= 0 ;
       while (currChart>= 0 )
        {
         if ( ChartGetInteger (currChart, CHART_BRING_TO_TOP , 0 )== true ) 
           { 
             if ( ChartSymbol (currChart)!=symbol)
              {
               symbol= ChartSymbol (currChart); if (printsimbol!=symbol) Print (symbol);printsimbol=symbol;
              }
           } 
         currChart= ChartNext (currChart);  i++;
        }
 
MakarFX :

Burada nasıl uygulanabileceğini tam olarak anlamıyorum.

Zor değilse kodumu düzeltebilir miyim?

Bu yapının nerede ve nasıl çağrıldığına dair ayrıntı vermiyorsunuz.

Aynı zamanda, istediğiniz grafiği bulursanız ve yalnızca bir tane varsa, terminali zorlamamak için hemen kırın.

Bir tablo bulduk, ezberledik ve tasarımı bir daha aramadık. Göreve bağlı olmasına rağmen, bir olayı çağırmak muhtemelen en uygunudur.

 
Aleksei Stepanenko :

hangi değeri değiştirirken?

Aktif çizelge penceresi değiştiğinde, fonksiyon aktif çizelge sembolünü yazdırır.

Vitaly Muzichenko :

Bu yapının nerede ve nasıl çağrıldığına dair ayrıntı vermiyorsunuz.

Aynı zamanda, istediğiniz grafiği bulursanız ve yalnızca bir tane varsa, terminali zorlamamak için hemen kırın.

Bir tablo bulduk, ezberledik ve tasarımı bir daha aramadık. Göreve bağlı olmasına rağmen, bir olayı çağırmak muhtemelen en uygunudur.

Üzgünüz, işlev çağrıldı...

 //+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer ()
  {
       string symbol01;
       long currChart= ChartFirst (); int i= 0 ;
       while (currChart>= 0 )
        {
         if ( ChartGetInteger (currChart, CHART_BRING_TO_TOP , 0 )== true ) 
           { 
            symbol01= ChartSymbol (currChart);       Print (symbol01);
           } 
         currChart= ChartNext (currChart);  i++;
        }
//--- 
  }
Valeriy Yastremskiy :

Maalesef o da çalışmıyor. Sonsuz yazdırır

 
MakarFX :

Aktif çizelge penceresi değiştiğinde, fonksiyon aktif çizelge sembolünü yazdırır.

Üzgünüz, işlev çağrıldı...

Maalesef o da çalışmıyor. Sonsuz yazdırır

ve bu iş böyle değil mi? - sadece bir kez bir baskı bir sinyal verecektir

 //+------------------------------------------------------------------+
//|                                                         0001.mq5 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
int ticks_to_close= 1 ; // количество тиков
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- create timer
   if (! EventSetTimer ( 1 ))
       Alert ( "Error create timer!" );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer ()
  {
   string symbol01;
   long currChart= ChartFirst ();
   int i= 0 ;
   while (currChart>= 0 )
     {
       if ( ChartGetInteger (currChart, CHART_BRING_TO_TOP , 0 )== true )
        {
         symbol01= ChartSymbol (currChart);
           {
             if (ticks_to_close> 0 )
              {
               ticks_to_close--;
               Print (symbol01);
              }
           }
        }
      currChart= ChartNext (currChart);
      i++;
     }
//---
  }
//+------------------------------------------------------------------+
 
SanAlex :

ve bu iş böyle değil mi? - sadece bir kez bir baskı sinyal verecektir

Bu değil. Başlangıçta bir kez yazdırır. Programı değiştirirken hiçbir şey yapmaz.
 
MakarFX :

Aktif çizelge penceresi değiştiğinde, fonksiyon aktif çizelge sembolünü yazdırır.

Üzgünüz, işlev çağrıldı...

Maalesef o da çalışmıyor. Sonsuz yazdırır

Veya belgeleri daha yakından okumak daha iyi olabilir mi?

CHART_BRING_TO_TOP

Grafiği diğerlerinin üstünde göster

bool w/o


Bu, bu özelliğin salt okunur olduğu anlamına gelir. okumaya mı çalışıyorsun...

Ayrıca, soruya tam bir cevap vermiyorsunuz.

Bu bir komut dosyası veya göstergedir.
 
MakarFX :

Aktif çizelge penceresi değiştiğinde, fonksiyon aktif çizelge sembolünü yazdırır.

Üzgünüz, işlev çağrıldı...

Maalesef o da çalışmıyor. Sonsuz yazdırır

Neler olduğunu anlamıyorsam, sahip olduğum her şeyi yazdırırım, bazen yardımcı olur. Ve Vile'ın özünü anlamıyorum. Koşul her zaman doğrudur.

 string symbol, printsimbol= "" ;
       long currChart= ChartFirst (); int i= 0 ;
       while (currChart>= 0 )
        {
         if ( ChartGetInteger (currChart, CHART_BRING_TO_TOP , 0 )== true ) 
           { 
             if ( ChartSymbol (currChart)!=symbol)
              {
               symbol= ChartSymbol (currChart); if (printsimbol!=symbol) Print (symbol, " " , ChartSymbol (currChart), " " ,printsimbol,
" " ,currChart, " " , ChartFirst (), " " , ChartNext (currChart), " " , ChartGetInteger (currChart, CHART_BRING_TO_TOP , 0 ));
printsimbol=symbol;
              }
           } 
         currChart= ChartNext (currChart);  i++;
        }