Catching Market Reversals in Python
How to Create a Simple Contrarian Trading Strategy in Python
--
Combining indicators is the first key to finding good strategies. In this article an indicator based on moving averages will be combined with the well-known Relative Strength Index to find interesting trading signals.
Medium is a hub to interesting reads. I read a lot of articles before I decided to start writing. Consider joining Medium using my referral link (at NO additional cost to you).
The Moving Average Distance Index
This is a plain simple indicator where we analyze the distance of the market’s price relative to its moving average. Here are the steps to do so:
- Calculate a 20-period moving average on the market’s price.
- Subtract each closing price from the 20-period moving average.
- Calculate a 60-period standard deviation of the result from step 2.
- Calculate a 60-period moving average of the result from step 2.
- Calculate the bounds using the Bollinger Band’s intuition.
The above chart shows hourly values on the USDCAD with the Moving Average Distance Index — MADI in the second panel, we have chosen a 20-lookback period of the moving average with a 60-period volatility bands and a 3 standard-deviation factor.
# The function to add a number of columns inside an array
def adder(Data, times):
for i in range(1, times + 1):
new_col = np.zeros((len(Data), 1), dtype = float)
Data = np.append(Data, new_col, axis = 1)
return Data# The function to delete a number of columns starting from an index
def deleter(Data, index, times):
for i in range(1, times + 1):
Data =…