Classes | Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
QwtPlotTradingCurve Class Reference

QwtPlotTradingCurve illustrates movements in the price of a financial instrument over time. More...

#include <qwt_plot_tradingcurve.h>

Inheritance diagram for QwtPlotTradingCurve:
Inheritance graph
[legend]

Classes

class  PrivateData
 

Public Types

enum  Direction { Increasing, Decreasing }
 Direction of a price movement. More...
 
enum  PaintAttribute { ClipSymbols = 0x01 }
 
enum  SymbolStyle { NoSymbol = -1, Bar, CandleStick, UserSymbol = 100 }
 Symbol styles. More...
 
- Public Types inherited from QwtPlotItem
enum  ItemAttribute { Legend = 0x01, AutoScale = 0x02, Margins = 0x04 }
 Plot Item Attributes. More...
 
enum  ItemInterest { ScaleInterest = 0x01, LegendInterest = 0x02 }
 Plot Item Interests. More...
 
enum  RenderHint { RenderAntialiased = 0x1 }
 Render hints. More...
 
enum  RttiValues {
  Rtti_PlotItem = 0, Rtti_PlotGrid, Rtti_PlotScale, Rtti_PlotLegend,
  Rtti_PlotMarker, Rtti_PlotCurve, Rtti_PlotSpectroCurve, Rtti_PlotIntervalCurve,
  Rtti_PlotHistogram, Rtti_PlotSpectrogram, Rtti_PlotGraphic, Rtti_PlotTradingCurve,
  Rtti_PlotBarChart, Rtti_PlotMultiBarChart, Rtti_PlotShape, Rtti_PlotTextLabel,
  Rtti_PlotZone, Rtti_PlotVectorField, Rtti_PlotUserItem = 1000
}
 Runtime type information. More...
 

Public Member Functions

virtual QRectF boundingRect () const QWT_OVERRIDE
 
virtual void drawSeries (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const QWT_OVERRIDE
 
virtual QwtGraphic legendIcon (int index, const QSizeF &) const QWT_OVERRIDE
 
double maxSymbolWidth () const
 
double minSymbolWidth () const
 
 QwtPlotTradingCurve (const QString &title=QString())
 
 QwtPlotTradingCurve (const QwtText &title)
 
virtual int rtti () const QWT_OVERRIDE
 
void setMaxSymbolWidth (double)
 
void setMinSymbolWidth (double)
 
void setPaintAttribute (PaintAttribute, bool on=true)
 
void setSamples (const QVector< QwtOHLCSample > &)
 
void setSamples (QwtSeriesData< QwtOHLCSample > *)
 
void setSymbolBrush (Direction, const QBrush &)
 
void setSymbolExtent (double)
 Set the extent of the symbol. More...
 
void setSymbolPen (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine)
 
void setSymbolPen (const QPen &)
 Set the symbol pen. More...
 
void setSymbolStyle (SymbolStyle style)
 
QBrush symbolBrush (Direction) const
 
double symbolExtent () const
 
QPen symbolPen () const
 
SymbolStyle symbolStyle () const
 
bool testPaintAttribute (PaintAttribute) const
 
virtual ~QwtPlotTradingCurve ()
 Destructor. More...
 
- Public Member Functions inherited from QwtPlotSeriesItem
virtual void draw (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect) const QWT_OVERRIDE
 Draw the complete series. More...
 
Qt::Orientation orientation () const
 
 QwtPlotSeriesItem (const QString &title=QString())
 
 QwtPlotSeriesItem (const QwtText &title)
 
void setOrientation (Qt::Orientation)
 
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &) QWT_OVERRIDE
 Update the item to changes of the axes scale division. More...
 
virtual ~QwtPlotSeriesItem ()
 Destructor. More...
 
- Public Member Functions inherited from QwtPlotItem
void attach (QwtPlot *plot)
 Attach the item to a plot. More...
 
void detach ()
 This method detaches a QwtPlotItem from any QwtPlot it has been associated with. More...
 
virtual void getCanvasMarginHint (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, double &left, double &top, double &right, double &bottom) const
 Calculate a hint for the canvas margin. More...
 
void hide ()
 Hide the item. More...
 
bool isVisible () const
 
virtual void itemChanged ()
 
virtual void legendChanged ()
 
virtual QList< QwtLegendDatalegendData () const
 Return all information, that is needed to represent the item on the legend. More...
 
QSize legendIconSize () const
 
QRectF paintRect (const QwtScaleMap &, const QwtScaleMap &) const
 Calculate the bounding paint rectangle of 2 maps. More...
 
QwtPlotplot () const
 Return attached plot. More...
 
 QwtPlotItem ()
 
 QwtPlotItem (const QString &title)
 
 QwtPlotItem (const QwtText &title)
 
uint renderThreadCount () const
 
QRectF scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
 Calculate the bounding scale rectangle of 2 maps. More...
 
void setAxes (QwtAxisId xAxis, QwtAxisId yAxis)
 
void setItemAttribute (ItemAttribute, bool on=true)
 
void setItemInterest (ItemInterest, bool on=true)
 
void setLegendIconSize (const QSize &)
 
void setRenderHint (RenderHint, bool on=true)
 
void setRenderThreadCount (uint numThreads)
 
void setTitle (const QString &title)
 
void setTitle (const QwtText &title)
 
virtual void setVisible (bool)
 
void setXAxis (QwtAxisId)
 
void setYAxis (QwtAxisId)
 
void setZ (double z)
 Set the z value. More...
 
void show ()
 Show the item. More...
 
bool testItemAttribute (ItemAttribute) const
 
bool testItemInterest (ItemInterest) const
 
bool testRenderHint (RenderHint) const
 
const QwtTexttitle () const
 
virtual void updateLegend (const QwtPlotItem *, const QList< QwtLegendData > &)
 Update the item to changes of the legend info. More...
 
QwtAxisId xAxis () const
 Return xAxis. More...
 
QwtAxisId yAxis () const
 Return yAxis. More...
 
double z () const
 
virtual ~QwtPlotItem ()
 Destroy the QwtPlotItem. More...
 
- Public Member Functions inherited from QwtAbstractSeriesStore
virtual ~QwtAbstractSeriesStore ()
 Destructor. More...
 
- Public Member Functions inherited from QwtSeriesStore< QwtOHLCSample >
QwtSeriesData< QwtOHLCSample > * data ()
 
const QwtSeriesData< QwtOHLCSample > * data () const
 
virtual QRectF dataRect () const QWT_OVERRIDE
 
virtual size_t dataSize () const QWT_OVERRIDE
 
 QwtSeriesStore ()
 Constructor The store contains no series. More...
 
QwtOHLCSample sample (int index) const
 
void setData (QwtSeriesData< QwtOHLCSample > *series)
 
virtual void setRectOfInterest (const QRectF &rect) QWT_OVERRIDE
 
QwtSeriesData< QwtOHLCSample > * swapData (QwtSeriesData< QwtOHLCSample > *series)
 
 ~QwtSeriesStore ()
 Destructor. More...
 

Protected Member Functions

void drawBar (QPainter *, const QwtOHLCSample &, Qt::Orientation, bool inverted, double width) const
 Draw a bar. More...
 
void drawCandleStick (QPainter *, const QwtOHLCSample &, Qt::Orientation, double width) const
 Draw a candle stick. More...
 
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 symbolWidth) const
 Draw a symbol for a symbol style >= UserSymbol. More...
 
void init ()
 Initialize internal members. More...
 
virtual double scaledSymbolWidth (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect) const
 
- Protected Member Functions inherited from QwtPlotSeriesItem
virtual void dataChanged () QWT_OVERRIDE
 dataChanged() indicates, that the series has been changed. More...
 
- Protected Member Functions inherited from QwtPlotItem
QwtGraphic defaultIcon (const QBrush &, const QSizeF &) const
 Return a default icon from a brush. More...
 
- Protected Member Functions inherited from QwtAbstractSeriesStore
virtual QRectF dataRect () const =0
 
virtual size_t dataSize () const =0
 

Private Attributes

PrivateDatam_data
 

Detailed Description

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.

Definition at line 37 of file qwt_plot_tradingcurve.h.

Member Enumeration Documentation

◆ Direction

Direction of a price movement.

Enumerator
Increasing 

The closing price is higher than the opening price.

Decreasing 

The closing price is lower than the opening price.

Definition at line 89 of file qwt_plot_tradingcurve.h.

◆ PaintAttribute

Attributes to modify the drawing algorithm.

See also
setPaintAttribute(), testPaintAttribute()
Enumerator
ClipSymbols 

Check if a symbol is on the plot canvas before painting it.

Definition at line 102 of file qwt_plot_tradingcurve.h.

◆ SymbolStyle

Symbol styles.

The default setting is QwtPlotSeriesItem::CandleStick.

See also
setSymbolStyle(), symbolStyle()
Enumerator
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.

See also
drawUserSymbol()

Definition at line 55 of file qwt_plot_tradingcurve.h.

Constructor & Destructor Documentation

◆ QwtPlotTradingCurve() [1/2]

QwtPlotTradingCurve::QwtPlotTradingCurve ( const QString &  title = QString())
explicit

Constructor

Parameters
titleTitle of the curve

Definition at line 70 of file qwt_plot_tradingcurve.cpp.

◆ QwtPlotTradingCurve() [2/2]

QwtPlotTradingCurve::QwtPlotTradingCurve ( const QwtText title)
explicit

Constructor

Parameters
titleTitle of the curve

Definition at line 60 of file qwt_plot_tradingcurve.cpp.

◆ ~QwtPlotTradingCurve()

QwtPlotTradingCurve::~QwtPlotTradingCurve ( )
virtual

Destructor.

Definition at line 77 of file qwt_plot_tradingcurve.cpp.

Member Function Documentation

◆ boundingRect()

QRectF QwtPlotTradingCurve::boundingRect ( ) const
virtual
Returns
Bounding rectangle of all samples. For an empty series the rectangle is invalid.

Reimplemented from QwtPlotSeriesItem.

Definition at line 365 of file qwt_plot_tradingcurve.cpp.

◆ drawBar()

void QwtPlotTradingCurve::drawBar ( QPainter *  painter,
const QwtOHLCSample sample,
Qt::Orientation  orientation,
bool  inverted,
double  width 
) const
protected

Draw a bar.

Parameters
painterQt painter, initialized with pen/brush
sampleSample, already translated into paint device coordinates
orientationVertical or horizontal
invertedWhen 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.
widthWidth or height of the candle, depending on the orientation
See also
Bar

Definition at line 562 of file qwt_plot_tradingcurve.cpp.

◆ drawCandleStick()

void QwtPlotTradingCurve::drawCandleStick ( QPainter *  painter,
const QwtOHLCSample sample,
Qt::Orientation  orientation,
double  width 
) const
protected

Draw a candle stick.

Parameters
painterQt painter, initialized with pen/brush
sampleSamples already translated into paint device coordinates
orientationVertical or horizontal
widthWidth or height of the candle, depending on the orientation
See also
CandleStick

Definition at line 601 of file qwt_plot_tradingcurve.cpp.

◆ drawSeries()

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

Parameters
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
canvasRectContents rectangle of the canvas
fromIndex of the first point to be painted
toIndex of the last point to be painted. If to < 0 the curve will be painted to its last point.
See also
drawSymbols()

Implements QwtPlotSeriesItem.

Definition at line 387 of file qwt_plot_tradingcurve.cpp.

◆ drawSymbols()

void QwtPlotTradingCurve::drawSymbols ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect,
int  from,
int  to 
) const
protectedvirtual

Draw symbols

Parameters
painterPainter
xMapx map
yMapy map
canvasRectContents rectangle of the canvas
fromIndex of the first point to be painted
toIndex of the last point to be painted
See also
drawSeries()

Definition at line 420 of file qwt_plot_tradingcurve.cpp.

◆ drawUserSymbol()

void QwtPlotTradingCurve::drawUserSymbol ( QPainter *  painter,
SymbolStyle  symbolStyle,
const QwtOHLCSample sample,
Qt::Orientation  orientation,
bool  inverted,
double  symbolWidth 
) const
protectedvirtual

Draw a symbol for a symbol style >= UserSymbol.

The implementation does nothing and is intended to be overloaded

Parameters
painterQt painter, initialized with pen/brush
symbolStyleSymbol style
sampleSamples already translated into paint device coordinates
orientationVertical or horizontal
invertedTrue, when the opposite scale ( Qt::Vertical: x, Qt::Horizontal: y ) is increasing in the opposite direction as QPainter coordinates.
symbolWidthWidth of the symbol in paint device coordinates

Definition at line 534 of file qwt_plot_tradingcurve.cpp.

◆ init()

void QwtPlotTradingCurve::init ( )
protected

Initialize internal members.

Definition at line 83 of file qwt_plot_tradingcurve.cpp.

◆ legendIcon()

QwtGraphic QwtPlotTradingCurve::legendIcon ( int  index,
const QSizeF &  size 
) const
virtual
Returns
A rectangle filled with the color of the symbol pen
Parameters
indexIndex of the legend entry ( usually there is only one )
sizeIcon size
See also
setLegendIconSize(), legendData()

Reimplemented from QwtPlotItem.

Definition at line 642 of file qwt_plot_tradingcurve.cpp.

◆ maxSymbolWidth()

double QwtPlotTradingCurve::maxSymbolWidth ( ) const
Returns
Maximum for the symbol width
See also
setMaxSymbolWidth(), minSymbolWidth(), symbolExtent()

Definition at line 356 of file qwt_plot_tradingcurve.cpp.

◆ minSymbolWidth()

double QwtPlotTradingCurve::minSymbolWidth ( ) const
Returns
Minmum for the symbol width
See also
setMinSymbolWidth(), maxSymbolWidth(), symbolExtent()

Definition at line 328 of file qwt_plot_tradingcurve.cpp.

◆ rtti()

int QwtPlotTradingCurve::rtti ( ) const
virtual
Returns
QwtPlotItem::Rtti_PlotTradingCurve

Reimplemented from QwtPlotItem.

Definition at line 95 of file qwt_plot_tradingcurve.cpp.

◆ scaledSymbolWidth()

double QwtPlotTradingCurve::scaledSymbolWidth ( const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect 
) const
protectedvirtual

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.

Parameters
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
canvasRectContents rectangle of the canvas
Returns
Symbol width in paint coordinates
See also
symbolExtent(), minSymbolWidth(), maxSymbolWidth()

Definition at line 664 of file qwt_plot_tradingcurve.cpp.

◆ setMaxSymbolWidth()

void QwtPlotTradingCurve::setMaxSymbolWidth ( double  width)

Set a maximum for the symbol width

A value <= 0.0 means an unlimited width

Parameters
widthWidth in paint device coordinates
See also
maxSymbolWidth(), setMinSymbolWidth(), setSymbolExtent()

Definition at line 341 of file qwt_plot_tradingcurve.cpp.

◆ setMinSymbolWidth()

void QwtPlotTradingCurve::setMinSymbolWidth ( double  width)

Set a minimum for the symbol width

Parameters
widthWidth in paint device coordinates
See also
minSymbolWidth(), setMaxSymbolWidth(), setSymbolExtent()

Definition at line 312 of file qwt_plot_tradingcurve.cpp.

◆ setPaintAttribute()

void QwtPlotTradingCurve::setPaintAttribute ( PaintAttribute  attribute,
bool  on = true 
)

Specify an attribute how to draw the curve

Parameters
attributePaint attribute
onOn/Off
See also
testPaintAttribute()

Definition at line 107 of file qwt_plot_tradingcurve.cpp.

◆ setSamples() [1/2]

void QwtPlotTradingCurve::setSamples ( const QVector< QwtOHLCSample > &  samples)

Initialize data with an array of samples.

Parameters
samplesVector of samples
See also
QwtPlotSeriesItem::setData()

Definition at line 132 of file qwt_plot_tradingcurve.cpp.

◆ setSamples() [2/2]

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.

Parameters
dataData
Warning
The item takes ownership of the data object, deleting it when its not used anymore.

Definition at line 148 of file qwt_plot_tradingcurve.cpp.

◆ setSymbolBrush()

void QwtPlotTradingCurve::setSymbolBrush ( Direction  direction,
const QBrush &  brush 
)

Set the symbol brush

Parameters
directionDirection type
brushBrush used to fill the body of all candlestick symbols with the direction
See also
symbolBrush(), setSymbolPen()

Definition at line 238 of file qwt_plot_tradingcurve.cpp.

◆ setSymbolExtent()

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()

Parameters
extentSymbol width in scale coordinates
See also
symbolExtent(), scaledSymbolWidth(), setMinSymbolWidth(), setMaxSymbolWidth()

Definition at line 284 of file qwt_plot_tradingcurve.cpp.

◆ setSymbolPen() [1/2]

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.

Parameters
colorPen color
widthPen width
stylePen style
See also
pen(), brush()

Definition at line 195 of file qwt_plot_tradingcurve.cpp.

◆ setSymbolPen() [2/2]

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

See also
symbolPen(), setSymbolBrush()

Definition at line 209 of file qwt_plot_tradingcurve.cpp.

◆ setSymbolStyle()

void QwtPlotTradingCurve::setSymbolStyle ( SymbolStyle  style)

Set the symbol style

Parameters
styleSymbol style
See also
symbolStyle(), setSymbolExtent(), setSymbolPen(), setSymbolBrush()

Definition at line 162 of file qwt_plot_tradingcurve.cpp.

◆ symbolBrush()

QBrush QwtPlotTradingCurve::symbolBrush ( Direction  direction) const
Parameters
direction
Returns
Brush used to fill the body of all candlestick symbols with the direction
See also
setSymbolPen(), symbolBrush()

Definition at line 262 of file qwt_plot_tradingcurve.cpp.

◆ symbolExtent()

double QwtPlotTradingCurve::symbolExtent ( ) const
Returns
Extent of a symbol in scale coordinates
See also
setSymbolExtent(), scaledSymbolWidth(), minSymbolWidth(), maxSymbolWidth()

Definition at line 301 of file qwt_plot_tradingcurve.cpp.

◆ symbolPen()

QPen QwtPlotTradingCurve::symbolPen ( ) const
Returns
Symbol pen
See also
setSymbolPen(), symbolBrush()

Definition at line 224 of file qwt_plot_tradingcurve.cpp.

◆ symbolStyle()

QwtPlotTradingCurve::SymbolStyle QwtPlotTradingCurve::symbolStyle ( ) const
Returns
Symbol style
See also
setSymbolStyle(), symbolExtent(), symbolPen(), symbolBrush()

Definition at line 177 of file qwt_plot_tradingcurve.cpp.

◆ testPaintAttribute()

bool QwtPlotTradingCurve::testPaintAttribute ( PaintAttribute  attribute) const
Returns
True, when attribute is enabled
See also
PaintAttribute, setPaintAttribute()

Definition at line 120 of file qwt_plot_tradingcurve.cpp.

Member Data Documentation

◆ m_data

PrivateData* QwtPlotTradingCurve::m_data
private

Definition at line 174 of file qwt_plot_tradingcurve.h.


The documentation for this class was generated from the following files:


plotjuggler
Author(s): Davide Faconti
autogenerated on Mon Nov 11 2024 03:23:51