Fractal DCA system fundamentals

The system is designed to continuously monitor assets price movements, identifying bases formations, and providing alert notifications when these bases and/or layers are either breached or adhered to

System settings are adjusted by machine learning model applied to historical price action data.


  1. provides advanced AI-driven trading automation solutions, catering to the needs of both beginner and seasoned traders. These tools are designed to facilitate efficient portfolio management and the straightforward sharing of strategies.

  2. The algorithmic component forms a core aspect of the trading system.

  3. It is important to recognize that any trading system may experience periods of both success and underperformance. Therefore, performance statistics should be assessed over an extended timeframe.

  4. Effective money and risk management are crucial factors influencing trading outcomes. is engineered to streamline trading processes, offering users seamless access to automated portfolio management and equal opportunities in the trading environment.

Table of Contents

Release Notes

System structure and Identification of Bases

Understanding Layering Functionality

Automated trading with

Release Notes

These major features and enhancements were introduced since the first launch of the system in November 2021

  1. Enhanced script efficiency for faster compilation and integration;

  2. Introduced a "Layer Settings" section for customized layer configurations;

  3. Added options for setting a take profit percentage;

  4. Exchange commissions implemented into statistic calculations;

  5. Implemented a new "Take Profit" plot series, including a data point in the data window, to facilitate trade closure at the current base line;

  6. Added a plot series to display emerging bases during active trades on the current base line;

  7. Introduced an option to make custom early trade exits including after reaching breakeven;

  8. Implemented a setting for enhanced trade exit strategies;

  9. Adjusted the minimum layer value for Layer 1 to exchanges’ “minNotional” filter;

  10. Modified the start month condition to a calendar month basis for improved initial rendering of base lines;

  11. Consolidated all "Layer # Cracked" and "Layer # Respected" X-crosses into a unified "Layer # Cross" set to streamline the Data Window list;

  12. Eliminated base/layer line shifts to the Base Marker to simplify chart rendering calculations;

  13. Added option to set custom exit conditions at each Layer;

  14. System is rebuilt from PineScript programming language to Python using libraries: TA-lib, python-binance, CCXT, scikit-learn;

  15. Implementation of Machine Learning based on scikit-learn;

  16. Added Bayesian classifier and obtain the corrected indicator’s values;

  17. Implemented labeled Elliott wave data once a month for additional model training;

  18. Enhanced Signal Issuance Module based on Python 3.10, making decisions based on model predictions, and sending trading signals according to the second-level trading strategy algorithm, implemented using the TA-lib library, in the form of a JSON file to the panel via Webhook;

  19. Enhanced integration of Fractal DCA system with Machine Learning extension to ensure seamless and adjusted to market conditions signals production for SmartBot public beta test launch

System structure and Identification of Bases

The system is engineered to detect pivot lows within a fractal configuration, subsequently verifying their eligibility as bases in alignment with the principles of fractal strategy trading. The validation process for a pivot low encompasses several checks:

  • Confirmation that the rate of change in price during declines and rebounds surpasses a specified threshold;

  • Verification that the volume at the pivot low exceeds the moving average of volume, determined by a predefined length;

  • Assurance that the volume magnitude significantly exceeds the moving average of volume;

  • Assessment to ensure that the newly identified base is sufficiently distanced from the previous range, employing a specific percentage difference threshold in price.

Understanding Fractal Patterns

A fractal pattern represents a repetitive configuration observable on price charts, which is instrumental in forecasting reversals amidst broader, more erratic price movements. These fundamental fractals typically consist of five or more bars. The criteria for fractal identification are as follows:

  • A bearish turning point is identified by a pattern where the central bar has the highest high, flanked by two lower highs on each side.

  • A bullish turning point is marked by a pattern where the central bar has the lowest low, surrounded by two higher lows on each side.

The fractals depicted in Figure 1 exemplify ideal patterns. It is important to note that while numerous variations of less perfect patterns may occur, the essential structure of the fractal must be preserved for its validity.

A notable limitation of fractals as a system is their inherent nature as lagging indicators. Specifically, a fractal cannot be established until a minimum of three bars have completed on the price chart. In the context of the Fractal trading strategy, it is the bullish fractal pattern that is utilized for base identification.

The system is equipped with a feature that permits customization of the number of bars that constitute the bullish fractal. The default configuration is set to a 6-bar fractal pattern. This pattern is instrumental in validating price declines and subsequent rebounds. In the latest update, the algorithm has been modified to accommodate a more flexible approach in analyzing the lows of each bar during these declines and rebounds. Instead of requiring a strictly ascending sequence, the revised algorithm focuses on confirming that the pivot point is indeed the lowest, and that the observed declines and rebounds surpass the pre-established ranges.

Validation of Cracks and Bounces

The process of validating cracks and bounces begins with the identification of a bullish fractal pattern, as per the system's fractal pattern settings. Upon recognizing such a pattern, the system counts the bars to the left and right of the lowest pivot point and then calculates the Price Rate of Change (ROC).

The Price Rate of Change is a momentum indicator that quantifies the percentage difference in price between the current price and the price from a specified number of periods ago. The ROC is determined using the following formula:

ROC = (Most recent closing price - Closing price n periods ago) / Closing price n periods ago x 100

As demonstrated in Figure 2, the system employs a 3-3 fractal pattern to calculate the ROC. In this example, the ROC for the Price Drop was computed to be 19.72%, and the ROC for the Price Bounce was 22.94%. These two values are then compared against the predefined “Minimum Price Drop (%)” and “Minimum Price Bounce (%)” settings.

Should the ROC values for both Price Drop and Bounce surpass the established thresholds, the base is deemed valid and qualifies for additional validation. Settings either of these parameters to zero (0) implies that the system will bypass this validation step and accept any bullish fractal pattern as valid

Volume Validation Methodology

In accordance with the principles of Fractal trading, volume plays a crucial role in validating a base. It is primarily used to corroborate the market's robust response in preventing a further decline in price. This is typically evidenced by a "spike" in volume on the price chart, signaling a strong market reaction to the current price level.

Moreover, the Fractal trading system acknowledges that volume analysis is particularly pertinent at lower timeframes, where block trades occur. These block trades may not be as discernible in higher timeframes (e.g., on a 1-hour chart). Consequently, while the system incorporates Volume Analysis to gauge the market's reaction at a potential base, this feature is not activated by default, given its optional nature.

Volume analysis involves scrutinizing the quantity of shares or contracts traded within a specific timeframe. This analysis is a key tool for technical analysts, who integrate it with other indicators to inform their trading strategies. By examining volume trends alongside price movements, investors can ascertain the significance of price changes in a security.

The system executes volume analysis through two distinct methods:

  1. Comparison of the volume at the low pivot point against the volume moving average, based on the following criterion:

([Volume at Low Pivot] > [Volume Moving Average at Low Pivot]) = True

  1. Application of a multiplication factor to the volume, ensuring it surpasses the volume moving average by a specified margin:

([Volume at Pivot Low] > [Volume Moving Average at Pivot Low x Factor]) = True

In the following example, 12.599K is greater than 7.784K x 1.25 (equals to 9.73K):

Ensuring adequate spacing between bases

The system possesses the capability to be configured in such a manner that it spaces out the formation of new bases at a predetermined distance from the existing base. This feature is instrumental in preventing the occurrence of multiple bases being identified near one another. The left chart has 3 base lines that are very close together.

Figure 5 – 5% percent of change for new bases

Base Line Placement

The system supports configurable settings for determining the positioning of the base line. This line can be set at the low point of the bar, or alternatively, at the lower value between the opening and closing prices. A comparative analysis of these two distinct options is presented, utilizing the same fractal pattern for evaluation.

A critical consideration in this context is that if the bar defining the pivot low (termed as the Base Reference Bar) exhibits a lower value than either of the two placements, then the placement will default to utilizing the low of the Base Reference Bar.

Understanding Layering Functionality

Elucidation of Layers and Their Respective Unit Types

The system is designed to accommodate a maximum of nine (9) distinct layers, each equipped with its own set of crack and respect alerts. Layers can be set dynamically through API requests or preconfigured at a position start; unit value can be configured in two ways:

  1. as a percentage of the price,

  2. as a fixed quantity (such as BTC, USD, etc.). Assigning a value of zero (0) to a layer effectively deactivates it

A “respected” layer definition

In the system's framework, a layer is classified as “cracked” when the market price descends beneath the specified layer price threshold. An alert is activated whenever this occurs. However, the criteria for a layer being acknowledged as “respected” can be determined through one of two selectable options. A layer is recognized as respected based on the following price action scenarios:

  1. "Respected Base" - means that the system will consider all layers that are cracked below the base as respected when the price action returns to the base after a base crack. For example, consider this chart below:

As illustrated, the initial base along with layers 1 and 2 are breached. However, when the price subsequently ascends, the entire configuration is deemed adhered to upon the base being respected. Consequently, in this scenario, a total of four alerts are activated:

  • Base breached;

  • Layer 1 breached;

  • Layer 2 breached;

  • Base respected.

Moreover, it is noteworthy that no alert is generated upon the second breach of Layer 2. Therefore, under these settings, a layer is only recognized as breached once while the base breach is in effect. Once the base is respected, the system resets the states of the layers. Hence, if these layers are breached again post-reset, new alerts will be issued accordingly.

  1. "Cracks Next Layer First" - means that the system will consider all layers that are cracked below the base as respected when the price action returns to the layer after the layer below it is cracked. For example, consider the chart.

Again, the cracked state is restored when the price is returned to the base. While the last layer will never be considered respected since there is no “Next Layer” to be cracked.

Duration of layered trading activity

The duration of layered trading within the system is adjustable, allowing to define the maximum permissible number of cracks per base. Upon reaching this threshold, the system ceases to issue alerts for further price movements across the layers. Instead, it shifts its focus to identifying new bases as they emerge. A base is deemed to be cracked upon the breach of the first layer.

The system offers a configurable option to set a maximum limit on the number of bars for which a layered trade can be active. Upon the breach of the 1st layer, the system initiates a count of the duration, in terms of bars, for which the trade remains active. Should this duration surpass the predefined maximum threshold, the system will then classify the base as disregarded and start recognizing new base candidates as they emerge. This feature is particularly beneficial in preventing the system from persisting indefinitely on the same base. By default, this setting is assigned a value of 0 bars, indicating that it is initially inactive.

The system additionally offers a feature to manage the initiation point for base detection. This functionality is crucial in ensuring that the detection process does not commence amidst an ongoing, long-duration cracked base. Such a scenario could potentially hinder the identification and charting of new bases, thereby impacting the effectiveness of the trading strategy. The system also provides the ability to control the starting point of the base detection so that you can ensure that you are not starting in the middle of a cracked base that is long running in duration, thus preventing new bases from being detected and place on the chart.

Risk management settings

The system is designed to incorporate a "Take Profit" feature, which enables to exit a trade following a base crack, thereby mitigating the risk of the base not being respected. Alongside the Take Profit functionality, the system also allows for the configuration of Break Even and Stop Loss parameters. These can be activated at predetermined layers, offering users the flexibility to tailor the timing of their application.

Furthermore, the system facilitates the input of specific exchange buy and sell commission rates. This inclusion is critical for refining the Take Profit calculations, ensuring they are as accurate as possible to realize the intended profit margins.

These configurations play a pivotal role in recalculating the Take Profit price line with each layer crack. It's important to note that the efficacy of this setting is contingent on the "Layer Is Respected When Price" being configured to "Respects Base." In scenarios where this is not the case, the Take Profit price line will experience an upward adjustment whenever layers are respected. Therefore, the optimal utility of this setting is realized when it is paired with the "Respects Base" configuration.

The calculation of the Take Profit line value will inherently treat the Stop Loss Percentage as a negative figure. Consequently, there is no requirement to specify a negative number for this setting.

Accompanying this text are screenshots that demonstrate diverse instances of these settings being applied within a chart context.

Automated trading with

The system is enhanced by a machine learning algorithm capable of classifying the current market phase. Utilizing the Bayesian classifier algorithm on pre-labeled data on a 1D timeframe, the model undergoes machine learning training. It helps to adjust the system in real time.

In the example below, the system is adjusted by ML to spread layers by 4% apart. As the price action falls and hits the layers, actions will trigger, and the asset will be purchased at the layer price and turn-around and sold at 4% above the layer price.

Skyrex's dashboard is designed to provide users with a user-friendly interface that simplifies cryptocurrency trading. Here's a description of the key features you can find on the Skyrex dashboard:

  • One-Click SmartBot Launch: At the center of the dashboard, users can easily launch the SmartBot with a single click. This feature streamlines the process of setting up and activating the AI-powered trading bot, allowing users to automate their trading strategies effortlessly;

  • Net Income Statistics: On the right-hand side of the dashboard, users can access real-time statistics related to their net income. This section provides a clear and concise overview of their trading performance, including profits and losses. Users can track their financial progress over time with interactive charts and graphs that display income trends;

  • Commission Information: Below the net income statistics, users can view detailed commission information. This section includes tables and charts that break down commission fees incurred during trading activities. It helps users understand the costs associated with their trades, allowing for better financial management.

Last updated