Graph-Theory/Article-20856-Traversal-Breadth-First-Search
2026-06-21 13:48:24 +00:00
..
BFS-EA.mq5 2026-06-21 15:47:27 +02:00
README.md Add Article-20856-Traversal-Breadth-First-Search/README.md 2026-06-21 13:48:24 +00:00

Article-20856-Graph-Theory-Traversal-Breadth-First-Search-Applied-in-Trading

This repository is an article-derived reference project based on the original MQL5 article. It does not claim to reproduce the full original source code unless files are explicitly attached.

Overview

This project documents a graph-theory-driven trading system centered on the application of Breadth-First Search (BFS) to market structure analysis. The architecture combines:

  • an MQL5 Expert Advisor for swing detection, graph construction, BFS traversal, and trade execution
  • a directed graph representation of market structure using swing highs and swing lows as nodes
  • a level-order traversal engine for market bias evaluation and trading decision support

The article describes how historical price action can be transformed into a directed graph, where each swing point becomes a node and each structural transition becomes an edge. Breadth-First Search is then used to traverse the graph layer by layer, allowing the system to evaluate bullish and bearish structure progressively and generate an objective market bias.


Original Article

Article ID: 20856 Author: Hlomohang John Borotho Publication Date: 2026.01.30 Category: Experts URL: https://www.mql5.com/en/articles/20856


Repository Purpose

This repository should be treated as a reference or reconstruction project derived from the article content. Its purpose is to preserve the article’s technical structure and described file layout for:

  • studying graph-theory applications in algorithmic trading
  • understanding how market structure can be modeled as a directed graph
  • exploring Breadth-First Search traversal for market bias analysis
  • reconstructing the BFS-based Expert Advisor architecture
  • serving as a foundation for further experimentation with graph-based trading systems

Key Concepts

  • Graph Theory
  • Breadth-First Search (BFS)
  • Level-Order Traversal
  • Directed Graphs
  • Swing High Detection
  • Swing Low Detection
  • Market Structure Analysis
  • Bullish and Bearish Classification
  • Graph Traversal-Based Bias Calculation
  • Trading Permission Filtering
  • Market Visualization
  • Structure-Based Trading

Algorithm / Architecture Summary

Historical Context Selection

The trader selects the historical scope used to build the market graph:

  • Previous Bars
  • Previous Days
  • Yesterday Only

This determines the portion of market structure used for analysis.

Swing Detection

Historical price data is scanned for valid swing highs and swing lows.

A swing high is identified when its high exceeds surrounding highs over a configurable swing period.

A swing low is identified when its low is lower than surrounding lows over the same period.

Each detected swing becomes a graph node.

Graph Construction

Detected swings are transformed into a directed graph.

Each node contains:

  • swing price
  • swing type
  • timestamp
  • BFS level
  • bullish/bearish classification

Edges are created from older swings to newer swings, ensuring that graph traversal follows the natural progression of time.

Root Selection

The BFS traversal root is selected according to the chosen history mode.

Possible roots include:

  • oldest swing within a bar lookback range
  • first swing within a multi-day period
  • first swing detected during yesterday's session

This root serves as the starting point for traversal.

Breadth-First Search Traversal

A queue-based BFS algorithm traverses the graph level by level.

During traversal:

  • each node receives a BFS level
  • structural relationships are evaluated
  • directional classifications are assigned

This process produces a hierarchical representation of market structure.

Structure Classification

Each swing is compared against previous swings of the same type.

Examples:

  • Higher High → Bullish
  • Lower High → Bearish
  • Higher Low → Bullish
  • Lower Low → Bearish

These classifications become the directional attributes of graph nodes.

Market Bias Calculation

Each visited node contributes to a weighted bias score.

Lower BFS levels receive larger weights because they represent structure closer to the traversal root.

The final normalized score becomes the current market bias.

Trading Permissions

Market bias is translated into directional permissions.

Examples:

  • Bias > Threshold → Allow Buy
  • Bias < -Threshold → Allow Sell
  • Otherwise → Neutral

The BFS system acts as a structural filter before trade execution.

Trade Execution

The EA validates:

  • directional bias
  • swing-break confirmation
  • existing positions
  • bias reversal conditions

Orders are executed using the MQL5 CTrade framework.

Visualization

The EA visualizes:

  • swing nodes
  • graph edges
  • BFS levels
  • bullish and bearish classifications
  • current market bias
  • trading status

This allows traders to inspect the graph and verify traversal results directly on the chart.


Mentioned or Attached Files

Explicitly Attached Files

The article states that the following files are contained in the archive:

  • BFS Trading EA— Main Expert Advisor
  • BFS Graph Structures — Node and edge definitions
  • BFS Traversal Engine — Queue management and traversal logic
  • BFS Visualization — Chart rendering functions

Files Mentioned in the Text

  • Graph visualization objects
  • Trading logs
  • Market structure statistics

Statistics

  • Graph Theory Branch: Traversal
  • Traversal Algorithm: Breadth-First Search (BFS)
  • Graph Type: Directed Graph
  • Trading Components: 1 EA
  • History Modes: 3
  • Node Types: 2 (Swing High, Swing Low)
  • Traversal Method: Level-Order
  • Market Bias Output: Continuous Score
  • Execution Engine: CTrade

Tags

MQL5, MetaTrader5, Graph-Theory, Breadth-First-Search, BFS, Market-Structure, Swing-Trading, Algorithmic-Trading, Expert-Advisor, Directed-Graphs, Graph-Traversal


Difficulty

Advanced

Requires familiarity with:

  • MQL5 Expert Advisor development
  • Market structure concepts
  • Swing high and swing low analysis
  • Graph theory fundamentals
  • Breadth-First Search traversal
  • Queue-based algorithms
  • Trading system design
  • Risk management principles

Limitations

  • The repository is derived from article content and should be treated as a reference reconstruction unless the archive files are actually present.
  • BFS evaluates structural relationships and does not predict future prices.
  • Results depend on swing detection parameters and historical context selection.
  • Market conditions may affect structural interpretations.
  • Visualization complexity may increase on lower timeframes with large numbers of detected swings.
  • No performance claims beyond the article description should be assumed.
  • The article describes code and file roles, but full verification of attached source completeness is not possible from the processed input alone.

Reference

Original MQL5 Article: https://www.mql5.com/en/articles/20856