Unisciti alla nostra fan page
- Visualizzazioni:
- 18
- Valutazioni:
- Pubblicato:
-
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:
- Controlli grafici personalizzati. Parte 1. Creazione di un semplice controllo
- Controlli grafici personalizzati. Parte 2. Libreria di controlli
- Controlli grafici personalizzati. Parte 3. Moduli
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
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
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
L'ATR smussato mostra a colori se la tendenza è in crescita o in indebolimento.
DCC / Piercing
DCC / Piercing