Qwt User's Guide
|
QwtPlotTradingCurve illustrates movements in the price of a financial instrument over time. More...
#include <qwt_plot_tradingcurve.h>
Public Types | |
enum | SymbolStyle { NoSymbol = -1, Bar, CandleStick, UserSymbol = 100 } |
Symbol styles. More... | |
enum | Direction { Increasing, Decreasing } |
Direction of a price movement. More... | |
enum | PaintAttribute { ClipSymbols = 0x01 } |
typedef QFlags< PaintAttribute > | PaintAttributes |
Paint attributes. | |
Public Member Functions | |
QwtPlotTradingCurve (const QString &title=QString::null) | |
QwtPlotTradingCurve (const QwtText &title) | |
virtual | ~QwtPlotTradingCurve () |
Destructor. | |
virtual int | rtti () const |
void | setPaintAttribute (PaintAttribute, bool on=true) |
bool | testPaintAttribute (PaintAttribute) const |
void | setSamples (const QVector< QwtOHLCSample > &) |
void | setSamples (QwtSeriesData< QwtOHLCSample > *) |
void | setSymbolStyle (SymbolStyle style) |
SymbolStyle | symbolStyle () const |
void | setSymbolPen (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine) |
void | setSymbolPen (const QPen &) |
Set the symbol pen. | |
QPen | symbolPen () const |
void | setSymbolBrush (Direction, const QBrush &) |
QBrush | symbolBrush (Direction) const |
void | setSymbolExtent (double width) |
Set the extent of the symbol. | |
double | symbolExtent () const |
void | setMinSymbolWidth (double) |
double | minSymbolWidth () const |
void | setMaxSymbolWidth (double) |
double | maxSymbolWidth () const |
virtual void | drawSeries (QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual QRectF | boundingRect () const |
virtual QwtGraphic | legendIcon (int index, const QSizeF &) const |
Protected Member Functions | |
void | init () |
Initialize internal members. | |
virtual void | drawSymbols (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual void | drawUserSymbol (QPainter *, SymbolStyle, const QwtOHLCSample &, Qt::Orientation, bool inverted, double width) const |
Draw a symbol for a symbol style >= UserSymbol. | |
void | drawBar (QPainter *painter, const QwtOHLCSample &, Qt::Orientation, bool inverted, double width) const |
Draw a bar. | |
void | drawCandleStick (QPainter *, const QwtOHLCSample &, Qt::Orientation, double width) const |
Draw a candle stick. | |
virtual double | scaledSymbolWidth (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect) const |
QwtPlotTradingCurve illustrates movements in the price of a financial instrument over time.
QwtPlotTradingCurve supports candlestick or bar ( OHLC ) charts that are used in the domain of technical analysis.
While the length ( height or width depending on orientation() ) of each symbol depends on the corresponding OHLC sample the size of the other dimension can be controlled using:
The extent is a size in scale coordinates, so that the symbol width is increasing when the plot is zoomed in. Minimum/Maximum width is in widget coordinates independent from the zoom level. When setting the minimum and maximum to the same value, the width of the symbol is fixed.
Attributes to modify the drawing algorithm.
Symbol styles.
The default setting is QwtPlotSeriesItem::CandleStick.
NoSymbol |
Nothing is displayed. |
Bar |
A line on the chart shows the price range (the highest and lowest prices) over one unit of time, e.g. one day or one hour. Tick marks project from each side of the line indicating the opening and closing price. |
CandleStick |
The range between opening/closing price are displayed as a filled box. The fill brush depends on the direction of the price movement. The box is connected to the highest/lowest values by lines. |
UserSymbol |
SymbolTypes >= UserSymbol are displayed by drawUserSymbol(), that needs to be overloaded and implemented in derived curve classes.
|
QwtPlotTradingCurve::QwtPlotTradingCurve | ( | const QString & | title = QString::null | ) | [explicit] |
Constructor
title | Title of the curve |
QwtPlotTradingCurve::QwtPlotTradingCurve | ( | const QwtText & | title | ) | [explicit] |
Constructor
title | Title of the curve |
QRectF QwtPlotTradingCurve::boundingRect | ( | ) | const [virtual] |
Reimplemented from QwtPlotSeriesItem.
void QwtPlotTradingCurve::drawBar | ( | QPainter * | painter, |
const QwtOHLCSample & | sample, | ||
Qt::Orientation | orientation, | ||
bool | inverted, | ||
double | width | ||
) | const [protected] |
Draw a bar.
painter | Qt painter, initialized with pen/brush |
sample | Sample, already translated into paint device coordinates |
orientation | Vertical or horizontal |
inverted | When inverted is false the open tick is painted to the left/top, otherwise it is painted right/bottom. The close tick is painted in the opposite direction of the open tick. painted in the opposite d opposite direction. |
width | Width or height of the candle, depending on the orientation |
void QwtPlotTradingCurve::drawCandleStick | ( | QPainter * | painter, |
const QwtOHLCSample & | sample, | ||
Qt::Orientation | orientation, | ||
double | width | ||
) | const [protected] |
Draw a candle stick.
painter | Qt painter, initialized with pen/brush |
sample | Samples already translated into paint device coordinates |
orientation | Vertical or horizontal |
width | Width or height of the candle, depending on the orientation |
void QwtPlotTradingCurve::drawSeries | ( | QPainter * | painter, |
const QwtScaleMap & | xMap, | ||
const QwtScaleMap & | yMap, | ||
const QRectF & | canvasRect, | ||
int | from, | ||
int | to | ||
) | const [virtual] |
Draw an interval of the curve
painter | Painter |
xMap | Maps x-values into pixel coordinates. |
yMap | Maps y-values into pixel coordinates. |
canvasRect | Contents rectangle of the canvas |
from | Index of the first point to be painted |
to | Index of the last point to be painted. If to < 0 the curve will be painted to its last point. |
Implements QwtPlotSeriesItem.
void QwtPlotTradingCurve::drawSymbols | ( | QPainter * | painter, |
const QwtScaleMap & | xMap, | ||
const QwtScaleMap & | yMap, | ||
const QRectF & | canvasRect, | ||
int | from, | ||
int | to | ||
) | const [protected, virtual] |
Draw symbols
painter | Painter |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | Index of the first point to be painted |
to | Index of the last point to be painted |
void QwtPlotTradingCurve::drawUserSymbol | ( | QPainter * | painter, |
SymbolStyle | symbolStyle, | ||
const QwtOHLCSample & | sample, | ||
Qt::Orientation | orientation, | ||
bool | inverted, | ||
double | symbolWidth | ||
) | const [protected, virtual] |
Draw a symbol for a symbol style >= UserSymbol.
The implementation does nothing and is intended to be overloaded
painter | Qt painter, initialized with pen/brush |
symbolStyle | Symbol style |
sample | Samples already translated into paint device coordinates |
orientation | Vertical or horizontal |
inverted | True, when the opposite scale ( Qt::Vertical: x, Qt::Horizontal: y ) is increasing in the opposite direction as QPainter coordinates. |
symbolWidth | Width of the symbol in paint device coordinates |
QwtGraphic QwtPlotTradingCurve::legendIcon | ( | int | index, |
const QSizeF & | size | ||
) | const [virtual] |
index | Index of the legend entry ( usually there is only one ) |
size | Icon size |
Reimplemented from QwtPlotItem.
double QwtPlotTradingCurve::maxSymbolWidth | ( | ) | const |
double QwtPlotTradingCurve::minSymbolWidth | ( | ) | const |
int QwtPlotTradingCurve::rtti | ( | ) | const [virtual] |
Reimplemented from QwtPlotItem.
double QwtPlotTradingCurve::scaledSymbolWidth | ( | const QwtScaleMap & | xMap, |
const QwtScaleMap & | yMap, | ||
const QRectF & | canvasRect | ||
) | const [protected, virtual] |
Calculate the symbol width in paint coordinates
The width is calculated by scaling the symbol extent into paint device coordinates bounded by the minimum/maximum symbol width.
xMap | Maps x-values into pixel coordinates. |
yMap | Maps y-values into pixel coordinates. |
canvasRect | Contents rectangle of the canvas |
void QwtPlotTradingCurve::setMaxSymbolWidth | ( | double | width | ) |
Set a maximum for the symbol width
A value <= 0.0 means an unlimited width
width | Width in paint device coordinates |
void QwtPlotTradingCurve::setMinSymbolWidth | ( | double | width | ) |
Set a minimum for the symbol width
width | Width in paint device coordinates |
void QwtPlotTradingCurve::setPaintAttribute | ( | PaintAttribute | attribute, |
bool | on = true |
||
) |
Specify an attribute how to draw the curve
attribute | Paint attribute |
on | On/Off |
void QwtPlotTradingCurve::setSamples | ( | const QVector< QwtOHLCSample > & | samples | ) |
Initialize data with an array of samples.
samples | Vector of samples |
void QwtPlotTradingCurve::setSamples | ( | QwtSeriesData< QwtOHLCSample > * | data | ) |
Assign a series of samples
setSamples() is just a wrapper for setData() without any additional value - beside that it is easier to find for the developer.
data | Data |
void QwtPlotTradingCurve::setSymbolBrush | ( | Direction | direction, |
const QBrush & | brush | ||
) |
Set the symbol brush
direction | Direction type |
brush | Brush used to fill the body of all candlestick symbols with the direction |
void QwtPlotTradingCurve::setSymbolExtent | ( | double | extent | ) |
Set the extent of the symbol.
The width of the symbol is given in scale coordinates. When painting a symbol the width is scaled into paint device coordinates by scaledSymbolWidth(). The scaled width is bounded by minSymbolWidth(), maxSymbolWidth()
extent | Symbol width in scale coordinates |
void QwtPlotTradingCurve::setSymbolPen | ( | const QColor & | color, |
qreal | width = 0.0 , |
||
Qt::PenStyle | style = Qt::SolidLine |
||
) |
Build and assign the symbol pen
In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it non cosmetic ( see QPen::isCosmetic() ). This method has been introduced to hide this incompatibility.
color | Pen color |
width | Pen width |
style | Pen style |
void QwtPlotTradingCurve::setSymbolPen | ( | const QPen & | pen | ) |
Set the symbol pen.
The symbol pen is used for rendering the lines of the bar or candlestick symbols
void QwtPlotTradingCurve::setSymbolStyle | ( | SymbolStyle | style | ) |
Set the symbol style
style | Symbol style |
QBrush QwtPlotTradingCurve::symbolBrush | ( | Direction | direction | ) | const |
direction |
double QwtPlotTradingCurve::symbolExtent | ( | ) | const |
QPen QwtPlotTradingCurve::symbolPen | ( | ) | const |
bool QwtPlotTradingCurve::testPaintAttribute | ( | PaintAttribute | attribute | ) | const |