Changelog
Added
- Installation & Distribution
- PyQt5-based installer app with multi-page wizard for MT5 terminal selection and version installation
- GitHub API integration to fetch available releases
- Version selection page with release information display
- Integrated progress page with download, extraction, and installation progress bars
- Background download worker thread with progress tracking
- Automatic ZIP extraction to Windows temp folder
- MT5 installation option (downloads and launches MT5 setup)
- SMTP email configuration section
- Update checker addon that fetches latest version from GitHub API
- Builder tool (PyQt5) for compiling MQL5 and building Python apps
- Build targets: PrismChart, Installer, Update Checker, ThinkPad, SMTP Sender
- Batch build with sequential execution and Package checkbox for one-click build+package
- 7-Zip packaging integration
- Post-build file copy for ThinkPad settings template
- Foundation
- Custom price scale with canvas-based rendering replacing MT5 price axis
- Rounded price levels at user-defined intervals
- Current price indicator on price scale
- Custom price scale settings: font, font size, text color, background color
- Canvas-based timeline (TradingView-style) replacing MT5 time axis
- Timeline displays hours in target timezone (NY Auto with DST, or Manual UTC offset)
- Time info panel showing broker time, GMT, target time (toggleable)
- Timeline settings: font, font size, text color, background color
- Day/Month/Year color options for time scale labels
- Adaptive timeline format per timeframe (M1 through MN1)
- Fine-tuned zoom increments per timeframe
- Custom crosshair with configurable line style, color, width (1-5)
- Crosshair price label on price scale (canvas-rendered)
- Crosshair time label on timeline (canvas-rendered, uses selected timezone)
- Crosshair labels can be toggled independently from crosshair lines
- T key toggles crosshair tracking on/off
- OHLC info display replacing MT5 built-in display
- OHLC info shows: Symbol name, Bar number, Pips from close, O/H/L/C values
- OHLC info shows: Range (pips), Body%, Upper Wick%, Lower Wick%, Volume, Time
- OHLC info sections toggleable individually
- OHLC info custom font and font size settings
- Presentation Mode
- Smart Auto-Scroll: auto-toggle autoscroll when scrolling back in history
- Fixed Scale: lock chart zoom with CHART_SCALEFIX
- Head/Tail Margins: asymmetric margins (default 20%) based on price position
- ATR Range (D1): use D1 ATR as minimum range floor to prevent over-zooming
- ATR Period: configurable period (1-100, default 14)
- Adaptive scaling: max(visible H/L, D1 ATR) + margins
- Screenshot button: capture current chart view
- Panorama button: capture extended width (configurable multiplier 2-6x)
- Split button: convert panorama to printable pages using ImageMagick
- Screenshot directory configurable via MT5 input parameter (default: PrismChart\Screenshots)
- Files saved to MQL5/Files/ with timestamp
- Presentation dialog hides before screenshot
- Live Data Layer
- Price Line following current price
- Up/down color (green/red vs previous close)
- Optional label above line
- Optional label on price scale
- Spread Meter showing current spread
- Max value threshold with color alert
- Configurable colors
- Candle Close Countdown showing time remaining until current candle closes
- Integrated into price scale (bottom)
- Updates in real-time
- Time Context
- News Events system with custom economic calendar database
- Event types: NFP, CPI, FOMC, custom News
- Event Manager dialog (add/edit/delete)
- Custom naming for events
- Visual markers: horizontal bars spanning event day
- Vertical lines at exact event time
- Eastern Time to broker time conversion
- Per-event color coding
- Show/hide toggles per event type
- Show All checkbox to toggle all event type filters at once
- INI persistence
- Sessions: 4 configurable trading sessions
- Per-session: name, start/end time, color, style
- Times defined in target timezone
- Horizontal bars at chart bottom with labels
- Master toggle to enable/disable all
- Days to show setting (1-30)
- Sessions dialog for configuration
- Create Markers feature: generate vertical lines at session starts
- Vertical text labels (rotated 90 degrees) along markers
- Separate style/width/font settings for vertical markers
- Labels dynamically reposition on chart scale changes
- Period Separators: daily, weekly, monthly separator lines
- Independent enable/disable per type
- Per-type: color, line style, width
- Text labels at separation points
- Labels dynamically reposition on chart scale changes
- ISO week number for weekly labels
- Custom day start time (forex: 17:00 NY)
- Week start day selection (Sunday-Saturday)
- Separator label font size setting
- Skips weekends for daily separators
- Period High/Low: click separator to auto-draw H/L lines for period
- Lines extend to next separator
- Opening Price: click separator to draw opening price line
- Line at first candle's open of period
- Extends until next separator
- Drawing Tools
- Trend line (two-point)
- Angled line (preset angles: 0, 30, 45, 60, 90 and negatives)
- Ray (extends to infinity in one direction)
- Horizontal line
- Vertical line
- Angle lock (lines maintain angle when dragged)
- Rectangle (unfilled, border only)
- Rectangle (filled)
- Rectangle with text (configurable fill state via Properties dialog)
- Path (multi-segment lines, click to add points)
- Parallel Channel (3 lines: top, middle, bottom)
- Position Tool (entry + SL + TP1-3 with zones)
- Text labels (font size 8-24)
- Multi-line text annotations (up to 10 lines per annotation)
- 20x20 LightGray rectangle as draggable anchor
- Text lines positioned at 20px intervals below rectangle
- Edit button in Properties Dialog for editing
- All components (rectangle + lines) renamed together
- Integrated into sublayer system for copy/paste
- Symbol/Wingdings characters (picker dialog)
- Label tool (add text to existing lines/rectangles)
- Multi-use symbol placement mode
- Price Range (pips and percentage between two points)
- Date Range (days/hours/minutes between two points)
- Position Tool click to set entry, drag to set SL
- Auto-detect long/short from drag direction
- 1-3 configurable TPs at 1R, 2R, 3R
- Dynamic R:R ratio calculations
- Info labels at each level (pips, R:R)
- All lines draggable with auto-updating zones
- Vertical pillar axis (drag to move entire position)
- Sync button exports SL/TP to INI for EA integration
- Straighten tool: click trend line to make horizontal with angle lock on drag
- Trash tool: delete all drawings in user-defined layers with confirmation dialog
- Fibonacci tool with preset system
- Diagonal line with level markers at configurable ratios
- Preset storage in INI files with hex color support (#RRGGBB format)
- Level labels with position control (Left/Center/Right)
- Separate line style and width controls for diagonal and levels
- Configuration dialog for adding/removing/editing levels
- Rename presets by editing Name field and clicking Save
- Line width (1-5)
- Line style (solid, dash, dot, dash-dot)
- Color palette (customizable, hex input)
- Separate text color property
- Font size (8-24)
- Rectangle label position (8 positions)
- Line label position (8 positions)
- Filled checkbox: control rectangle fill state when applying
- Apply button: apply all properties to selected object
- Layer change via Apply (move objects between groups)
- Press-drag-release pattern for two-point tools
- Snap-to-bar magnet (configurable sensitivity, 0=disabled)
- Single-use tools (auto-deactivate after one object)
- Naming dialog after drawing (custom or auto-generated)
- Duplicate name validation
- FVG Detection: Fair Value Gap auto-detection
- Configurable: max bars, box length, colors, fill, border
- Auto-delete when mitigated (close through gap)
- Click FVG box to convert to user rectangle
- Visibility toggle button
- Split interface: Tools Dialog + Properties Dialog
- Collapsible tool groups with flyout panels (Lines, Shapes, Text)
- Bitmap icons for all tools
- Quick Tools (QT) dialog for FVG, Periods, Alarms, Settings, Installer
- Symbol Switcher with Favorites dialog
- Toggle button displays current symbol + timeframe
- Favorites list with [O] button to open new chart
- Timeframe selector buttons ([1] [5] [15] [30] [1H] [4H] [D1])
- Add/remove symbols from favorites
- Position validation prevents dialogs from getting stuck behind OHLC strip
- Ctrl+Backspace undoes last path segment (while drawing)
- Organization
- Layers: Group objects by naming prefix (e.g., FVG_001, OB_entry)
- Configurable delimiter (underscore, dash, or both)
- Manage Groups dialog (add/remove layers)
- Groups button in Drawing Manager panel for quick access
- Layer dropdown for target selection when drawing
- Default Layer setting for consistent layer assignment to new drawings
- Last used layer memory persists across drawings
- Optional "Ungrouped" layer for objects without prefix
- Drawing Manager: List all objects organized by layer
- Expand/collapse layers
- Toggle visibility per layer or object
- Toggle lock per layer or object
- Delete layers or individual objects
- Confirmation dialogs before deletion
- Scrollable panel with Up/Down buttons
- Drag-reorder layers
- Auto-refresh on chart changes
- 2x3 grid layout (Save | Import | Vis. Tmpls / Load | Export | Groups)
- Sublayer System: Auto-detect complex objects by naming convention
- Pattern: LAYER_OBJECTNAME_subpart (e.g., POS_001_entry, POS_001_sl)
- Collapsible sublayers with expand/collapse toggle
- Lock/hide/delete propagates to all sub-objects
- Mixed state indicator when sub-objects differ
- Naming: Auto-naming: [LAYER]_001, [LAYER]_002, etc.
- Naming dialog after drawing for custom names
- Rename button [R] in layer panel
- Group dropdown in rename dialog (move between groups)
- Whitespace handling (treated as blank)
- Lock/Unlock: Lock button [L/U] per layer and object
- Prevents accidental selection/movement
- Lock all toggle button in toolbar
- Show/Hide: Visibility checkbox per layer and object
- Hide all toggle button in toolbar
- Layer checkbox = select all/deselect all children
- Color Manager: Custom color palette
- Add colors via hex input (#RRGGBB)
- Visual color picker (HSL/RGB/Lab picker with 138 standard colors)
- Remove colors from palette
- Palette persists to settings
- Layer Manager: Create new layers
- Remove existing layers
- Rename layers
- Templates: Template Manager dialog
- Templates organized by groups/categories
- Create template from selected object
- Captures: color, width, style, fill, text properties
- Apply template to matching object type
- Type-specific (rectangle templates for rectangles only)
- Complex template support (multi-object templates)
- Templates persist to INI files
- Profiles: Save/load toolbar settings profiles
- Settings: colors, layers, width, style, font, layer selection
- Auto-load default.ini on indicator start
- Save/Load buttons in Settings dialog
- Profile files in MQL5/Files/DrawingLayers/
- Alerts
- Line Alerts: Horizontal line (price cross)
- Vertical line (time cross)
- Trend line (price cross)
- Rectangle zone (price enters zone)
- Candle Close Alerts: Trigger on candle close for any timeframe (M1-MN1)
- Timeframe selection in dialog
- Countdown display in Alert Manager
- Alert Properties: Custom name
- Custom message
- Trigger type: Once, Every minute, Per bar, Per bar close
- Per bar resets on new bar (shows countdown)
- Per bar close validates crossing on last closed bar (bar[1])
- Crossing Direction: Both directions (any crossing)
- Up only (from below to above)
- Down only (from above to below)
- OHLC-based detection (validates close/high/low)
- Notifications: Popup alert
- Sound alert
- Push notification
- Email notification
- Windows tray notification (balloon popup with custom icon)
- Any combination
- SMTP Email Alerts: Email system (smtp_sender.exe)
- Custom Email dialog configuration
- Include trade information in alert emails
- Attach screenshot captured at alert trigger time
- Select specific trade by ticket for position-related alerts
- Attach ThinkPad notes (notes tagged with 'email' in YAML frontmatter)
- HTML email templates with professional formatting
- TLS/SSL encryption support
- Configurable SMTP server, port, credentials
- Permanent credentials stored in arg.json (MQL5/Files/PrismChart/)
- Alert Manager: View all alerts in dialog
- Edit existing alerts
- Delete alerts
- Status display (Active/Triggered/countdown)
- Real-time countdown refresh
- Alert Persistence: Auto-remove when associated object deleted
- State persists across MT5 restarts (INI)
- Per-symbol INI files for cross-machine sync
- Auto-reload when INI file changes
- Symbol normalization (strips .sim, .pro, m, _SB suffixes)
- Portability
- Copy/Paste: Cross-chart via Windows clipboard
- Cross-MT5 instance support
- Ctrl+Shift+C: copy selected objects (all properties + sublayers)
- Ctrl+Shift+V: paste in place (original coordinates)
- Ctrl+Shift+B: paste at click position (with offset)
- Ctrl+Shift+Q: delete complex object with all sublayers
- ObjectSerializer module for serialization format
- Import/Export: Export drawings to named files
- Export dialog prompts for filename
- Files saved to MQL5/Files/DrawingLayers/
- Import Manager lists available files
- Load/Delete buttons per file
- Overwrite confirmation for existing names
- Settings Persistence: Toolbar position saved to INI
- Color palette saved
- Width, style, font settings saved
- Selected layer saved
- Layer visibility/lock states saved
- Panel expanded states saved
- Settings restore on restart
- Autosave: Background saves every N minutes (configurable, default 1 minute)
- Max backup versions (1-10, default 3)
- Files saved to MQL5/Files/DrawingLayers/ with timestamp
- Manual restore via Import Manager
- Prevents immediate overwrite on chart load (grace period)
- Autosave enabled/disabled via MT5 input parameters
- Sync: Position tool Sync button
- Exports SL/TP to ForexTM-GlobalVars-SYMBOL.ini
- Alert INI includes trigger object data
- Sync INI filename setting (custom or auto)
- External EA can consume sync files
- Analysis
- Note Management Editor: Tabbed markdown editor with syntax highlighting
- Auto-save on tab switch and window close
- File backup versions (configurable count)
- Pin mode (always-on-top window)
- File Organization: Hierarchical file tree panel (toggle visibility)
- Notes and Screenshots folder views
- Symbol-based filtering
- Tag-based filtering with per-symbol presets
- Trade Analysis Trades Manager: Full trade list from MT5 exports
- Columns: Position ID, Symbol, Direction, Volume, Entry/Exit Time, Duration, Gross/Commission/Swap/Net P/L
- Time filters: Today, Week, Month, All, Custom date range
- Symbol, magic number, and tag filtering
- Filtered statistics display
- Calendar View: Monthly grid showing trade evolution
- Two display modes: Evolution (Trade progression with entries and partial exits across days)
- Transactions (Exit transactions with P/L on occurrence day)
- Week navigation
- Weekly totals column: Dollar P/L, Percentage gain, Pip P/L
- Click cell to open Trades Manager filtered for that day
- Trade Statistics: Customizable stats display via Stat Manager
- Default metrics: Total Trades, Win Rate, Profit Factor, Max Drawdown, Recovery Factor
- Trade Performance: Avg Win/Loss, Largest Win/Loss, Win/Loss Streaks
- Time Analysis: Avg/Max/Min trade duration, Avg Win/Loss hold time
- Trade Analysis View: Screenshot gallery per trade
- Note content display with markdown rendering
- Screenshot thumbnail reordering
- Direct link to main note for full editing
- Bar Replay: Step through historical price action
- Click chart to place vertical line boundary
- Candles after the line hidden using DRAW_COLOR_CANDLES technique
- Play/Pause with configurable speed (1x-10x)
- Keyboard shortcuts: Shift+, (back), Shift+. (forward), Shift+/ (play/pause)
- Auto-scroll chart to keep VL position visible
- Save/Load dialogs to persist named VL positions per symbol
- Date/Time button to jump to specific date and time
- Configurable replay candle colors (Bull: CadetBlue, Bear: LightCoral)