Loading...
Searching...
No Matches
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:

## 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
Public Types inherited from QwtPlotItem

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...
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...
typedef QFlags< ItemAttribute > | ItemAttributes
typedef QFlags< ItemInterest > | ItemInterests
typedef QFlags< RenderHint > | RenderHints

## Public Member Functions

| QwtPlotTradingCurve (const QString &title=QString())
| QwtPlotTradingCurve (const QwtText &title)
virtual | ~QwtPlotTradingCurve ()
| Destructor.
virtual int | rtti () const override
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)
| 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 *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const override
virtual QRectF | boundingRect () const override
virtual QwtGraphic | legendIcon (int index, const QSizeF &) const override
Public Member Functions inherited from QwtPlotSeriesItem
| QwtPlotSeriesItem (const QString &title=QString())
| QwtPlotSeriesItem (const QwtText &title)
virtual | ~QwtPlotSeriesItem ()
| Destructor.
void | setOrientation (Qt::Orientation)
Qt::Orientation | orientation () const
virtual void | draw (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect) const override
| Draw the complete series.
virtual void | updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &) override
| Update the item to changes of the axes scale division.
Public Member Functions inherited from QwtPlotItem
| QwtPlotItem ()
| QwtPlotItem (const QString &title)
| QwtPlotItem (const QwtText &title)
virtual | ~QwtPlotItem ()
| Destroy the QwtPlotItem.
void | attach (QwtPlot *plot)
| Attach the item to a plot.
void | detach ()
| This method detaches a QwtPlotItem from any QwtPlot it has been associated with.
QwtPlot * | plot () const
| Return attached plot.
void | setTitle (const QString &title)
void | setTitle (const QwtText &title)
const QwtText & | title () const
void | setItemAttribute (ItemAttribute, bool on=true)
bool | testItemAttribute (ItemAttribute) const
void | setItemInterest (ItemInterest, bool on=true)
bool | testItemInterest (ItemInterest) const
void | setRenderHint (RenderHint, bool on=true)
bool | testRenderHint (RenderHint) const
void | setRenderThreadCount (uint numThreads)
uint | renderThreadCount () const
void | setLegendIconSize (const QSize &)
QSize | legendIconSize () const
double | z () const
void | setZ (double z)
| Set the z value.
void | show ()
| Show the item.
void | hide ()
| Hide the item.
virtual void | setVisible (bool)
bool | isVisible () const
void | setAxes (QwtAxisId xAxis, QwtAxisId yAxis)
void | setXAxis (QwtAxisId)
QwtAxisId | xAxis () const
| Return xAxis.
void | setYAxis (QwtAxisId)
QwtAxisId | yAxis () const
| Return yAxis.
virtual void | itemChanged ()
virtual void | legendChanged ()
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.
virtual void | updateLegend (const QwtPlotItem *, const QList< QwtLegendData > &)
| Update the item to changes of the legend info.
QRectF | scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
| Calculate the bounding scale rectangle of 2 maps.
QRectF | paintRect (const QwtScaleMap &, const QwtScaleMap &) const
| Calculate the bounding paint rectangle of 2 maps.
virtual QList< QwtLegendData > | legendData () const
| Return all information, that is needed to represent the item on the legend.
Public Member Functions inherited from QwtAbstractSeriesStore
virtual | ~QwtAbstractSeriesStore ()
| Destructor.
Public Member Functions inherited from QwtSeriesStore< QwtOHLCSample >
| QwtSeriesStore ()
| Constructor The store contains no series.
| ~QwtSeriesStore ()
| Destructor.
void | setData (QwtSeriesData< QwtOHLCSample > *series)
QwtSeriesData< QwtOHLCSample > * | data ()
const QwtSeriesData< QwtOHLCSample > * | data () const
QwtOHLCSample | sample (int index) const
virtual size_t | dataSize () const override
virtual QRectF | dataRect () const override
virtual void | setRectOfInterest (const QRectF &rect) override
QwtSeriesData< QwtOHLCSample > * | swapData (QwtSeriesData< QwtOHLCSample > *series)

## 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 symbolWidth) const
| Draw a symbol for a symbol style >= UserSymbol.
void | drawBar (QPainter *, 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
Protected Member Functions inherited from QwtPlotSeriesItem
virtual void | dataChanged () override
| dataChanged() indicates, that the series has been changed.
Protected Member Functions inherited from QwtPlotItem
QwtGraphic | defaultIcon (const QBrush &, const QSizeF &) const
| Return a default icon from a brush.

## 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:

- setSymbolExtent()
- setSymbolMinWidth()
- setSymbolMaxWidth()

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 Typedef Documentation

## PaintAttributes

typedef QFlags<PaintAttribute > QwtPlotTradingCurve::PaintAttributes

An ORed combination of PaintAttribute values.

Definition at line 101 of file qwt_plot_tradingcurve.h.

## Member Enumeration Documentation

## Direction

enum QwtPlotTradingCurve::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 82 of file qwt_plot_tradingcurve.h.

## PaintAttribute

enum QwtPlotTradingCurve::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 95 of file qwt_plot_tradingcurve.h.

## SymbolStyle

enum QwtPlotTradingCurve::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 48 of file qwt_plot_tradingcurve.h.

## Constructor & Destructor Documentation

## QwtPlotTradingCurve() [1/2]

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

explicit

Constructor

Parameters

  title | Title of the curve

Definition at line 70 of file qwt_plot_tradingcurve.cpp.

## QwtPlotTradingCurve() [2/2]

QwtPlotTradingCurve::QwtPlotTradingCurve | ( | const QwtText & | title | ) |

explicit

Constructor

Parameters

  title | Title 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

override 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

  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

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

  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

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

override virtual

Draw an interval of the curve

Parameters

  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.

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

protected virtual

Draw symbols

Parameters

  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

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

protected virtual

Draw a symbol for a symbol style >= UserSymbol.

The implementation does nothing and is intended to be overloaded

Parameters

  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

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

override virtual

Returns
  A rectangle filled with the color of the symbol pen

Parameters

  index | Index of the legend entry ( usually there is only one )
  size | Icon 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

override 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

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.

Parameters

  xMap | Maps x-values into pixel coordinates.
  yMap | Maps y-values into pixel coordinates.
  canvasRect | Contents 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

  width | Width 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

  width | Width 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

  attribute | Paint attribute
  on | On/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

  samples | Vector 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

  data | Data

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

  direction | Direction type
  brush | Brush 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

  extent | Symbol 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

  color | Pen color
  width | Pen width
  style | Pen 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

  style | Symbol 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.