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

 
alex_xss :

1) Şahsen, katılıyorum ve benim isteğim olsaydı, basitçe keser ve koda dahil edilmesini yasaklardım. Ama hiçbir şekilde)

2) Teşekkürler, ama orada bir çözüm bulamadım ( OBJ_VLINE nesnesi aracılığıyla her yerde çözüldü, bana uymuyor), kendi yolumda kazıyorum

En sevdiğiniz Kanvas üzerinde bir ızgara yapabilirsiniz. Tuvali grafiğin arka planı (veya ön tarafı) olarak yerleştirin, üzerine çizim yapın ve geometri/fiyat/zaman bağlamalarını takip edin.

devasa, ama tadı ve zamanı olan bir araba ile güzel bir şekilde ortaya çıkabilir

 
Maxim Kuznetsov :

En sevdiğiniz Kanvas üzerinde bir ızgara yapabilirsiniz. Tuvali grafiğin arka planı (veya ön tarafı) olarak yerleştirin, üzerine çizim yapın ve geometri/fiyat/zaman bağlamalarını takip edin.

devasa ama zevkiniz ve vaktiniz varsa çok güzel olabilir

Basit bir tuval örneği yazabilir misiniz? pliz

Bu konuda hiçbir şey bilmiyorum, sadece grafik boyutunda bir dikdörtgen ve üzerinde dikey bir çizgi istiyorum

 
alex_xss :

Basit bir tuval örneği yazabilir misiniz? pliz

Bu konuda hiçbir şey bilmiyorum, sadece grafik boyutunda bir dikdörtgen ve üzerinde dikey bir çizgi istiyorum

@Nikolai Semko'yu araman gerek, o kanvasla çok daha güçlü arkadaş. Bu arada yolda - profiline bak tuvalde çok şey var

 
alex_xss :

Basit bir tuval örneği yazabilir misiniz? pliz

Bu konuda hiçbir şey bilmiyorum, sadece grafik boyutunda bir dikdörtgen ve üzerinde dikey bir çizgi istiyorum

Eğlenceli. Bu aksaklık sadece MT4'te ve sadece dikey çizgilerde var.

Tek gizem, neden müdahale ettiğidir. Asla fark etmezdim.

Ve sorunu çözmenin en iyi yolunu anlamak için sorunu daha ayrıntılı olarak formüle edebilirsiniz. Grafik nesnelerinin tuval ile etkileşimi nüanslara sahiptir.
Bu arada, olası çözümlerden biri kafayı değiştirmek. ))
Çünkü renk değişiminin bir koltuk değneği olduğuna inanıyorsa, o zaman kanvas kullanmak onun için daha çok koltuk değneği olacaktır.
Her ne kadar liderinizin kurgusal bir karakter ya da bir alegori olduğunu kabul etsem de. ))

 

alex_xss
:

Basit bir tuval örneği yazabilir misiniz? pliz

Bu konuda hiçbir şey bilmiyorum, sadece grafik boyutunda bir dikdörtgen ve üzerinde dikey bir çizgi istiyorum


Performans açısından optimal değil (yeniden çizme olması gerekenden daha sık gerçekleşir - kodu karmaşıklaştırmak için çok tembel), ancak çalışan bir seçenek.

Ekran boyutu için bir tuval uygulayabilirsiniz (pencereler değil, örneğin 1920x1080) ve onu yeniden çizemezsiniz. Sadece hafıza 8 MB'ı yiyecek.
Bu arada, ızgaranın rengini değiştirmek yardımcı olmaz.

 #include <Canvas\iCanvas.mqh> //https://www.mql5.com/en/code/23840

int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
  {
   if (id== CHARTEVENT_CHART_CHANGE ) DrawGrid();
  }
//+------------------------------------------------------------------+
void DrawGrid() {
  Canvas.Erase( 0 );
   if ( ChartGetInteger ( 0 , CHART_SHOW_GRID )) {
      Canvas.SetBack( false );
       ChartSetInteger ( 0 , CHART_FOREGROUND , 0 , true );
       uint clr = ColorToARGB (( color ) ChartGetInteger ( 0 , CHART_COLOR_GRID ), 255 );
       for ( int y= 0 ;y<W.Height;y++)
       if (y% 6 < 2 || y% 6 > 4 ) {
         for ( int x= 32 ;x<W.Width;x+= 32 )
         Canvas.m_pixels[y*W.Width+x]=clr;
      } 
  }
  Canvas.Update();
}
Dosyalar:
 
Belki birinin bir diziyi (dize) alfabetik olarak sıralama işlevi vardır?
 
Aleksey Vyazmikin :
Belki birinin bir diziyi (dize) alfabetik olarak sıralama işlevi vardır?

Bende var bir zamanlar Saber yazmıştı

 //===============================================================================================
//--------------------------------- Сортирует строковой массив ---------------------------------+
//===============================================================================================
void ArraySortStr( string &Str[]) {
 string Min;
 int jMin, Size = ArraySize (Str);
   for ( int i= 0 ; i<Size- 1 ;i++) {
   Min = Str[i];
   jMin = i;
     for ( int j=i+ 1 ; j<Size; j++)
     if (Str[j] < Min) {
       Min = Str[j];
       jMin = j;
      }
     if (jMin > i) {
       Str[jMin] = Str[i];
       Str[i] = Min;
     }
   }
 }
 
Vitaly Muzichenko :

Bende var bir zamanlar Saber yazmıştı

Teşekkür ederim.

 
Maxim Kuznetsov :

dikey çizgilerde var.

Tek gizem, neden müdahale ettiğidir. Asla fark etmezdim.

Ve sorunu çözmenin en iyi yolunu anlamak için sorunu daha ayrıntılı olarak formüle edebilirsiniz. Grafik nesnelerinin tuval ile etkileşimi nüanslara sahiptir.
Bu arada, olası çözümlerden biri kafayı değiştirmek. ))
Çünkü renk değişiminin bir koltuk değneği olduğuna inanıyorsa, o zaman kanvas kullanmak onun için daha çok koltuk değneği olacaktır.
Her ne kadar liderinizin kurgusal bir karakter veya bir alegori olduğunu kabul etsem de. ))

Evet, neredeyse bir hafta geçirdiğim harika şaka) Kıç yakar)

Peki, neden rahatsız. Çizim için üçgenleri kullanan bir gösterge var. Her şey güzel çıkıyor, renkler çoktan toplandı ve sonra böyle bir söve gördüler.
Gösterge kişisel kullanım için değildir ve böyle bir hata ile bir sürüm yapmak saçmalıktır. Yeni başladığımdan beri oldukça değerli olan tüm oluşturmayı değiştirin ya da bir hatayı düzeltin

Izgaranın rengini değiştirmek yardımcı olmuyor, doğru bir şekilde belirttiğiniz gibi, buna zaten kendim geldim) İlk başta, bazı renk kombinasyonlarında yardımcı olacak gibi görünüyordu.

Izgaranın rengini değiştirmek (eğer yardımcı olduysa) kabul edilemez bir koltuk değneğidir, çünkü kullanıcı bunu etkileyebilir, aniden rengi değiştirmek ister.
Bu işlevi engelleme seçeneği de kullanıcı için uygun değil, sanırım nedeni açık))

Görev: Kullanıcının ızgarayı ekranda görmesini sağlamak, etkinleştirilmişse her zaman aynı renk. Dikey ızgara + gölgeli nesne ile MT4 hataları göz önüne alındığında. başka ne ekleyeceğimi bilmiyorum

Aslında yukarıda yazdığınız varik uygundur. cilalayabilirim. sen altın adamsın!! Minnettarlığımı ifade edecek hiçbir kelime yok. Yardımın için sana beş yıldız verebilirim.

Sadece birkaç küçük soru:
Zayıf bilgisayarlarda güçlü gecikmeler olacak mı? Bunun aptalca bir soru olduğunu biliyorum, ancak herhangi bir cevap memnuniyetle karşılanacaktır.
"Sadece 8 MB bellek tükenecek " - Sanırım RAM'den bahsetmiyorsunuz?)) Bununla ilgiliyse, 8 MB önemsiz bir şey
iCanvas zorunludur, normal olanı işe yaramaz mı? Sadece kullanıcılar hala "bu dosya oraya gidiyor, bu da oraya gidiyor" diyor. Aptallar, neyi nereye iteceklerini anlamıyorlar)

 
İyi günler

Lütfen tavsiye verin - vorpos'a cevap verin

Metatrader, Bulls.mq4 göstergesine sahiptir.
Neden ek bir arabelleği var ve neden sadece bir ara değişken kullanamıyorsunuz?
dd = iMA(NULL,0,InpBullsPeriod,0,MODE_EMA,PRICE_CLOSE,i);
ExtBullsBuffer[i]=dd;

Soru, ExtBullsBuffer[i]'nin yalnızca iMA işlevinin sonucunun hesaplanan değerini depolamak için kullanılması ve sonraki satırda bu değerin gösterge arabelleğinin öğesine atanmasıdır. ExtBullsBuffer başka hiçbir yerde kullanılmaz. Bu ara arabellek ExtBullsBuffer neden burada gerekli ve şekilde yeşil olarak işaretlendiği gibi sadece bir değişken değil?
***