About Algorithm Science
About Algorithm Science, SignalSolver and the JeX Framework
At Algorithm Science we make Excel based products which import, analyze and present online data in Excel format. One of our specialties is the import of historical stock data into Excel and so to fill the void after Yahoo! terminated its "ichart" service in 2017, we came up with two workarounds. One involves emulating the older URLs to minimize the changes necessary to older spreadsheet. The other taps into the newer JSON based feeds, providing real-time and historical prices. Many thousands of people are now using these functions to pull stock prices.
More recently, we have become interested in the rapidly increasing number of JSON data sources online. The world is moving away from CSV and embracing JSON. To help Excel users with the transition, we have developed a framework for extracting such data into Excel without the need for users to know any VBA. All you need to do is study the JSON data to see where the values of interest are, and enter the info onto an Excel sheet. The JeX User Defined Function will then be able to extract the values for you. We use the JeX Framework in our JeX Financial product.
The SignalSolver product searches for trading strategies that worked in the past. The strategies are found by running hundreds of thousands of backtests against daily, weekly or monthly OHLC data. They are unconventional in that the buy and sell strategies are allowed to be completely different, not symmetrical inverses like your normal run-of-the-mill strategies.. We publish some of the signals we find on this site in the hope that others will find them interesting, but you should know in advance that back-testing alone can not find reliably profitable strategies for the future, at least we haven't found that elusive link yet. Nevertheless the product is excellent for quantifying which price actions have been consequential. And its pretty easy to use. Recently, we have added the "Sentiment" indicator to the SignalSolver product. Sentiment aggregates the opinions of multiple trading algorithms to quantify a buy/sell sentiment of a security. The method shows promise as a trading methodology
Dr. Andrew MacLean
Founder and CEO
Hi Andrew…..Thanks for putting together a nice website and strategies. I will signup for your services, however I would like to know, if there are any strategies with lower drawdown and let me operate outside of market hours. Most of the strategies that I review at the website has drawdown of 30 to 40%. Could you please let me know from the strategies that you have, the one with lowest drawdown. I understand that would reduce the return too, but that’s fine.
Thanks for your question. Firstly I should point out that strategies do not transport from stock to stock, each strategy is found by exhaustively searching through hundreds or thousands of backtests. Each stock has unique buy and sell signals, those that have worked for one will likely not have worked for another. In my research I have found no “general” strategy that worked across stocks, although you see some which pop up quite frequently, usually with different buy and sell percentages.
To the question of drawdown, you can lower it by investing less money in a given stock, obviously, so your main concern should be reward-risk, what is expected to give the most reward for the least risk, then you can invest an appropriate level to limit your overall expected drawdown. Note that when I calculate reward-risk I add a 10% to the drawdown (like the Sterling Ratio) because no investment in stocks is without risk.
All that said, I am able to turn the dials on my backtester to search for low drawdown algorithms. Give me a stock symbol or two to play with and I’ll see if I can come up with an example. Right now I’m working on some new features in the backtester but I should be back here posting algorithms quite soon.
To the “out of hours” question, not entirely sure what you mean. Many of the strategies I find traded only with orders entered prior to the open, so you would have been operating out of hours.
Thanks Andrew for the response. I meant “out of hours” for operating strategy not during market hours, rather than sometime during off hours in the night, but you already mentioned that it’s possible. I would appreciate if you could FAS(financial 3X), TNA(Small cap 3X), TQQQ(Nasdaq 3X), SPXL(S&P 3X), YINN(China 3X), RUSL(Russia 3X), INDL(India 3X).
Thanks again for building the strategies, I think its great. I need to explore, then would like to trade live……….Best Regards.
Hi Dr. MacLean,
I appreciate your fine research on this site. Very useful. Did have a question regarding your UWTI post. In the trades Excel sheet you posted I can’t for the life of me ascertain which columns are the ones relevant to the target buy or sell prices. I understand the strategy but not the targets. Could you please shine some light on this? Thanks.
The targets are in the Target Buy and Target Sell Columns (S and T). The targets changed every trading day, each row of the table was one day of the backtest. A signal (columns U and V) was generated if, in this case, a target was hit, A signal may have led to an action (columns Z and AA), for example if you were long, a sell signal led to a sell and short action, but if you were already short, a sell signal would be ignored.
You can find out more here: https://www.signalsolver.com/help#BacktestTables
Let me know if this clears it up for you, or if you would like more clarification.
Hi Dr. MacLean,
Thank you for the clarification. I seemed to be overthinking things which tends to happen!
Had another couple of questions for you: in the Report worksheet there are a pre-set list of 8 sample algorithms that are shown, however, one can reveal even more algorithms by tinkering with the drop-down menus in the Strategy worksheet. Is there a method (better than endless trial and error) that can hone down on the best combination of variables?
Lastly, do you have a rule of thumb as to an appropriate time of when an algorithm has run its course? Or is this topic more of an art than a science?
Thanks in advance.
In SignalSolver you can access all the algorithms on the Algorithm tab by specifying the Scan level 9 on the Report tab, then after the scan you can scroll through using the scroll bar next to the algorithm names on the Report tab. The Strategy tab shows the 8 currently selected algorithms. If you set the Seek/Scan to Seek 1 SignalSolver will scan 500 additional algorithms which it thinks are likely candidates, and put the top 100 on the Algorithm tab. You can scroll through them using the scroll bar on the Report tab once the scan is complete (or stopped). If you Seek level 9, it will search around 50,000 algorithms.
You can also add as many algorithms to the Algorithm tab as you like, the easiest way is to copy a line with control C, then paste it at the bottom with Control V. You can then modify the new line as you see fit. You can eliminate algorithms from the scan setting the Scan level to a lower number than the scan level on the Algorithm tab.
The question of when an algorithm has run its course is a hard one to answer. I’m working on figuring that out, but I don’t have an answer just yet. If you come up with a solution, please let me know! One possibility is to use the date Offset to offset the backstest to some time in the past, then scan. WIth those results, change the Offset to see which algorithms survived the test of time. Another possibility is to Optimize for Figure of Merit and set up the FOM parameters (on the Strategy tab) to optimize for 100% min QARet. You would then be looking for algorithms which had the best minimum return for any one fourth part of the data. This tends to find algorithms with more consistent returns over time, although somewhat lower returns than had you optimized for return alone.
I’m sure you have addressed this, but what happens on dual signal days? I thought I read somewhere that you take the signal that is in the direction of the current trend. My question is, what do you use to determine the direction of the current trend?
Dual signals are a bit complicated. The main thing to understand is the “I” or “ignore” suffix, which can be on the buy or sell side of the algorithm, or both.
Let’s look at some examples in the long and short style on a dual signal day. AOC BOC will always respond, but AOCI BOCI will never respond because both the buy and sell side have the ignore suffix. AOCI BOC will respond to the sell signal if you are long but not to the buy signal if you are short. AOC BOCI will respond if you are short, but not if you are long.
You set up the I suffix on the Algorithms tab, columns F and K . You can run into hypothetical situations if I is combined with “S” (“at signal” buy/sell time), for example AOSI BOC is hypothetical if the buy signal arrives before the sell signal, because you would need a time machine to undo the buy once the sell signal arrived. SignalSolver will warn you if an algorithm is hypothetical.
Hope this helps!
May I ask what software you use to execute the trade algorithms?
I find the algorithms with SignalSolver from Algorithm Science. Download it at https://www.signalsolver.com/download