Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Facebook üzerinde bulun!
Fan sayfamıza katılın
Komut dosyasını ilginç mi buldunuz?
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
Komut dosyasını beğendiniz mi? MetaTrader 5 terminalinde deneyin
Görüntülemeler:
34
Derecelendirme:
(29)
Yayınlandı:
\MQL5\Include\ \MQL5\Experts\
MQL5 Freelance Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git

Piksel çizimi için CBitPic grafik kontrol sınıfı içeren IncGUI_BitPic.mqh eklenti dosyası (Şekil 1).


Şekil 1. CBitPic sınıfı ile bir çizim örneği.

Farklı boyutlarda noktalar çizmek mümkündür - DrawDot(), koordinatlara göre çizgiler - DrawLine(), açıya göre çizgiler - DrawLineByAngle(), oklar - DrawArrow(), çeşitli şekiller: dikdörtgenler - DrawRectangle(), üçgenler - DrawTriangle(), daireler, elipsler, halkalar, sektörler - DrawCircle(). Bir elips belirli bir açıyla döndürülebilir (bir elips halkası, elips sektörü de öyle). Şekiller bir dolgu veya sadece bir anahat ile çizilebilir. Metin yazdırmak mümkündür - TypeText() (çeşitli yazı tipi ve boyut seçenekleri). Oluşturulan görüntü bir bmp dosyasına kaydedilebilir - SavePicture() ve bir dosyadan hazır bir bmp görüntüsü yükleyebilirsiniz - LoadPicture() (dosya sıkıştırılmamış, 24 veya 32 bit olmalıdır).

Kontrolü kullanmak için IncGUI_BitPic.mqh dosyasını bağlamanız gerekir:

#include <IncGUI_BitPic.mqh>

Ardından, örneğin p adında bir sınıf tanımlayın:

CBitPic p;

Sınıf, makalelerde özetlenen ilkeler kullanılarak oluşturulur:

Buna göre, uygulama ilkesi makalelerde açıklanan kontrollerin kullanım ilkelerine benzer: her şeyden önce Init() başlatma yöntemi çağrılır, Show() yöntemi görünürlüğü etkinleştirmek için kullanılır, Hide() yöntemi gizlemek ve iş tamamlandıktan sonra silmek için kullanılır, vb.

cIntBMP sınıfının aksine, çizim biraz farklı şekilde gerçekleştirilir, cIntBMP'de çizim rengi şekil çizim fonksiyonlarında belirtilirdi, burada çizim aşağıdaki sırayla gerçekleştirilir: arka plan rengi belirtilir - SetBGColor(), temizleme yapılır - Clear(), çizimden önce çizim kalınlığı ayarlanır - SetDrawWidth(), çizim rengi SetDrawColor(), dolgu - SetFillColor(), dolgunun gerekli olup olmadığı - SetFilled(), veya çizim sadece dış hat ile gerçekleştirilir, bundan sonra çizim fonksiyonları çağrılır. Elbette, çizim rengini, dolguyu vb. gerektiği gibi değiştirebilirsiniz. Çizimden sonra Redraw() yöntemini çağırmak gerekir.

Aşağıdaki tabloda sınıfın tüm yöntemleri gösterilmektedir:

Yöntem
Amaç ve parametreler
void Clear()Temizleniyor.
void DrawArrow(
int aX1,
int aY1,
int aX2,
int aY2,
bool aBoth=false
)
Bir ok çizer. aX1, aY1 - başlangıç koordinatları, aX2, aY2 - bitiş koordinatları, aBoth - her iki uçtaki oklar.
void DrawCircle(
int aX,
int aY,
int aR,
double aR2K=0,
double aFromAngle=0,
double aToAngle=0,
double aRatio=1,
double aRotateAngle=0
)
Daire, halka, elips, sektör çizer. aX, aY - merkezin koordinatları; aR2K - iç dairenin yarıçapı (0 ile 1 arasında); aFromAngle, aToAngle - sektörün ilk ve son açıları; aRatio - sıkıştırma katsayısı (pozitif sayı, 1'den az - dikey sıkıştırma, 1'den fazla - dikey genişleme); aRotateAngle - döndürme açısı.
void DrawDot(
int aX,
int aY
)
Bir nokta çizer. aX, aY - koordinatlar.
void DrawLine(
int aX1,
int aY1,
int aX2,
int aY2
)
Bir çizgi çizilir. aX1, aY1 - başlangıç koordinatları, aX2, aY2 - bitiş koordinatları.
void DrawLineByAngle(
int aX1,
int aY1 ,
double aAngle,
int aLength
)
Açıya göre bir çizgi çizme. aX1, aY1 - başlangıç koordinatları, aAngle - açı, aLength - uzunluk.
void DrawRectangle(
int aX1,
int aY1,
int aX2,
int aY2
)
Bir dikdörtgen çizer. aX1, aY1 - sol üst köşenin koordinatları, aX2, aY2 - sağ alt köşenin koordinatları.
void DrawTriangle(
int aX1,
int aY1,
int aX2,
int aY2,
int aX3,
int aY3
)
Bir üçgen çizer. aX1, aY1, aX2, aY2, aX3, aY3 - köşelerin koordinatları.
int Olay(
const int id,
const long & lparam,
const double & dparam,
const string & sparam
)
Olay işleyicisi. OnChartEvent() işlevinden çağrılır.
int EventX()Grafik nesnesine yapılan son tıklamanın X koordinatı.
int EventY()Grafik nesnesine yapılan son tıklamanın Y koordinatı.
void Doldur(
int aX,
int aY
)
Bir renkteki bir alanı bir dolgu rengiyle doldurur. aX, aY - koordinatlar.
void GetData(
uint & aData[]
)
Görüntü verilerinden oluşan bir dizi elde edilir. aData - verilerin döndürüldüğü dizi.
renk GetPixel(
int aX,
int aY
)
Belirtilen koordinatlara göre bir pikselin rengini alır. aX, aY - koordinatlar.
int Yükseklik()Bir grafik nesnesinin yüksekliğini alır.
void Hide()Grafikten bir grafik nesnesini silme.
void Init(
string aName="CBitPic",
int aWidth=300,
int aHeight=200
)
Başlatma. aName - grafik nesnesinin adı, aWidth - genişlik, aHeight - yükseklik.
int Left()Grafik nesnesinin sol kenarının koordinatını alır.
bool LoadPicture(
string aFileName,
bool aFileCommon=false
)
Bir bmp dosyasından görüntü yükleme. aFileName - dosya adı, aFileCommon - dosya ortak MQL5/Files klasöründe veya terminalin MQL5/Files klasöründe bulunur. Sıkıştırılmamış, 24 ve 32 bit dosyalara izin verilir.
void Redraw()Bir grafik nesnesinin yeniden çizilmesi.
void Yenile()Yenileme (silme ve oluşturma).
bool SavePicture(
string aFileName,
bool aFileCommon=false
)
Resmi bir bmp dosyasına kaydetme. aFileName - dosya adı, aFileCommon - ortak MQL5/Files klasörüne veya terminalin MQL5/Files klasörüne kaydedin.
void SetBGColor(
uchar aR=0,
uchar aG=0,
uchar aB=255
)
Arka plan rengini ayarlama. aR, aG, aB - renk bileşenlerinin değeri.
void SetBGColor(
color aColor=clrBlue
)
Arka plan renginin ayarlanması. aColor - renk. Renk ayarlandıktan sonra Clear() yöntemi çağrılmalıdır.
void SetData(
uint & aData[]
)
Görüntü veri dizisini ayarlar. aData - veri dizisi.
void SetDrawColor(
uchar aR=255,
uchar aG=255,
uchar aB=0)
Çizim rengini ayarlama. aR, aG, aB - renk bileşenlerinin değeri.
void SetDrawColor(
color aColor=clrYellow
)
Çizim rengini ayarlar. aColor - renk.
void SetDrawWidth(
int aGenişlik
)
Çizim kalınlığını ayarlayın. aWidth - 1 ila 5 arasında kalınlık.
void SetFillColour(
uchar aR=255,
uchar aG=0,
uchar aB=0
)
Dolgu rengini ayarlama. aR, aG, aB - renk bileşenlerinin değeri.
void SetFillColor(
color aColor=clrRed
)
Dolgu rengini ayarlar. aColor - renk.
void SetFilled(
bool aFilled=true
)
Dolgu modunu ayarlar. aFilled - dolgulu/dolgusuz.
void SetFont(
int aType=3
)
Yazı tipini ayarlama. aType - yazı tipi (0-6). 0 - Small Fonts 6, 1 - Small Fonts 7, 2 - Small Fonts 8, 3 - Arial 8, 4 - Arial Narrow 8, 5 - Arial Black 8, 6 - Courier New 8.
void SetPos(
int aLeft,
int aTop
)
Grafik nesnenin sol üst köşesinin koordinatlarını ayarlar. aLeft - sol kenardan uzaklık, aTop - üst kenardan uzaklık.
void SetPosLeft(
int aLeft
)
Grafik nesnesinin sol kenarının koordinatını ayarlar. aLeft - sol kenardan uzaklık.
void SetPosTop(
int aTop
)
Grafik nesnenin üst kenarının koordinatını ayarlar. aTop - üst kenara olan mesafe.
void SetSize(
int aGenişlik,
int aYükseklik
)
Boyutu ayarlar. aWidth - genişlik, aHeight - yükseklik.
void SetSubWindow(
int aNumber
)
Alt pencereyi numaraya göre ayarlar. aNumber - alt pencere numarası.
void SetSubWindow(
string aName
)
Alt pencereyi ada göre ayarlar. aName - alt pencere adı.
void SetTag(
string aValue
)
Etiketin ayarlanması. aValue - metin.
void Göster()Grafik nesnesinin görünürlüğünü etkinleştirir.
void Göster(
int aLeft,
int aTop
)
Grafik nesnesinin belirtilen konumda görünürlüğünü etkinleştirir. aLeft - sol kenardan uzaklık, aTop - üst kenardan uzaklık.
string Tag()Bir etiket alınıyor.
int Top()Grafik nesnesinin üst kenarının koordinatını alır.
void TypeText(
int aX,
int aY,
string aText,
int aDirection=0,
int aAlign=0
)
Metin yazdırır. aX, aY - koordinatlar, aText - metin, aDirection - yön (0 - soldan sağa, 1 - yukarıdan aşağıya, 2 - sağdan sola ters, 3 - aşağıdan yukarıya), aAligne - hizalama (0 - metnin başında, 1 - metnin sonunda).
bool Visible()Bir grafik nesnesinin görünürlüğünü elde eder.
int Genişlik()Grafik nesnesinin genişliğini alma.


CBitPic sınıfının kullanımına ilişkin eBitPicTest.mq5 örneğinde, Uzman Danışman grafik üzerinde Şekil 1'deki gibi bir görüntü çizer ve bunu CBitPic.bmp adlı bir dosyaya kaydeder (terminal veri klasörünün MQL5/Files klasöründe görünmelidir). Görüntüye tıklarsanız, noktanın koordinatları, rengi grafik yorumunda görüntülenecek ve aynı yere bir "kar tanesi" çizilecektir (Şekil 1'in sağ üst köşesinde olduğu gibi).

MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/1050

ColorRVI_HTF ColorRVI_HTF

Gösterge zaman dilimini grafik zaman diliminden farklı bir değere sabitleyerek yerleştirilebilen ve bulut şeklinde yapılan RVI (Relative Vigor Index) göstergesinin klasik bir versiyonu

Session Daylight Gradient — Ambient Forex Session Overlay Session Daylight Gradient — Ambient Forex Session Overlay

A lightweight chart overlay that paints a smooth “daylight” gradient across Pacific, Asia, London, and New York sessions—plus optional session separators, event labels, and “sunray” highlights for scheduled news. Includes UTC/Broker/PC time modes and a manual DST shift.

ColorXATR ColorXATR

Düzeltilmiş ATR, trendin büyüyüp büyümediğini veya zayıflayıp zayıflamadığını renkli olarak gösterir.

DCC / Piercing DCC / Piercing

DCC / Piercing