Guarda come scaricare robot di trading gratuitamente
Ci trovi su Twitter!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Visualizzazioni:
18
Valutazioni:
(29)
Pubblicato:
\MQL5\Include\ \MQL5\Experts\
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Il file plug-in IncGUI_BitPic.mqh contiene la classe di controllo grafico CBitPic per il disegno dei pixel (Figura 1).


Figura 1. Un esempio di disegno con la classe CBitPic.

È possibile disegnare punti di diverse dimensioni - DrawDot(), linee per coordinate - DrawLine(), linee per angolo - DrawLineByAngle(), frecce - DrawArrow(), varie forme: rettangoli - DrawRectangle(), triangoli - DrawTriangle(), cerchi, ellissi, anelli, settori - DrawCircle(). Un'ellisse può essere ruotata di un determinato angolo (così come un anello di ellisse, un settore di ellisse). Le forme possono essere disegnate con un riempimento o solo con un contorno. È possibile stampare il testo - TypeText() (diverse opzioni di carattere e dimensione). L'immagine creata può essere salvata in un file bmp - SavePicture(), ed è possibile caricare un'immagine bmp già pronta da un file - LoadPicture() (il file deve essere non compresso, a 24 o 32 bit).

Per utilizzare il controllo è necessario collegare il file IncGUI_BitPic.mqh:

#include <IncGUI_BitPic.mqh>

Quindi, dichiarare una classe, ad esempio, chiamata p:

CBitPic p;

La classe viene creata utilizzando i principi illustrati negli articoli:

Di conseguenza, il principio della sua applicazione è simile ai principi di utilizzo dei controlli descritti negli articoli: innanzitutto, viene richiamato il metodo di inizializzazione Init(), il metodo Show() viene utilizzato per attivare la visibilità, il metodo Hide() viene utilizzato per nasconderlo e cancellarlo al termine del lavoro, ecc.

A differenza della classe cIntBMP, il disegno viene eseguito in modo leggermente diverso: in cIntBMP il colore del disegno veniva specificato nelle funzioni di disegno della figura, qui il disegno viene eseguito nel seguente ordine: viene specificato il colore di sfondo - SetBGColor(), viene eseguita la cancellazione - Clear(), prima del disegno viene impostato lo spessore del disegno - SetDrawWidth(), il colore del disegno SetDrawColor(), il riempimento - SetFillColor(), se è necessario il riempimento - SetFilled(), oppure il disegno viene eseguito solo per contorno, dopodiché vengono richiamate le funzioni di disegno. Naturalmente, è possibile modificare il colore del disegno, del riempimento, ecc. a seconda delle necessità. Dopo il disegno è necessario chiamare il metodo Redraw().

La tabella seguente mostra tutti i metodi della classe:

Metodo
Scopo e parametri
void Cancella()Cancellazione.
void Disegna freccia(
int aX1,
int aY1,
int aX2,
int aY2,
bool aBoth=false
)
Disegna una freccia. aX1, aY1 - coordinate dell'inizio, aX2, aY2 - coordinate della fine, aBoth - frecce alle due estremità.
void DisegnaCerchio(
int aX,
int aY,
int aR,
double aR2K=0,
double aFromAngle=0,
doppio aToAngle=0,
doppio aRatio=1,
doppio aRotateAngle=0
)
Disegna un cerchio, un anello, un'ellisse, un settore. aX, aY - coordinate del centro; aR2K - raggio del cerchio interno (da 0 a 1); aFromAngle, aToAngle - angoli iniziali e finali del settore; aRatio - coefficiente di compressione (numero positivo, minore di 1 - compressione verticale, maggiore di 1 - espansione verticale); aRotateAngle - angolo di rotazione.
void DisegnaPunto(
int aX,
int aY
)
Disegna un punto. aX, aY - coordinate.
void DrawLine(
int aX1,
int aY1,
int aX2,
int aY2
)
Disegna una linea. aX1, aY1 - coordinate dell'inizio, aX2, aY2 - coordinate della fine.
void DisegnaLineaPerAngolo(
int aX1,
int aY1 ,
doppio aAngolo,
int aLunghezza
)
Disegna una linea in base all'angolo. aX1, aY1 - coordinate dell'inizio, aAngle - angolo, aLength - lunghezza.
void Disegna rettangolo(
int aX1,
int aY1,
int aX2,
int aY2
)
Disegna un rettangolo. aX1, aY1 - coordinate dell'angolo superiore sinistro, aX2, aY2 - coordinate dell'angolo inferiore destro.
void DisegnaTriangolo(
int aX1,
int aY1,
int aX2,
int aY2,
int aX3,
int aY3
)
Disegna un triangolo. aX1, aY1, aX2, aY2, aX3, aY3 - coordinate dei vertici.
int Evento(
const int id,
const long & lparam,
const double & dparam,
stringa const & sparam
)
Gestore di eventi. Richiamato dalla funzione OnChartEvent().
int EventoX()Coordinata X dell'ultimo clic sull'oggetto grafico.
int EventoY()Coordinata Y dell'ultimo clic sull'oggetto grafico.
void Fill(
int aX,
int aY
)
Riempie un'area di un colore con un colore di riempimento. aX, aY - coordinate.
void GetData(
uint & aData[]
)
Ottenere un array di dati dell'immagine. aData - array in cui vengono restituiti i dati.
colore GetPixel(
int aX,
int aY
)
Ottenere il colore di un pixel in base alle coordinate specificate. aX, aY - coordinate.
int Altezza()Ottenere l'altezza di un oggetto grafico.
void Hide()Eliminazione di un oggetto grafico dal grafico.
void Init(
string aName="CBitPic",
int aWidth=300,
int aHeight=200
)
Inizializzazione. aName - nome dell'oggetto grafico, aWidth - larghezza, aHeight - altezza.
int Sinistra()Ottenere la coordinata del bordo sinistro dell'oggetto grafico.
bool Carica immagine(
stringa aNomeFile,
bool aFileCommon=false
)
Carica un'immagine da un file bmp. aFileName - nome del file, aFileCommon - il file si trova nella cartella MQL5/Files comune o nella cartella MQL5/Files del terminale. Sono ammessi file non compressi, a 24 e 32 bit.
void Redraw()Ridisegna un oggetto grafico.
void Refresh()Aggiornamento (cancellazione e creazione).
bool SavePicture(
stringa aNomeFile,
bool aFileCommon=false
)
Salva l'immagine in un file bmp. aFileName - nome del file, aFileCommon - salvataggio nella cartella MQL5/Files comune o nella cartella MQL5/Files del terminale.
void SetBGColor(
uchar aR=0,
uchar aG=0,
uchar aB=255
)
Impostazione del colore di sfondo. aR, aG, aB - valore dei componenti del colore.
void SetBGColor(
colore aColor=clrBlue
)
Impostazione del colore di sfondo. aColor - colore. Dopo l'impostazione del colore, deve essere richiamato il metodo Clear().
void SetData(
uint & aData[]
)
Impostazione dell'array di dati dell'immagine. aData - array di dati.
void SetDrawColor(
uchar aR=255,
uchar aG=255,
uchar aB=0)
Impostazione del colore di disegno. aR, aG, aB - valore dei componenti del colore.
void SetDrawColor(
colore aColor=clrYellow
)
Impostazione del colore di disegno. aColor - colore.
void SetDrawWidth(
int aLarghezza
)
Imposta lo spessore del disegno. aWidth - spessore da 1 a 5.
void SetFillColour(
uchar aR=255,
uchar aG=0,
uchar aB=0
)
Impostazione del colore di riempimento. aR, aG, aB - valore dei componenti del colore.
void SetFillColor(
colore aColor=clrRed
)
Impostazione del colore di riempimento. aColor - colore.
void SetFilled(
bool aFilled=true
)
Impostazione della modalità di riempimento. aFilled - con/senza riempimento.
void SetFont(
int aType=3
)
Impostazione del carattere. aType - tipo (0-6). 0 - Caratteri piccoli 6, 1 - Caratteri piccoli 7, 2 - Caratteri piccoli 8, 3 - Arial 8, 4 - Arial Narrow 8, 5 - Arial Black 8, 6 - Courier New 8.
void SetPos(
int aSinistra,
int aTop
)
Impostazione delle coordinate dell'angolo superiore sinistro dell'oggetto grafico. aSinistra - distanza dal bordo sinistro, aTop - dal bordo superiore.
void SetPosLeft(
int aSinistra
)
Impostazione della coordinata del bordo sinistro dell'oggetto grafico. aLeft - distanza dal bordo sinistro.
void SetPosTop(
int aTop
)
Impostazione della coordinata del bordo superiore dell'oggetto grafico. aTop - distanza dal bordo superiore.
void SetSize(
int aLarghezza,
int aAltezza
)
Impostazione delle dimensioni. aWidth - larghezza, aHeight - altezza.
void SetSubWindow(
int aNumero
)
Impostazione della sottofinestra per numero. aNumber - numero della sottofinestra.
void SetSubWindow(
stringa aNome
)
Impostazione della sottofinestra per nome. aName - nome della sottofinestra.
void SetTag(
stringa aValue
)
Impostazione del tag. aValue - testo.
void Show()Abilita la visibilità dell'oggetto grafico.
void Show(
int aSinistra,
int aTop
)
Abilita la visibilità dell'oggetto grafico nella posizione specificata. aLeft - distanza dal bordo sinistro, aTop - dal bordo superiore.
stringa Tag()Ottenere un tag.
int Top()Ottenere la coordinata del bordo superiore dell'oggetto grafico.
void TypeText(
int aX,
int aY,
stringa aText,
int aDirection=0,
int aAlign=0
)
Stampa il testo. aX, aY - coordinate, aText - testo, aDirection - direzione (0 - da sinistra a destra, 1 - dall'alto in basso, 2 - da destra a sinistra invertito, 3 - dal basso in alto), aAligne - allineamento (0 - all'inizio del testo, 1 - alla fine del testo).
bool Visibile()Ottenere la visibilità di un oggetto grafico.
int Larghezza()Ottenere la larghezza dell'oggetto grafico.


Nell'esempio eBitPicTest.mq5 di utilizzo della classe CBitPic, l'Expert Advisor disegna un'immagine sul grafico come nella figura 1 e la salva in un file denominato CBitPic.bmp (che dovrebbe apparire nella cartella MQL5/Files della cartella dati del terminale). Facendo clic sull'immagine, le coordinate del punto, il suo colore verranno visualizzati nel commento del grafico e un "fiocco di neve" verrà disegnato nello stesso punto (come nell'angolo superiore destro della Fig. 1).

Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/1050

ColoreRVI_HTF ColoreRVI_HTF

Una versione classica dell'indicatore RVI (Relative Vigor Index), che può essere posizionata fissando il timeframe dell'indicatore a un valore diverso dal timeframe del grafico e realizzata sotto forma di nuvola.

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.

ColoreXATR ColoreXATR

L'ATR smussato mostra a colori se la tendenza è in crescita o in indebolimento.

DCC / Piercing DCC / Piercing

DCC / Piercing