Skip to content

Features

Drawings

Arm drawing tools, add drawings in code, and undo, group, template, and save them.

Interactive tools

Arm a tool and the user places it on the chart. The engine handles placement, snapping, editing, and hit testing. Pass null to disarm.

Drawing tools
chart.set_drawing_tool("fibonacci_retracement");
chart.subscribe_drawing_tool_change(() => toolbar.update(chart.active_drawing_tool()));
chart.subscribe_drawing_created(() => chart.set_drawing_tool(null));

Drawings in code

add_drawing
const line = chart.add_drawing("trend_line", [
  { logical: 120, price: 104.5 },
  { logical: 180, price: 112.0 },
]);

const level = chart.add_drawing("horizontal_line", [{ logical: 150, price: 108 }]);
const selected = chart.selected_drawing();

Anchors are a logical bar index and a price. The number of anchors depends on the kind; an invalid count or non-finite anchor throws.

Drawing kinds

Drawing kinds by family
FamilyKinds
Linestrend_line, horizontal_line, horizontal_ray, vertical_line, ray, extended_line, info_line, trend_angle, cross_line, arrow_line
Shapesrectangle, rotated_rectangle, ellipse, circle, triangle, arc, curve, double_curve, polyline, path, brush, highlighter
Measuring and tradinglong_position, short_position, price_range, date_range, date_price_range
Profilesfixed_range_volume_profile, anchored_volume_profile, anchored_vwap
Channelsparallel_channel, regression_trend, flat_top_channel, flat_bottom_channel, disjoint_channel
Fibonaccifibonacci_retracement, fibonacci_extension, fibonacci_channel, fibonacci_time_zones, fibonacci_trend_time, fibonacci_speed_fan, fibonacci_speed_arcs, fibonacci_circles, fibonacci_spiral, fibonacci_wedge
Pitchforksandrews_pitchfork, schiff_pitchfork, modified_schiff_pitchfork, inside_pitchfork, pitchfan
Patternspattern_xabcd, pattern_cypher, pattern_abcd, pattern_head_shoulders, pattern_triangle, pattern_three_drives
Elliott waveselliott_impulse, elliott_correction, elliott_triangle, elliott_double_combination, elliott_triple_combination
Cyclescyclic_lines, time_cycles, sine_line
Markersarrow_marker_up, arrow_marker_down, arrow_marker_left, arrow_marker_right, flag_mark, signpost
Texttext, note, comment, callout, price_note, price_label, anchored_text

Managing drawings

Drawing management methods
PurposeMethods
Historyundo_drawing, redo_drawing, can_undo_drawing, can_redo_drawing, clear_drawings
Editingcopy_drawings, paste_drawings, clone_drawing, move_drawing_z_order
Groupsset_drawing_group_visibility, set_drawing_group_locked, move_drawing_group
Templatesdrawing_template, apply_drawing_template
Syncdrawing_sync_payload, apply_drawing_sync_payload
Propertiesdrawing_property_schema, drawing_kind_options, drawing_painted_colors
Organizationdrawings, drawing_object_tree, set_drawing_interval
Iconsregister_drawing_icon, remove_drawing_icon, builtin_drawing_icons

Quick measure and saving

Shift-click anywhere to measure price and time distance. The measurement is temporary and never becomes a drawing. To save drawings, use export_state(); see Saving and restoring.