Predicting the movement of the next candle in financial markets is a challenging task. But it’s one that many traders and investors attempt to do in order to make informed decisions.
In this blog post, we’ll explore some of the approaches you can use to analyze historical OHLC (Open, High, Low, Close) daily candle data and predict the most probable direction and movement of the next candle based on the movement and direction of the preceding x number of candles.
Before we dive into the post, let’s get the disclaimer out of the way! This is all theoretical and hypothetical. Meaning even the theories explored here are based on the assumption – “history repeats itself”.
While the generic OHLC data sequences and patterns may repeat periodically, there are certain outliers and extreme conditions that may never repeat (or repeats in a really long cycle). So please don’t take this as trading advise or even advise to base your analysis. Please do your own due diligence before placing trades.
Approach 1: Machine Learning Techniques

Regression and Classification Algorithms
One approach to predicting the movement of the next candle is to use machine learning techniques such as regression and/or classification algorithms. Regression algorithms can help predict the magnitude of the next candle movement, while classification algorithms can help predict the direction of the next candle movement.
To use these algorithms, you will need to first preprocess the data by cleaning, normalizing, and transforming it into a format suitable for machine learning. You can then use algorithms such as linear regression, support vector machines (SVM), decision trees, or neural networks to predict the movement and direction of the next candle based on the preceding x number of candles.
Python Example with OHLC
First, let’s assume that we have a dataset of OHLC daily candle data for EURUSD for the past 200 days. The data includes the Open, High, Low, and Close prices for each day. We want to use linear regression to predict the movement (i.e., the difference between the Close price of the current day and the Close price of the previous day) of the next candle based on the movement of the preceding x number of candles.
Here’s how we can do it using Python and scikit-learn, a popular machine learning library in Python:
(below code is not tested and purely a draft, only to elaborate the concept)
import pandas as pd
from sklearn.linear_model import LinearRegression
# Load the OHLC daily candle data into a pandas DataFrame
data = pd.read_csv('eurusd_ohlc.csv')
# Calculate the movement (i.e., difference between the Close price of the current day and the Close price of the previous day)
data['movement'] = data['Close'].diff()
# Specify the number of preceding candles to consider
preceding_candles = 5
# Create a new DataFrame that includes the movements of the preceding candles
df = pd.DataFrame()
for i in range(preceding_candles, len(data)):
row = []
for j in range(preceding_candles):
row.append(data.iloc[i-j-1]['movement'])
row.append(data.iloc[i]['movement'])
df = df.append(pd.Series(row), ignore_index=True)
# Split the data into training and testing sets
train_size = int(len(df) * 0.8)
train = df[:train_size]
test = df[train_size:]
# Split the data into input features (i.e., movements of the preceding candles) and target variable (i.e., movement of the current candle)
X_train = train.iloc[:, :-1]
y_train = train.iloc[:, -1]
X_test = test.iloc[:, :-1]
y_test = test.iloc[:, -1]
# Create a linear regression model and fit it to the training data
lr = LinearRegression()
lr.fit(X_train, y_train)
# Use the model to predict the movement of the next candle based on the movements of the preceding candles in the testing set
y_pred = lr.predict(X_test)
# Evaluate the model's performance by calculating the root mean squared error (RMSE) of the predictions
from sklearn.metrics import mean_squared_error
import numpy as np
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print('RMSE:', rmse)
In this example, we first load the OHLC daily candle data into a pandas DataFrame and calculate the movement (i.e., the difference between the Close price of the current day and the Close price of the previous day). We then specify the number of preceding candles to consider (in this case, 5), and create a new DataFrame that includes the movements of the preceding candles as input features and the movement of the current candle as the target variable.
Next, we split the data into training and testing sets, and create a linear regression model using scikit-learn’s LinearRegression class. We fit the model to the training data and use it to predict the movement of the next candle based on the movements of the preceding candles in the testing set.
Finally, we evaluate the model’s performance by calculating the root mean squared error (RMSE) of the predictions. The lower the RMSE, the better the model’s performance.
Next steps
This is just one example of how to use a regression algorithm to predict the movement of the next candle based on the movement of the preceding candles. There are many other regression algorithms and there are many other regression algorithms and variations that can be used for different types of data and applications.
Some examples include polynomial regression, ridge regression, lasso regression, and elastic net regression. The choice of algorithm will depend on the nature of the data and the specific problem at hand.
In addition to scikit-learn, there are many other machine learning libraries and frameworks available in Python, including TensorFlow, PyTorch, Keras, and XGBoost, among others. These libraries offer a wide range of regression algorithms and tools for data preprocessing, feature engineering, and model evaluation.
Overall, regression is a powerful machine learning technique that can be used to make predictions and infer relationships between variables. By understanding the basic principles and concepts of regression, and by using the right tools and techniques, it is possible to build accurate and effective models for a wide range of applications.
Approach 2: Statistical Analysis Techniques

Statistical analysis with ARIMA models
Another approach to predicting the movement of the next candle is to use statistical analysis techniques such as time-series analysis, autoregression models, or ARIMA models. These techniques can help identify patterns in the data and make predictions based on past data.
To use these techniques, you will need to first analyze the time series data and identify any trends, seasonality, or cycles in the data. You can then use models such as autoregressive integrated moving average (ARIMA) models to predict the movement and direction of the next candle based on the past data.
Financial Market Cycles
All in all, the fundamental assumption is that the “seasonality and cycles do exist in financial markets”. This seems quite obvious, because the whole world revolves around daily, weekly, monthly and annual, cycles and seasons. But when you analyze a monthly candle chart of a major forex pair for example, does not have a visible complete cycle.
So the argument remains, whether the financial markets do have cycles. Nevertheless the cycles or the dynamics of the overall fluctuation (if you don’t like the term cycles) do seem to evolve overtime with the changes that affect global finance.

Forex currency pair is literally a relative indicator of two economies represented by currencies. The gazillion of reasons that can affect an economy is not quite the same 50 years ago from now. Just to emphasize the difference, there were no cellphones 50 years ago!
At the same time the earth’s four seasons were quite the same as now (give or take few deviation points due to the carbon footprint of the homo sapiens). So, sectors like agriculture, energy, transport, health do have to go through some cyclical financial curves.
While there has to be some fragments of cycles or seasonality in forex charts for example, non cyclical vectors can distort the cycles of economies for the better or worse. Example of such non-cyclical vectors are : like banking, technology, science, education, politics and leisure.
This the ideal position would be to understand the dynamics of the market and appreciate all three attributes: 1. the repetitive fragments, 2. fractal nature and 3. ever evolving attribute (some may even call it randomness).
Conclusion:
Predicting the movement of the next candle in financial markets is a complex and challenging task, but there are various approaches you can use to analyze historical OHLC daily candle data and make informed predictions. Whether you choose to use machine learning techniques, statistical analysis techniques, or a combination of both, it’s important to evaluate the accuracy of the predictions using historical data and adjust the models accordingly.
Remember that predicting the movement and direction of the next candle is not a foolproof method, and there is no guarantee that any approach will provide accurate predictions. It’s always important to do your own research, monitor the market closely, and use multiple sources of information to make informed decisions.