This is the second part of the automated trading course, which will deal with how to write a profitable strategy. Some programming knowledge is required - for this, do the first part of the course if you haven't already. It's here: http://www.elitetrader.com/vb/showthread.php?s=&threadid=248926 The second part will cover writing basic trading strategies, trend and counter trend trading, optimizing, walk forward analysis, portfolio strategies, and money management. It uses some new trading algorithms such as frequency filters. To avoid misunderstandings: It's not a course about technical analysis. I won't explain here moving averages or the like. It's just about how to write a strategy based on a trading idea that you already have. For the course you'll need a program for running the script examples and testing the strategies. It's called "Zorro" and you can download it for free - just google for "Zorro Trading Automaton". Please also download the latest patch from the Zorro user forum, as the release had a bug in the chart display. Two things to keep in mind: ► All strategies presented in this thread are meant for educational purposes. They are all profitable, but designed for simplicity, not for maximum profit or robustness. For really trading such a strategy, you would normally add entry filter rules for filtering out unprofitable trades. How to find and generate such rules with machine learning algorithms, such as Zorro's perceptron or decision tree, might be covered in a future third part of the course. For really trading a strategy you normally also use a more sophisticated exit algorithm, realized with a trade management function. But that's also stuff for a future part and we'll keep it simple in this part of the course. ► I will post some backtest results here, but they can be slightly different to the results you'll get when testing the scripts yourself. That's because Zorro stores the current spread, commission, and rollover parameters for every asset when connecting to the broker. Because they change from time to time (and from broker to broker), backtest results also change. You can prevent this by setting Spread and other broker dependent parameters to a fixed value in the script, but keeping them in sync to the market gives a more realistic result.