Framework of an Algorithmic Trading Strategy

Kuants
Algorithmic Trading-Complete Guide by Kuants
2 min readSep 5, 2018

An Algorithmic Trading Strategy must have the following key components

  • Driving Force
  • Confirmation
  • Movement CheckPoint
  • Noise Reduction

Lets study the components one by one.

Driving Force:

It is the core logic behind an trading algorithm at a broad level that sets the tone of further development.

An example of a driving force can be that the user wants to develop a momentum based trading strategy when the stock has risen a few points and is expected to move up further. This logic defines the entry conditions for you and you have to write the equation corresponding to the same.

Confirmation

In this step, you are simple confirming that your driving force conditions are being met

Movement Checkout

You need to ensure that there would be sufficient movement in the prices after an order is placed.

Noise Reduction

This step ensures that when an entry point is identified by an algorithm, it is not based on the very short term erratic movement of the prices but on an actual movement.

Lets take an example to potray each of these components

The driving force for a stratgy is that it buys when there is upward price movement in stocks and is expected to continue for some time. The core algorithm for this can be

sma(close,5) > sma(close,10)

Next to confirm that the upward movement is significant, we can add a volume check as

sma(volume,5) > sma(volume,10)

that verifies that volume is also increasing as the prices are increasing and confirms a momentum. To ensure that this momentum will further continue, we add a volatility parameter as

sma(std(close,5),5) > sma(std(close,10),5)

which ensure that the standard deviation, which can be taken as a reflection of price movement is gradually increasing.

And finally to ensure that buy decision is on the actually movement rather than a short term noise, we can add an algorithm like sma(high — close ,5) < sma(high -close,10)

In totallity the algorithm turns out to be

(sma(close,5) > sma(close,10)) & ( sma(volume,5) > sma(volume,10))& (sma(std(close,5),5) > sma(std(close,5),10) & (sma(high — close ,5) < sma(high -close,10))

--

--