> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ninjatrader.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ninjatrader.com/_mcp/server.

# Drawing

You can use **NinjaScript** to draw custom shapes, lines, text and colors on price and indicator panels from both [Indicators](/developer/desktop-sdk/references/common/charts/chartcontrol/indicators) and [Strategies](/developer/desktop-sdk/references/add-on/account-class/strategies).

## Draw Methods and Associated Return Types

| Draw Method                                                                                                     | Return Type                                                                                                                      |
| --------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| [Draw.AndrewsPitchfork()](/developer/desktop-sdk/references/common/drawing/draw-andrewspitchfork)               | [AndrewsPitchfork](/developer/desktop-sdk/references/common/drawing/draw-andrewspitchfork/andrewspitchfork)                      |
| [Draw.Arc()](/developer/desktop-sdk/references/common/drawing/draw-arc)                                         | [Arc](/developer/unsorted/arc)                                                                                                   |
| [Draw.ArrowDown()](/developer/desktop-sdk/references/common/drawing/draw-arrowdown)                             | [ArrowDown](/developer/desktop-sdk/references/common/drawing/draw-arrowdown/arrowdown)                                           |
| [Draw.ArrowLine()](/developer/desktop-sdk/references/common/drawing/draw-arrowline)                             | [ArrowLine](/developer/desktop-sdk/references/common/drawing/draw-arrowline/arrowline)                                           |
| [Draw.ArrowUp()](/developer/desktop-sdk/references/common/drawing/draw-arrowup)                                 | [ArrowUp](/developer/desktop-sdk/references/common/drawing/draw-arrowup/arrowup)                                                 |
| [Draw.Diamond()](/developer/desktop-sdk/references/common/drawing/draw-diamond)                                 | [Diamond](/developer/desktop-sdk/references/common/drawing/draw-diamond/diamond)                                                 |
| [Draw.Dot()](/developer/desktop-sdk/references/common/drawing/draw-dot)                                         | [Dot](/developer/desktop-sdk/references/common/drawing/draw-dot/dot)                                                             |
| [Draw.Ellipse()](/developer/desktop-sdk/references/common/drawing/draw-ellipse)                                 | [Ellipse](/developer/desktop-sdk/references/common/drawing/draw-ellipse/ellipse)                                                 |
| [Draw.ExtendedLine()](/developer/desktop-sdk/references/common/drawing/draw-extendedline)                       | [ExtendedLine](/developer/desktop-sdk/references/common/drawing/draw-extendedline/extendedline)                                  |
| [Draw.FibonacciCircle()](/developer/desktop-sdk/references/common/drawing/draw-fibonaccicircle)                 | [FibonacciCircle](/developer/desktop-sdk/references/common/drawing/draw-fibonaccicircle/fibonaccicircle)                         |
| [Draw.FibonacciExtensions()](/developer/desktop-sdk/references/common/drawing/draw-fibonacciextensions)         | [FibonacciExtensions](/developer/desktop-sdk/references/common/drawing/draw-fibonacciextensions/fibonacciextensions)             |
| [Draw.FibonacciRetracements()](/developer/desktop-sdk/references/common/drawing/draw-fibonacciretracements)     | [FibonacciRetracements](/developer/desktop-sdk/references/common/drawing/draw-fibonacciretracements/fibonacciretracements)       |
| [Draw.FibonacciTimeExtensions()](/developer/desktop-sdk/references/common/drawing/draw-fibonaccitimeextensions) | [FibonacciTimeExtensions](/developer/desktop-sdk/references/common/drawing/draw-fibonaccitimeextensions/fibonaccitimeextensions) |
| [Draw.GannFan()](/developer/desktop-sdk/references/common/drawing/draw-gannfan)                                 | [GannFan](/developer/desktop-sdk/references/common/drawing/draw-gannfan/gannfan)                                                 |
| [Draw.HorizontalLine()](/developer/desktop-sdk/references/common/drawing/draw-horizontal-line)                  | [HorizontalLine](/developer/desktop-sdk/references/common/drawing/draw-horizontal-line/horizontalline)                           |
| [Draw.Line()](/developer/desktop-sdk/references/common/drawing/draw-line)                                       | [Line](/developer/desktop-sdk/references/common/drawing/draw-line/line)                                                          |
| [Draw.Pathtool()](/developer/desktop-sdk/references/common/drawing/draw-pathtool)                               | [Pathtool](/developer/desktop-sdk/references/common/drawing/draw-pathtool/pathtool)                                              |
| [Draw.Polygon()](/developer/desktop-sdk/references/common/drawing/draw-polygon)                                 | [Polygon](/developer/desktop-sdk/references/common/drawing/draw-polygon/polygon)                                                 |
| [Draw.Ray()](/developer/desktop-sdk/references/common/drawing/draw-ray)                                         | [Ray](/developer/desktop-sdk/references/common/drawing/draw-ray/ray)                                                             |
| [Draw.Rectangle()](/developer/desktop-sdk/references/common/drawing/draw-rectangle)                             | [Rectangle](/developer/desktop-sdk/references/common/drawing/draw-rectangle/rectangle)                                           |
| [Draw.Region()](/developer/desktop-sdk/references/common/drawing/draw-region)                                   | [Region](/developer/desktop-sdk/references/common/drawing/draw-region/region)                                                    |
| [Draw.RegionHighlightX()](/developer/desktop-sdk/references/common/drawing/draw-regionhighlightx)               | [RegionHighlightX](/developer/desktop-sdk/references/common/drawing/draw-regionhighlightx/regionhighlightx)                      |
| [Draw.RegionHighlightY()](/developer/desktop-sdk/references/common/drawing/draw-regionhighlighty)               | [RegionHighlightY](/developer/desktop-sdk/references/common/drawing/draw-regionhighlighty/regionhighlighty)                      |
| [Draw.RegressionChannel()](/developer/desktop-sdk/references/common/drawing/draw-regressionchannel)             | [RegressionChannel](/developer/desktop-sdk/references/common/drawing/draw-regressionchannel/regressionchannel)                   |
| [Draw.RiskReward()](/developer/desktop-sdk/references/common/drawing/draw-riskreward)                           | [RiskReward](/developer/desktop-sdk/references/common/drawing/draw-riskreward/riskreward)                                        |
| [Draw.Ruler()](/developer/desktop-sdk/references/common/drawing/draw-ruler)                                     | [Ruler](/developer/desktop-sdk/references/common/drawing/draw-ruler/ruler)                                                       |
| [Draw.Square()](/developer/desktop-sdk/references/common/drawing/draw-square)                                   | [Square](/developer/desktop-sdk/references/common/drawing/draw-square/square)                                                    |
| [Draw.Text()](/developer/desktop-sdk/references/common/drawing/draw-text)                                       | [Text](/developer/desktop-sdk/references/common/drawing/draw-text/text)                                                          |
| [Draw.TextFixed()](/developer/desktop-sdk/references/common/drawing/draw-textfixed)                             | [TextFixed](/developer/desktop-sdk/references/common/drawing/draw-textfixed/textfixed)                                           |
| [Draw.TimeCycles()](/developer/desktop-sdk/references/common/drawing/draw-timecycles)                           | [TimeCycles](/developer/desktop-sdk/references/common/drawing/draw-timecycles/timecycles)                                        |
| [Draw.TrendChannel()](/developer/desktop-sdk/references/common/drawing/draw-trendchannel)                       | [TrendChannel](/developer/desktop-sdk/references/common/drawing/draw-trendchannel/trendchannel)                                  |
| [Draw.Triangle()](/developer/desktop-sdk/references/common/drawing/draw-triangle)                               | [Triangle](/developer/desktop-sdk/references/common/drawing/draw-triangle/triangle)                                              |
| [Draw.TriangleDown()](/developer/desktop-sdk/references/common/drawing/draw-triangledown)                       | [TriangleDown](/developer/desktop-sdk/references/common/drawing/draw-triangledown/triangledown)                                  |
| [Draw.TriangleUp()](/developer/desktop-sdk/references/common/drawing/draw-triangleup)                           | [TriangleUp](/developer/desktop-sdk/references/common/drawing/draw-triangleup/triangleup)                                        |
| [Draw.VerticalLine()](/developer/desktop-sdk/references/common/drawing/draw-verticalline)                       | [VerticalLine](/developer/desktop-sdk/references/common/drawing/draw-verticalline/verticalline)                                  |

## Drawing Methods and Properties

| Property                                                                                                | Description                                                                             |
| ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| [AllowRemovalOfDrawObjects](/developer/desktop-sdk/references/common/drawing/allowremovalofdrawobjects) | Determines if programmatically drawn DrawObjects can be manually removed from the chart |
| [BackBrush](/developer/desktop-sdk/references/common/drawing/backbrush)                                 | Sets the brush used for painting the chart panel's background color for the current bar |
| [BackBrushAll](/developer/desktop-sdk/references/common/drawing/backbrushall)                           | Sets the brush used for painting the chart's background color for the current bar       |
| [BackBrushes](/developer/desktop-sdk/references/common/drawing/backbrushes)                             | A collection of historical brushes used for the background colors for the chart panel   |
| [BackBrushesAll](/developer/desktop-sdk/references/common/drawing/backbrushesall)                       | A collection of historical brushes used for the background colors for all chart panels  |
| [BarBrush](/developer/desktop-sdk/references/common/drawing/barbrush)                                   | Sets the brush used for painting the color of a price bar's body                        |
| [BarBrushes](/developer/desktop-sdk/references/common/drawing/barbrushes)                               | A collection of historical brushes used for painting the color of a price bar's body    |
| [Brushes](/developer/desktop-sdk/references/common/drawing/brushes)                                     | A collection of static, predefined Brushes supplied by the .NET Framework               |
| [CandleOutlineBrush](/developer/desktop-sdk/references/common/drawing/candleoutlinebrush)               | Sets the outline Brush of a candlestick                                                 |
| [CandleOutlineBrushes](/developer/desktop-sdk/references/common/drawing/candleoutlinebrushes)           | A collection of historical outline brushes for candlesticks                             |
| [DrawObjects](/developer/desktop-sdk/references/common/drawing/drawobjects)                             | A collection holding all of the drawn chart objects for the primary bar series          |
| [IDrawingTool](/developer/desktop-sdk/references/common/drawing/idrawingtool)                           | Represents an interface that exposes information regarding a drawn chart object         |
| [RemoveDrawObject()](/developer/desktop-sdk/references/common/drawing/removedrawobject)                 | Removes a draw object from the chart based on its tag value                             |
| [RemoveDrawObjects()](/developer/desktop-sdk/references/common/drawing/removedrawobjects)               | Removes all draw objects originating from the indicator or strategy from the chart      |
| [SimpleFont Class](/developer/desktop-sdk/references/common/simplefont)                                 | Defines a particular font configuration                                                 |

1. Custom graphics for custom indicators can be painted on either the price panel or indicator panel. You could for example have a custom indicator displayed in an indicator panel yet have associated custom graphics painted on the price panel. The "**DrawOnPricePanel**" property is set to true by default, which means that custom graphics will always be painted on the price panel, even if the indicator is plotted in a separate panel. If you want your custom graphics to be plotted on the indicator panel, set this property to false in the **OnStateChange()** method of your custom indicator.
2. Set unique tag values for each draw object, unless you intend for new draw objects to replace existing objects with the same tag. A common trick is to incorporate the bar number as part of the unique tag identifier. For example, if you wanted to draw a dot that indicated a buying condition above a bar, you could express it:
   **Draw\.Dot(this, CurrentBar.ToString() + "Buy", false, 0, High\[0] + TickSize, Brushes.ForestGreen);**
3. Draw methods will not work if they are called from the **OnStateChange()** method.