Hope everyone is having a great 2022 so far.
I've typically traded over longer timeframe (swing trading to investing timeframes) but have recently caught the algorithmic trading bug (again).
It has always been a side goal of being able to develop something more automated - on shorter timeframes.
In the past, I've had a hard time developing a tradable system. Common issues include:
(a) They don't have positive expectancy
(b) Even when they have positive expectancy they don't have a tradable equity curve, e.g.,
i - Deep drawdowns or long multi-year valleys
ii - too few trades to be statistically significant
iii - Miniscule avg trades
And so on.
About a year back, I had an hypothesis/idea that I thought was worth exploring. After some time evaluating the idea - exploring stats of underlying price movement - I developed a system and have been back-testing.
Here are results from an out of sample backtest of about a year across basket of stocks:
Out of Sample Results (~12 month window)
Annualized return: 41%
Winning Trades:846 (69.63%), Losing Trades:369, 30.37%
Avg($)*:43.492, AvgWin($):75.470, AvgLoss($):-29.825
Avg(R)**:1.083, AvgWin(R):1.881, AvgLoss(R):-0.747
* Assumes $2.5 of friction (including costs and slippage) per trade
** Measured in terms of unit of risk taken on each trade.
Some more context:
> Intraday - can be ~10min to all day
> Not about chart patterns, i.e., doesn't look at 1/5/10 min bars etc. It looks for price movement characteristics in the context of recent price, broad market regime, etc.
> Trades stocks that have 1M+ avg daily volume
> Average ~200 shares per trade; obviously backtesting results scale w/ number of shares with I've kept trade size low.
> Long and short
> Avoids first 20-30 min to avoid high spreads/slippage. Avoids last 30 min.
> There are probably ~2 direct input parameters but likely 5-7 parameters if I include stock selection, position sizing, etc. (cause for concern re: over-fitting)
> ~1-2% account risk per position. Stop losses always in place. Conservative position sizing.
> No margin (except for shorts obviously)
I've tried several out of sample periods (including 2020 COVID correction/rally) and results are fairly consistent.
Next I'm going to trade paper real-time through API . Obviously nothing beats putting this live in the market (especially since there are enough trades, i would know relatively soon before losing too much capital if this works)...BUT.... best to learn from others' experience.
So... would appreciate any help/guidance on:
a. Is the ~$43 avg trade too low for what costs + slippage might actually be? Recall, avoids first 20-30 min, vol >1M, 200 shares trade.
b. Especially on shorts, is this likely?
c. What else am I missing?
This will not scale infinitely but I'm just looking to deploy some capital if it is robust.
I am quite risk averse and skeptical so I am quite sure this will deteriorate significantly in real performance. Given the results, I'm worry about over-fitting a fair bit. I haven't traded intraday so new territory for me.
Thoughts and guidance welcome.
Thanks all.
I've typically traded over longer timeframe (swing trading to investing timeframes) but have recently caught the algorithmic trading bug (again).
It has always been a side goal of being able to develop something more automated - on shorter timeframes.
In the past, I've had a hard time developing a tradable system. Common issues include:
(a) They don't have positive expectancy

(b) Even when they have positive expectancy they don't have a tradable equity curve, e.g.,
i - Deep drawdowns or long multi-year valleys
ii - too few trades to be statistically significant
iii - Miniscule avg trades
And so on.
About a year back, I had an hypothesis/idea that I thought was worth exploring. After some time evaluating the idea - exploring stats of underlying price movement - I developed a system and have been back-testing.
Here are results from an out of sample backtest of about a year across basket of stocks:
Out of Sample Results (~12 month window)
Annualized return: 41%
Winning Trades:846 (69.63%), Losing Trades:369, 30.37%
Avg($)*:43.492, AvgWin($):75.470, AvgLoss($):-29.825
Avg(R)**:1.083, AvgWin(R):1.881, AvgLoss(R):-0.747
* Assumes $2.5 of friction (including costs and slippage) per trade
** Measured in terms of unit of risk taken on each trade.
Some more context:
> Intraday - can be ~10min to all day
> Not about chart patterns, i.e., doesn't look at 1/5/10 min bars etc. It looks for price movement characteristics in the context of recent price, broad market regime, etc.
> Trades stocks that have 1M+ avg daily volume
> Average ~200 shares per trade; obviously backtesting results scale w/ number of shares with I've kept trade size low.
> Long and short
> Avoids first 20-30 min to avoid high spreads/slippage. Avoids last 30 min.
> There are probably ~2 direct input parameters but likely 5-7 parameters if I include stock selection, position sizing, etc. (cause for concern re: over-fitting)
> ~1-2% account risk per position. Stop losses always in place. Conservative position sizing.
> No margin (except for shorts obviously)
I've tried several out of sample periods (including 2020 COVID correction/rally) and results are fairly consistent.
Next I'm going to trade paper real-time through API . Obviously nothing beats putting this live in the market (especially since there are enough trades, i would know relatively soon before losing too much capital if this works)...BUT.... best to learn from others' experience.
So... would appreciate any help/guidance on:
a. Is the ~$43 avg trade too low for what costs + slippage might actually be? Recall, avoids first 20-30 min, vol >1M, 200 shares trade.
b. Especially on shorts, is this likely?
c. What else am I missing?
This will not scale infinitely but I'm just looking to deploy some capital if it is robust.
I am quite risk averse and skeptical so I am quite sure this will deteriorate significantly in real performance. Given the results, I'm worry about over-fitting a fair bit. I haven't traded intraday so new territory for me.
Thoughts and guidance welcome.
Thanks all.