1 Study of Heiken Ashi Candlestick for Noise Reduction William Tchoudi LIGS University, USA Abstract In this study, we examined Heiken Ashi's ability to reduce the noise when the traditional candlestick bars are transformed into Heiken Ashi candlesticks. The transformed candlestick is done by a python program. The entropy is calculated at a given confidence level for both traditional candles and Heiken Ashi. By assumption, the noise is measured by the entropy. The higher the value of the entropy, the more pronounced the noise is. The hypothesis test for Heiken Ashi showed accepted results, and the Heiken Ashi candle entropy is lower than traditional candles. Keywords: Entropy, Heiken Ashi, Candlestick, Hypothesis Test, Noise, Prices 1. Introduction The goal of this part is to propose to traders a new approach to technical analysis based on time series analysis. We have chosen a Heiken-Ashi (HA) base analysis to mix with the fundamental analysis. One big challenge for traders is to determine the right entry signal into the market. A lot of trading indicators exist out there, but none of them is absolute, so traders use different techniques in a single strategy. Also, high-frequency trading uses trading techniques programmed with algorithms that allow them to handle thousands of orders per second. High- frequency trading is the most important cause of the market noise that makes today's financial markets noisier than they used to be before the era of algorithmic trading. So is Heiken Ashi value enough in that task to help technical analysis to perform robust trading strategy? In this study we handle the following points: 2 ο‚· Show visually the difference between Heiken-Ashi Candle stick and the normal candle stick in term of noise vision. ο‚· Evaluate Heiken-Ashi price entropy as a noise measurement and compare it to the real price ο‚· Perform hypothesis testing with a target probability of prediction of 0.7. ο‚· Build a simple trading strategy with Heiken-Ashion the basis and other technical indicator. The study is divided in many section, Part 2: key concept of using Heiken Ashi. Part 3: Noise modeling. 2. Context of using Heiken Ashi 2.1.Heiken-Ashi (HA) The Heikin-Ashi (HA) technique combines price data to create a Japanese candlestick chart, filtering out market noise and providing an immediate prediction of the trend on the market's next bar move. Heiken-Ashi charts share similar characteristics with traditional candlestick charts, but vary according to the values used to construct each candle. The HA technique uses a modified formula based on two-period averages instead of using the open, high, low, and close charts like traditional candlestick charts. It provides a cleaner look to the map, making identifying patterns and reversals easier. Modified Open, High, Low, and Close are defined as follows [2]: π»π‘ŽπΆπ‘™π‘œπ‘ π‘’( ) = 𝑂𝑝𝑒𝑛( ) + π»π‘–π‘”β„Ž( ) + πΏπ‘œπ‘€( ) + πΆπ‘™π‘œπ‘ π‘’( ) 4 π»π‘Žπ‘‚π‘π‘’π‘›( ) = π»π‘Žπ‘‚π‘π‘’π‘›( ) + π»π‘ŽπΆπ‘™π‘œπ‘ π‘’( ) 2 π»π‘Žπ»π‘–π‘”β„Ž( ) = π‘€π‘Žπ‘₯(π»π‘–π‘”β„Ž( ), π»π‘Žπ‘‚π‘π‘’π‘›( ), π»π‘ŽπΆπ‘™π‘œπ‘ π‘’( )) π»π‘ŽπΏπ‘œπ‘€( ) = 𝑀𝑖𝑛(πΏπ‘œπ‘€( ), π»π‘Žπ‘‚π‘π‘’π‘›( ), π»π‘ŽπΆπ‘™π‘œπ‘ π‘’( )) 3 2.2. Assumptions ο‚· We base our analysis on trend consideration because trend uses the history of the movement to give the evolution slope of the prices, which are all linked to volume. Some indicators can be used to validate some mathematical logic analysis; it is the case of the moving average, where it is not possible to have a bearish market with a bullish moving average. The trend can be used to predict the market's next move. ο‚· Handle noises: The market is full of noises that we should consider in our analysis. That is why we chose to use Heiken-Ashi Candlesticks instead of normal prices that carry all the noise. 2.3. Why using Heiken Ashi method In this section, we perform the transformation of normal prices to Heiken-Ashi prices and then study the probability of a good prediction of the market movement. In this approach, we use time series comparison. The past data is divided into two parts: one is for modelling Heiken-Ashi prices, and the second is the benchmark real data to evaluate the prediction probability of the market move using Heiken-Ashi Bars. The next figure shows the candlestick bars for AAPL daily for the last 5 months. Figure 1: Candle stick Bars historic daily Stock price of AAPL The green bars represent the up-price movement and the red bars are the down-price movement. In this figure above, we can observe the noises which are represented by many little candles that 4 stick most of the time up in a bearish trend and down in a bullish trend. In a noisy market, the quasi-reversal of prices can mislead the trading based on the original price observation. That is why In our approach, we propose to first remove the noise while consolidating the trend. Thus, the Heiken-Ashi candlestick is an option to handle that situation, and we develop some analysis to evaluate how satisfying the method is. The figure below shows the same graph with Heiken-Ashi candlesticks. Figure 2: Heiken-Ashi Candlestick Bars historic daily Stock price of AAPL The blue bars represent the up-modified price movement, and the red bars represent the down- modified price movement. We can observe the trend now because the noise is reduced and it is better for traders to identify bullish and bearish trends with many consecutive bars of the same colour and a pronounced slope. When Heiken-Ashi candlestick bars appear, a colour indicates the trend, thus indicating the prediction of the next bar. So in this study, we are going to determine the statistics of good predictions and validate the accuracy of the method. The study was conducted over one year of historical prices of 10 different stocks. The goal of the analysis is to determine the accuracy of the next day's prediction with Heiken- Ashi. In each graph, we determine the probability of a good prediction. A good prediction is made when the same colour bar is maintained. When it changes, the prediction is false. 5 So we handle this problem by introducing the entropy measure in order to quantify the noise and make a comparison between the raw data market and the Heiken-Ashi data, and then calculate the cumulated percentage of the good trend prediction. 3. Noise Modeling 3.1.Entropy Approach to Evaluate Noise In this section, we choose to use entropy to evaluate the noise. The base hypothesis is to consider that if during a certain time series period the market establishes a trend, for example, with all bars only bullish or only bearish, that means there is no noise, therefore the entropy is zero for that period. So, the uncertainty can be modelled with the reversal of the bar. It is done by a bearish bar that turns bullish or a bullish bar that turns bearish, so this is the origin of the volatility. The reversal market is indeed uncertain, thus a measure of the uncertainty of the trend can be applied. a) Notion of Entropy Entropy is the measure of the uncertainty. The entropy of a discrete random variable is calculated by the following formula [1]: 𝐻(𝑋) = βˆ’ βˆ‘ 𝑃(π‘₯ ) πΏπ‘œπ‘”(𝑃(π‘₯ )) (1) From this formula above, X is the discrete random variable with values by the set of xk 𝑋 = {π‘₯ , π‘₯ … … π‘₯ }, 𝑃(π‘₯ )is the probability of the event xk. b) Calculation of the probability We modelling this problem as a space Ω which is time series over the studied period of time with N days typically for a year N=251. There is two trend direction the up direction (bullish)and the down direction (bearish) and during a period of time the two movements alternate. ο‚· Assumptions o Successive bars in same directions are considered as a partition each partition and the total number on bar for all partitions is Np o The reversal bar is a transition and the total number of transitions is Nr 6 o The total bars studied day period N is the sum of the total partitions and the total transition 𝑁 = 𝑁 ( ) + 𝑁( ) (2) o The discrete random variableX is a set of xkpartitions and transitions each partition is made by npnumber of bar and transition is only one bar each time 𝑁 ( ) = βˆ‘ 𝑛 (3) 𝑁 ( ) = βˆ‘ 𝑛 π‘€π‘–π‘‘β„Ž 𝑛 = 1 (4) Figure 3: Consideration of trend number of bars The probability for either a partition or a transition is then calculated by: 𝑃(π‘₯ ) = π‘€π‘–π‘‘β„Ž π‘˜ ∈ {𝑝, π‘Ÿ} (5) The uncertainty in this scope comes from the difficulty of predicting the next day and the risk of losing money. Thus, a certain trend during a period is good for investors and increases the probability of making money. However, the noise misleads the prediction and for day traders it is a real puzzle. That is why we propose to study an analytic method that focuses on the trend and hides the noise. The cumulative probability of a good prediction is done by: 𝑃 𝑋 = π‘₯ = βˆ‘ (6) 7 3.2. Analysis of the results for Heiken-Ashi Analysis and trend cumulative probability For the study, we computed 20 companies’ data from all sectors. Then we computed the entropy from raw data provided by the market and the calculated Heiken-Ashi (HA). The tab below shows the computed results. Tab 1: Computed data of entropy and cumulative prediction probability ticker Raw Entropy Raw Prediction Probability HA entropy HA Prediction Probability FB 5.14 0.47 4.37 0.72 AAPL 5.12 0.49 4.07 0.68 AMG 5.13 0.47 4.3 0.7 AMZN 5.13 0.47 4.15 0.69 MSFT 5.04 0.51 4.41 0.71 AOS 4.86 0.49 4.2 0.75 MMM 5.05 0.52 4.18 0.74 AFL 5.1 0.45 4.41 0.69 ABT 5.0 0.5 4.47 0.7 CTL 4.98 0.47 4.35 0.74 AES 4.89 0.5 4.16 0.72 LNT 5.05 0.52 4.41 0.75 ABBV 4.97 0.49 4.39 0.73 ALB 5.06 0.47 4.09 0.7 T 4.89 0.48 4.44 0.72 VLO 4.79 0.52 4.25 0.72 WMB 4.8 0.49 4.35 0.73 ARE 5.06 0.51 4.35 0.75 AMT 4.8 0.55 3.9 0.76 MO 5.16 0.45 4.1 0.76 The quick observation reveals that the raw entropy for each raw HA is less than the raw entropy, and the probability of prediction for HA is greater than the calculated raw probability. The average results 8 Table 2: Mean data of entropy and prediction probability Mean entropy Raw 5.001 Mean Prediction Raw 0.491 Mean entropy HA 4.2675 Mean prediction HA 0.723 The HA mean entropy is lower than the raw entropy. This means that the HA market is less uncertain than the original raw market. At the same time, we observe that with HA we have a mean 72% chance of predicting the next day, and with the raw market we have only a 49% chance of predicting the next day. So, using HA is good enough in a noisy environment. At this stage, we do not know if the cumulative probability we introduced in this study as a measure is good as criteria. That is why we evaluate it with the correlation study. Figure 3: Entropy and Prediction Probability of Raw market with Pearson’s r. Correlation On the graph of Figure 3, we have a negative correlation, which means the higher the probability is, the lower the entropy is.. The dispersion we observe in the Heiken-Ashi case is due to the fact that the value of the entropy increases with the number of small trend periods and the reversal trend. This fact can explain why, with Heiken-Ashi, the negative correlation is not too much pronounced. In real life, predicting the next move with 70% accuracy is a good bet for a trader, so we will perform Hypothesis Testing. 9 3.3. Hypothesis Testing To validate the prediction rate, we perform hypothesis testing in the raw market and the Heiken- Ashi transformed market. The necessity of this test is to provide investors more evidence of whether the Heiken-Ashi is acceptable for investors as a strategy or if the raw market is already set for that despite the noises. a) Null (H0) and Alternative (H1) Hypothesis In real life, if a trader can predict the next move with more than 50% accuracy, it is already a good task, but the goal of a financial analyst is to guarantee the investor better with a minimum possible. Thus, we will test a minimum guarantee of 70% accuracy to predict the next day's market move and compare the raw data with the Heiken-Ashi data. So we ran two hypothesis tests: ο‚· H0 :𝑝 β‰₯ 𝑝 and H1 : 𝑝 < 𝑝 ο‚· p ∈ {0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80} b) Level of Significance and Confidence For our study we chose a significance 𝛼 = 0.05 this mean the Confidence C is: 𝐢 = 1 βˆ’ 𝛼 = 0.95 (7) We apply this significance for the two Hypothesis testing to run. c) Computing of the different testing We stop the test when the null is rejected for the Left tail test. Table 3: p-value results p0 Stdraw Stdha Z-Score raw Z-Score ha P-value raw P-value ha Decision Raw a = 0.05 Decision HA a = 0.05 0.7 0.03 0.02 -7.0 1.0 0.0 0.1587 Rejet H0 Accept H0 0.71 0.03 0.02 -7.33 0.5 0.0 0.3085 Rejet H0 Accept H0 0.72 0.03 0.02 -7.67 0.0 0.0 0.5 Rejet H0 Accept H0 0.73 0.03 0.02 -8.0 -0.5 0.0 0.3085 Rejet H0 Accept H0 0.74 0.03 0.02 -8.33 -1.0 0.0 0.1587 Rejet H0 Accept H0 0.75 0.03 0.02 -8.67 -1.5 0.0 0.0668 Rejet H0 Accept H0 10 0.76 0.03 0.02 -9.0 -2.0 0.0 0.0228 Rejet H0 Rejet H0 0.77 0.03 0.02 -9.33 -2.5 0.0 0.0062 Rejet H0 Rejet H0 0.78 0.03 0.02 -9.67 -3.0 0.0 0.0013 Rejet H0 Rejet H0 0.79 0.03 0.02 -10.0 -3.5 0.0 0.0002 Rejet H0 Rejet H0 0.8 0.03 0.02 -10.33 -4.0 0.0 0.0 Rejet H0 Rejet H0 With a confidence of 95%, the result of this study reveals that with Heiken-Ashiwe can predict the next move with 75% accuracy. In conclusion of this study, Heiken-Ashi is recommendable for technical analysis as a trend indicator and can be coupled with other indicators to make trading decisions like: ο‚· Moving Average Convergence Divergence (MACD) is a measure of the divergence between two moving averages. ο‚· The Commodity Channel Index (CCI) ο‚· Exponential Moving Averages (EMA) 4. Conclusion In this paper, we used HA to address the problem of market noise. The value of the noise is calculated by the measure of the entropy. We calculated the HA candle stick and the comparative study between the entropy of the HA candlestick and the entropy of the market candle stick. The mean entropy of HA for the studied sample is lower than the mean entropy of the raw price market, and the probability of prediction of the next move was also greater for HA than for the raw price market. Those results demonstrated that the HA is less noisy. The hypothesis test with a confidence level of 0.95 on the probability of predicting the next move of the market was accepted for HA at 0.70 until 0.75 and was rejected for the raw price market at 0.7. We concluded that using HA as a market mirror increases the chance of a good next move prediction. 11 Appendix 1. Heiken Ashi plot code import matplotlib.pyplot as plt from mpl_finance import candlestick_ohlc import pandas as pd import matplotlib.dates as mpl_dates import numpy as np ticker = "AAPL" data = pd.read_csv("PortfolioData/02_apple_ohlc.csv") def get_heiken_ashi_ohlc(df): ha_close = (df['open'] + df['close'] + df['high'] + df['low']) / 4 ha_open = [(df['open'].iloc[0] + df['close'].iloc[0]) / 2] for close in ha_close[:-1]: ha_open.append((ha_open[-1] + close) / 2) ha_open = np.array(ha_open) date = df['date'] elements = df['high'], df['low'], ha_open, ha_close ha_high, ha_low = np.vstack(elements).max(axis=0), np.vstack(elements).min(axis=0) ha_ohlc = pd.DataFrame({ 'open': ha_open, 'high': ha_high, 'low': ha_low, 'close': ha_close, 'date': date }) return ha_ohlc #def get_heiken_ashi_ohlc(data): # ha_ohlc = pd.DataFrame() # ha_ohlc['date'] = data['date'] # ha_ohlc['HaClose'] = (data['close']+data['open']+data['high']+data['low'])/4 # ha_ohlc['HaOpen'] = # return ha_ohlc ha_ohlc = get_heiken_ashi_ohlc(data) 12 def plot_candle_stick(data,ticker,color1,color2): plt.style.use('ggplot') ohlc = data.loc[:, ['date', 'open', 'high', 'low', 'close']] ohlc['date'] = pd.to_datetime(ohlc['date']) ohlc['date'] = ohlc['date'].apply(mpl_dates.date2num) ohlc = ohlc.astype(float) # Creating Subplots fig, ax = plt.subplots(figsize = (10, 5)) candlestick_ohlc(ax, ohlc.values, width=0.6, colorup=color1, colordown=color2, alpha=0.8) # Setting labels & titles ax.set_xlabel('Date') ax.set_ylabel('Price') fig.suptitle('Daily Candlestick Chart of '+ ticker) # Formatting Date date_format = mpl_dates.DateFormatter('%d-%m-%Y') ax.xaxis.set_major_formatter(date_format) fig.autofmt_xdate() fig.tight_layout() plt.show() #plot_candle_stick(data,ticker,"green","red") def plot_candle_stick_ha_ma(data,data_ha,ticker,color1,color2,colorma,typema): plt.style.use('ggplot') ohlc = data.loc[:, ['date', 'open', 'high', 'low', 'close']] ohlc_ha = data_ha.loc[:, ['date', 'open', 'high', 'low', 'close']] ohlc_ha['date'] = pd.to_datetime(ohlc_ha['date']) ohlc_ha['date'] = ohlc_ha['date'].apply(mpl_dates.date2num) ohlc_ha = ohlc_ha.astype(float) # Creating Subplots fig, ax = plt.subplots(figsize = (10, 5)) candlestick_ohlc(ax, ohlc_ha.values, width=0.6, colorup=color1, colordown=color2, alpha=0.9) # Setting labels & titles ax.set_xlabel('Date') ax.set_ylabel('Price') fig.suptitle('Daily Candlestick Chart of'+ ticker) # Formatting Date 13 date_format = mpl_dates.DateFormatter('%d-%m-%Y') ax.xaxis.set_major_formatter(date_format) fig.autofmt_xdate() fig.tight_layout() ohlc[typema] = ohlc['close'].rolling(10).mean() ax.plot(ohlc_ha['date'], ohlc[typema], color=colorma, label=typema) fig.suptitle('Daily Candlestick Chart of '+ ticker +' with '+typema) plt.legend() plt.show() plot_candle_stick(data,ticker,"green","red") plot_candle_stick(ha_ohlc,ticker,"blue","red") plot_candle_stick_ha_ma(data,ha_ohlc,ticker,"blue","red",'black', 'EMA10') References [1] Gray, Robert M. Entropy and Information Theory. Springer Science & Business Media, 2013. [2] Roy Trivedi, S. Technical analysis using Heiken Ashi Stochastic: To catch a trend, use a HASTOC. Int J Fin Econ. 2022; 27: 1836– 1847. https://doi.org/10.1002/ijfe.2245