Following our previous illustration thread: Trading with automation (with IB)
I am going to start a completely new one, in order to test some new ideas and functionalities on algorithmic trading.
This will be an occasion to both possibly confirm our general approach, and, also, to test a few new ideas aimed to do something (else) against the possibility of worrying drawdowns. It will also allow us to develop further the new ideas and add relevant functionalities, while we proceed.
This new illustration should run at least for a couple of years or more (well unless we crash either the account or the platform before that). So if you are interested, just relax, and patiently enjoy the journey.
For obvious (and already explained reasons), we will make this illustration using a paper trading account from IB. Since this is algorithmic trading, outcome on a real account would be practically identical (apart slightly more efficient execution on "real" trading accounts).
I will now briefly recall what is the general approach we follow, and summarize what are the new ideas being tested and developed now.
1. General approach. Source of the edge: we exploit price curve oscillations and, in the long term, we recover all the stop loss orders (orders use to hedge the current position) which is possible to recover. This would intuitively cause a slight unbalance, in the long term, in the natural "random" win-loss ratio of 50/50. The unbalance is supposed to fully compensate also the trading expenses, so that we can have a profit to finally emerge in the long run. Powerful hedging functionalities are in place, such as "player superposition" and "layer overlay", as discussed in the previous thread.
2. New ideas being tested. While the general approach seems to work fine with suitably chosen instruments (that is, instruments which are "rich" with price oscillations), the usual problem is always the same: 1. we need a lot of patience (for the idea to work in the relatively long term) 2. we need relatively large funds to withstand the product price oscillations in wide ranges (even though solid hedging mechanisms are in place).
Clearly, patience is a virtue of the most experienced investors, but everybody tends to be a bit allergic to drawdown, although they understand that in some sense it is a "necessary" evil for systematic profit.
Now, in the spirit of increasing the hedging capabilities of the platform (which, at this point, are already quite developed), I have now added the implementation of a new feature. In fact, in the meantime, many people have been asking me the possibility to trade spreads.
I understand that the general reason for this kind of requests is the worry about significant drawdowns. However, trading spreads is not going to solve in general the problem, because it's like trading a new virtual instrument defined as the difference of a pair of instruments. So all the problems just reappear with the new "instrument", and possibly amplified by the unsuitability of the price curve being traded.
Rather, while we can take inspiration from the "general" idea of the spread to create a type of hedging action, we certainly need much more flexibility in our own implementation (and interpretation) in order to apply it to our preferred instruments (such as the commodity futures, the mkt indices futures and so on).
So for starters, I have implemented, for each traded instrument, the possibility to designate one or more other instruments to provide a "deterministic" hedging action, through a position which is a user sizable factor of the instrument being hedged:
- Instrument (the one which is being hedged)
- Other Instrument (the one which is hedging, or "hedger")
The "hedger" will automatically take a position equal to K * P where P is the position of the hedged instrument and K a user factor (in other words the programmed rules of the trading game for opening positions will be overridden and ignored, while, at least for the moment, we let the open players close automatically, following normally the game rules.)
For any instrument (included the hedging instrument) multiple instrument, and not just one, can be designated as "hedgers".
For now, it's as simple as that. I am sure that, while we proceed experimenting with this new possibility, we will have several new ideas and variations to refine further this mechanism.
- Initial account status -
We start where we left this account (IB statement):
which is also reflected by our application display of account situation (retrieved via IB API):
Most of the time, we will be using a small fraction of the available funds ($6,172,520.74), so for performances purposes we might, for instance, use ratios which use (at denominator) the maximum decline of the NetLiquidation value, or similar stuff.
(Feel free to jump in anytime with questions, doubts, corrections or new ideas.)
I am going to start a completely new one, in order to test some new ideas and functionalities on algorithmic trading.
This will be an occasion to both possibly confirm our general approach, and, also, to test a few new ideas aimed to do something (else) against the possibility of worrying drawdowns. It will also allow us to develop further the new ideas and add relevant functionalities, while we proceed.
This new illustration should run at least for a couple of years or more (well unless we crash either the account or the platform before that). So if you are interested, just relax, and patiently enjoy the journey.
For obvious (and already explained reasons), we will make this illustration using a paper trading account from IB. Since this is algorithmic trading, outcome on a real account would be practically identical (apart slightly more efficient execution on "real" trading accounts).
I will now briefly recall what is the general approach we follow, and summarize what are the new ideas being tested and developed now.
1. General approach. Source of the edge: we exploit price curve oscillations and, in the long term, we recover all the stop loss orders (orders use to hedge the current position) which is possible to recover. This would intuitively cause a slight unbalance, in the long term, in the natural "random" win-loss ratio of 50/50. The unbalance is supposed to fully compensate also the trading expenses, so that we can have a profit to finally emerge in the long run. Powerful hedging functionalities are in place, such as "player superposition" and "layer overlay", as discussed in the previous thread.
2. New ideas being tested. While the general approach seems to work fine with suitably chosen instruments (that is, instruments which are "rich" with price oscillations), the usual problem is always the same: 1. we need a lot of patience (for the idea to work in the relatively long term) 2. we need relatively large funds to withstand the product price oscillations in wide ranges (even though solid hedging mechanisms are in place).
Clearly, patience is a virtue of the most experienced investors, but everybody tends to be a bit allergic to drawdown, although they understand that in some sense it is a "necessary" evil for systematic profit.
Now, in the spirit of increasing the hedging capabilities of the platform (which, at this point, are already quite developed), I have now added the implementation of a new feature. In fact, in the meantime, many people have been asking me the possibility to trade spreads.
I understand that the general reason for this kind of requests is the worry about significant drawdowns. However, trading spreads is not going to solve in general the problem, because it's like trading a new virtual instrument defined as the difference of a pair of instruments. So all the problems just reappear with the new "instrument", and possibly amplified by the unsuitability of the price curve being traded.
Rather, while we can take inspiration from the "general" idea of the spread to create a type of hedging action, we certainly need much more flexibility in our own implementation (and interpretation) in order to apply it to our preferred instruments (such as the commodity futures, the mkt indices futures and so on).
So for starters, I have implemented, for each traded instrument, the possibility to designate one or more other instruments to provide a "deterministic" hedging action, through a position which is a user sizable factor of the instrument being hedged:
- Instrument (the one which is being hedged)
- Other Instrument (the one which is hedging, or "hedger")
The "hedger" will automatically take a position equal to K * P where P is the position of the hedged instrument and K a user factor (in other words the programmed rules of the trading game for opening positions will be overridden and ignored, while, at least for the moment, we let the open players close automatically, following normally the game rules.)
For any instrument (included the hedging instrument) multiple instrument, and not just one, can be designated as "hedgers".
For now, it's as simple as that. I am sure that, while we proceed experimenting with this new possibility, we will have several new ideas and variations to refine further this mechanism.
- Initial account status -
We start where we left this account (IB statement):
which is also reflected by our application display of account situation (retrieved via IB API):
Most of the time, we will be using a small fraction of the available funds ($6,172,520.74), so for performances purposes we might, for instance, use ratios which use (at denominator) the maximum decline of the NetLiquidation value, or similar stuff.
(Feel free to jump in anytime with questions, doubts, corrections or new ideas.)