“Harmonic” trading methods seek patterns in the relationships between neighboring peaks and valleys in the time series. Particularly, harmonic traders seek pre-specified ratios in the price differences among a series of peaks and valleys. For example, a trader might observe the following pattern:

Let A, B, C, D, and E be the points in the pattern at approximate times 200, 325, 400, 450, and 500, respectively. The a harmonic trader will first evaluate if the price distance between B and C is a certain proportion of the price difference between A and B. If so, they will then evaluate the whether the price difference between D and E is a certain proportion of the difference between C and D.

Advocates for harmonic trading promote patterns with ratios based on the Fibonacci sequence. This sounds like numerical mysticism to this author, but we liked the idea that certain patterns might correlate to changes in foreign exchange rates. However, we suspected that the patterns promoted in the harmonic trading literature were too few in number and too structured around faith in the Fibonacci ratios.

# Enter machine learning…

With hundreds of thousands of peak/valley patterns (ignoring ratios when selecting the patterns) from historical data we trained a classifier to recognize bull opportunities. In this case we computed the ratios, but instead of dictating reliance on the Fibonacci sequence, we let the computer decide which ratios are useful.

It is quite possible, though we haven’t checked, that we simply find some relationship with the Fibonacci numbers represented in the machine learning model’s coefficients.

We call this method “pseudo-harmonic” because, while we employ the basic pattern calculation strategy of the harmonic traders, we do not rely on their beliefs about which numbers generate a “harmonious” relationship.

# Performance

We’ll soon test this method with real money and get back to you regarding performance…

In the meantime, here is an ROC curve for the classifier for a representative cross-validation iteration: