About Signalgorithm

WP_20150305_026[1]Hi, I'm Dr. Andrew MacLean and one of my passions is finding trading strategies for stocks and ETFs. 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. I doubt you'll find anything like them outside of large financial institutions. I publish them here in the hope that others will find them interesting.

I first used this kind of trading strategy in the financial crisis of 2008 after characterizing the movements of FAS and FAZ, the banking sector triple leveraged ETFs. I noticed that there was a certain percentage rise/fall from the daily open price that gave a good buy/sell signal. Since then I have spent a lot of time perfecting the technique for tracking them down and optimizing the parameters. I usually publish strategies which have given good reward-risk and consistent returns over time in preference to those which have just given stellar rewards at the expense of risk and consistency over time. And yes, I do trade algorithmically myself, mainly buy-the-dips, sell at fixed percentage swing algorithms on quality growth stocks. I use my techniques to find the optimum percentages.

I'm often asked if a strategy for stock X will work on stock Y. The answer is maybe, but there are nearly always better options. Every stock has different price movements, volatility and trending characteristics. When you characterize those movements into an algorithm it is tailored for that stock alone. The algorithm may work well for other stocks but you can almost certainly find better algorithms for them by crafting them individually. There are no one-size-fits-all trading strategies because every stock chart is different. And if they existed, wouldn't everybody be using them?

The strategies I publish have been profitable in the past but I make no claims as to whether they will continue to work in the future. So what use are they? Well, if you notice something has behaved consistently, you just may want to factor it into your decision making process.

Happy strategizing,




  1. 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.


    • Hi, Prasad,

      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.

      Warm regards,


  2. 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.

  3. 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.

    • Hi Joseph:

      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: http://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.



  4. Hi Joseph,

    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.


    Andrew MacLean

  5. Hello Andrew,
    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?
    Thank you,

    • Hi Enzo,

      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!


Leave a Reply