Thank you, this is great explanation of the idea! May I ask you some questions?
1. Have you used this in the real trade or this is just research now?
2. Did you try to add some other factors like corporate or macroeconomics news? For example, exclude from 5000 similar chart patterns those which didn't have any important news?
3. What software do you use for this analysis?
4. Did you try something else (DTW for example) instead of Euclidian metric? Euclidian metric requires the same windows length. But the closely-matching chart patterns can have small difference in the time window.
5. Did you analyze the shape of the chart patterns after the closely-matching prior chart patterns? Let's say for example take in account not only median and std of price change but Euclidian metric std.
6. How did you get 873,185 historical charts? By sliding window with one day offset?
7. Is your risk-adjusted return a difference between return and mean return of all 415ETF? Or something like SP500?
1. Have you used this in the real trade or this is just research now?
A few weeks ago, I started trading this (long trades only) with small amounts of real money for passively-managed, unleveraged, non-inverse ETFs (including ETNs, UITs, Grantor Trusts, and Commodity Pools). Most of the potential assets have asset class Equity according to etfdb.com, but there are a few with asset classes Alternatives, Commodity, Real Estate, and Volatility that are considered for trades. And although analyzed, I won't trade in anything that sends me a K-1 tax form (hard for U.S. tax filing).
I have traded this strategy before with some real money comparing chart representations of S&P 500 constituents with the S&P 500. This worked somewhat, but I wanted to try broader classes of assets to be less dependent on a single market.
2. Did you try to add some other factors like corporate or macroeconomics news? For example, exclude from 5000 similar chart patterns those which didn't have any important news?
This strategy only uses representations of price charts. Another strategy I'm using (genetic programming) does have other kinds of data but not news or fundamentals.
I have tested the genetic programming strategy with fundamental stock data from Morningstar in combination with price data to predict future price direction. But I gave up on using that because it's not clear when the data is available relative to the period for the data (e.g., Morningstar might add different companies' annual report data at different times). And the finest fundamental data granularity is trailing twelve month data which Morningstar calculates by extrapolating annual and quaterly data. So the fundamental data wasn't consistent enough for me to trust using it.
3. What software do you use for this analysis?
I developed the software for this k-nearest neighbor strategy and the genetic programming strategy. Some details are in
https://www.elitetrader.com/et/thre...your-edge-for-2019.329802/page-8#post-4809209
and
https://www.elitetrader.com/et/thre...your-edge-for-2019.329802/page-8#post-4809655
4. Did you try something else (DTW for example) instead of Euclidian metric? Euclidian metric requires the same windows length. But the closely-matching chart patterns can have small difference in the time window.
I tried unweighted Euclidean-type distances, and found the weighted versions with newer data more heavily weighted seemed to work better. I haven't tried any other kinds of distances measures. Assuming DTW stands for dynamic time warping, this looks like something worth investigating.
5. Did you analyze the shape of the chart patterns after the closely-matching prior chart patterns? Let's say for example take in account not only median and std of price change but Euclidian metric std.
No, I just calculated performance measures for the simulated future part of the prior chart patterns. I guess I could consider calculating distance metrics on this simulated future part of the prior chart patterns and use this to help decide to take a trade or not.
6. How did you get 873,185 historical charts? By sliding window with one day offset?
Yes. Each historical chart has 21 days of future data, 1 day of for the simulated trade entry, and 252 days for the history. And this would go back for up to 2,772 days (11 years) -- less when there is not enough historical data.
7. Is your risk-adjusted return a difference between return and mean return of all 415ETF? Or something like SP500?
The risk-adjusted return used for the simulated future part of the historical charts is the mean daily loss-equivalent-to-gain return divided by the sample standard deviation of the daily loss-equivalent-to-gain daily.
The daily loss-equivalent-to-gain return is ((todayClose - yesterdayClose) / min(todayClose, yesterdayClose)). So if the price goes from 100 to 120, the loss-equivalent-to-gain return is (120 - 100) / 100 == 0.2. If the price goes from 120 to 100, the loss-equivalent-to-gain return is (100 - 120) / 100 == -0.2. So if the price goes from 100 to 120 and back to 100, the mean of the loss-equivalent-to-gain returns would be (0.2 + -0.2) / 2 == 0.