Yamato
Legendary member
- Messages
- 9,840
- Likes
- 246
Money Management functions on my Excel WorkBook
Now. I don't want the CL accident to happen again, whereby I build up my capital for a month, and then trade the wrong system and lose half of my capital in two days. I avoid that through money management. I implement my money management through a bunch of functions on one specific sheet of my excel workbook running all 37 systems, soon to be 46.
With this amount of systems I need to automate everything. I can't just select the number of contracts to trade manually, and which systems to trade. The second reason to automate everything is that by being greedy one day I may allow the CL to trade (like I did), and accidents will happen. I will avoid such risks, by creating effective functions that will always take care of everything - not just trades, but also contracts traded and whether the system will have trade any contracts at all.
This is the structure so far of my money management sheet:
1) FINISHED: Contract Liquidity filter (at the moment unused): you cannot start a trade where you buy 500 contracts if that will drive prices so high that you won't make any money from your trade. So, once I'll have a lot of capital, I will need to implement a much better system which will split my trades at different moments. At the moment I have a (non-used) filter that limits the contracts traded according to how liquid that market is. Not used because I am lucky if I can afford 1 contract. On the other hand, at least it's one less problem to deal with.
2) FINISHED: Available Funds filter. This is simple: if the money is not there, then you cannot place a trade, whether it makes sense to do it or not. Also, though: if the money is there for a given future contract, but you will open a position that will need twice as much margin during its lifetime (because it's an overnight trade), and you don't have that much (overnight) margin, then you can't trade it either, because that position (or another one) will be closed by the broker when the normal full margin will resume, and that will screw up your trading of course.
3) IT MAY NEED WORK: ROA filter. This and #4 are the really important filters, that I need to work on or at least think about, to automate them completely.
This filter works like this. It decides how much of your capital is allocated to each system according to its Return On Account profitability (and then it divides that money by the contracts it can buy, margin-wise). The ROA profitability gets calculated by using in the numerator the gain of the system in the past 3 months of forward testing (and this is a big limit, because I don't have enough testing for some systems, but it's the only measurement I can trust). Ok so, despite all its limits, you figure that out and keep that on the numerator of your fraction. On the denominator you place the sum of the margin needed + the largest drawdown incurred, not of the past 3 forward testing months, but of the whole ten years tested, just to be on the safe side. This is how you get the ROA profitability.
For example, the ROA profitability for my best system is 133%. How do I get a number of contracts to trade from that figure? I first have to decide how much capital my best system will be allowed to use. I set it to 50%. Then I divide 133% by the system with the best ROA profitability value, which in this case is the best system itself, with, again, 133%, and I get a result of 1, or 100%, value. Then I multiply that by the highest % of capital I am allowing the best system to trade (50%): so 100% (because it happens to be the best system) gets multiplied by 50%, and I get 50%. So my best system will be allowed to invest 50% of capital. Which will then be divided by the margin needed per contract, and return the number of contracts that (ROA-based) money management has decided to trade.
Now, if the function were returning an 80% ROA return, we'd divide 80% by 133%, returning 60%. And then 60% would be multiplied by 50%. So you can invest 30% of capital on a system returning a ROA ratio of 80% (vs. margin+dd) in those 3 months of forward testing.
This formula like the other one below (#4) has a limited-capital problem (in that it starts working properly with a capital above 30k), but there's a problem related to the few months of forward testing that I have. How can I measure correctly the profitability a newly created system that only has a few weeks of forward testing? I can't. On the other hand it also makes sense not to trade a system that only has a few weeks of forward testing, so this could actually be the solution of a potential recklessness on my part.
4) IT MAY NEED WORK: Potential Drawdown filter. This filter is one that I disregarded (disabling the formula for it) as far as the CL. The CL performed great but it had a potentially high drawdown, but I decided to not care about it. Consequence was that I made a lot of money in the first week, and lost even more on the second week (because I got unlucky), in just 2 days. It works like this: how much of your total risk capital are you willing to lose if your system incurred the worst drawdown on its first trade? 50%? Then you divide your capital by the drawdown and multiply it by 50%, and you get the contracts you can trade for that system/future. Say you have a capital of 10k and your CL system has a drawdown of 10k. Capital/dd returns 1, and 1*50% = 0.5. That means you can only trade 1 contract when you have 20k. This function is just about perfect, except that I will need more capital to see it work properly, because right now I am allowing many systems to trade with a potential loss of 50%, which is too much, but which is necessary given my very small capital.
SUMMARY
Ok, so let's try to recapitulate what I need to work on. #1 and #2 are ok. #4 is logically perfect and so there's nothing I can change in the formula. I should just leave #4 as it is, and try, as I increase capital and accordingly increase the number of contracts traded (and, with time, created), to decrease as much as possible the % of capital risked per system, should each system incur its worst drawdown.
#3 may need work or it may not. Right now it calculates which system deserves more capital. Its problems are that even though a given system may seem awesome, diversification is good in itself, so it should allow systems making less money to trade more than they deserve to, in order to encourage diversification. Yet, without going as far as allowing all systems to trade the same number of contracts. Now the big dilemma remaining is actually two dilemmas:
1) simple formula without encouraging diversification in any way or more complex excel function (a series of functions) in order to encourage diversification? Complex functions are not good in my opinion, because I suck at formulas and I may lose touch with what I am doing.
2) Good formulas and no trading at the start due to lack of forward testing profits? Or bad formulas and a lot of trading allowed, regardless of actually made profits, and in order to maximise the exploitation of opportunities?
CONCLUSION
1) Overall, I've found that the most important thing is automation and non-tampering (and tampering is the reason that I still have 10k instead of 1 million).
2) Formulas that may allow little trading and little opportunities now will work properly in the future, so I should implement them from the start, even though this may mean a slower rise in my capital. I should quit this habit of disabling my formulas to allow more systems to trade with a small capital.
3) Also, I am deciding one more time that I am not going to implement more complex formulas encouraging diversification by allowing and favoring the trading of less performing systems. If a system has not produced great profits vs. its drawdown and margin required, it should just be left alone.
Ultimately, during the weekend, I'll implement all final formulas that will stick to all the way to the end. No more disabling of formulas. And no complex formulas either. If anything, let's sacrifice the quantity of systems trading. If they don't pass the formula test, they will not trade, because it means they are not good enough. Only this way I will need no tampering of any sort as my capital will increase.
Now. I don't want the CL accident to happen again, whereby I build up my capital for a month, and then trade the wrong system and lose half of my capital in two days. I avoid that through money management. I implement my money management through a bunch of functions on one specific sheet of my excel workbook running all 37 systems, soon to be 46.
With this amount of systems I need to automate everything. I can't just select the number of contracts to trade manually, and which systems to trade. The second reason to automate everything is that by being greedy one day I may allow the CL to trade (like I did), and accidents will happen. I will avoid such risks, by creating effective functions that will always take care of everything - not just trades, but also contracts traded and whether the system will have trade any contracts at all.
This is the structure so far of my money management sheet:
1) FINISHED: Contract Liquidity filter (at the moment unused): you cannot start a trade where you buy 500 contracts if that will drive prices so high that you won't make any money from your trade. So, once I'll have a lot of capital, I will need to implement a much better system which will split my trades at different moments. At the moment I have a (non-used) filter that limits the contracts traded according to how liquid that market is. Not used because I am lucky if I can afford 1 contract. On the other hand, at least it's one less problem to deal with.
2) FINISHED: Available Funds filter. This is simple: if the money is not there, then you cannot place a trade, whether it makes sense to do it or not. Also, though: if the money is there for a given future contract, but you will open a position that will need twice as much margin during its lifetime (because it's an overnight trade), and you don't have that much (overnight) margin, then you can't trade it either, because that position (or another one) will be closed by the broker when the normal full margin will resume, and that will screw up your trading of course.
3) IT MAY NEED WORK: ROA filter. This and #4 are the really important filters, that I need to work on or at least think about, to automate them completely.
This filter works like this. It decides how much of your capital is allocated to each system according to its Return On Account profitability (and then it divides that money by the contracts it can buy, margin-wise). The ROA profitability gets calculated by using in the numerator the gain of the system in the past 3 months of forward testing (and this is a big limit, because I don't have enough testing for some systems, but it's the only measurement I can trust). Ok so, despite all its limits, you figure that out and keep that on the numerator of your fraction. On the denominator you place the sum of the margin needed + the largest drawdown incurred, not of the past 3 forward testing months, but of the whole ten years tested, just to be on the safe side. This is how you get the ROA profitability.
For example, the ROA profitability for my best system is 133%. How do I get a number of contracts to trade from that figure? I first have to decide how much capital my best system will be allowed to use. I set it to 50%. Then I divide 133% by the system with the best ROA profitability value, which in this case is the best system itself, with, again, 133%, and I get a result of 1, or 100%, value. Then I multiply that by the highest % of capital I am allowing the best system to trade (50%): so 100% (because it happens to be the best system) gets multiplied by 50%, and I get 50%. So my best system will be allowed to invest 50% of capital. Which will then be divided by the margin needed per contract, and return the number of contracts that (ROA-based) money management has decided to trade.
Now, if the function were returning an 80% ROA return, we'd divide 80% by 133%, returning 60%. And then 60% would be multiplied by 50%. So you can invest 30% of capital on a system returning a ROA ratio of 80% (vs. margin+dd) in those 3 months of forward testing.
This formula like the other one below (#4) has a limited-capital problem (in that it starts working properly with a capital above 30k), but there's a problem related to the few months of forward testing that I have. How can I measure correctly the profitability a newly created system that only has a few weeks of forward testing? I can't. On the other hand it also makes sense not to trade a system that only has a few weeks of forward testing, so this could actually be the solution of a potential recklessness on my part.
4) IT MAY NEED WORK: Potential Drawdown filter. This filter is one that I disregarded (disabling the formula for it) as far as the CL. The CL performed great but it had a potentially high drawdown, but I decided to not care about it. Consequence was that I made a lot of money in the first week, and lost even more on the second week (because I got unlucky), in just 2 days. It works like this: how much of your total risk capital are you willing to lose if your system incurred the worst drawdown on its first trade? 50%? Then you divide your capital by the drawdown and multiply it by 50%, and you get the contracts you can trade for that system/future. Say you have a capital of 10k and your CL system has a drawdown of 10k. Capital/dd returns 1, and 1*50% = 0.5. That means you can only trade 1 contract when you have 20k. This function is just about perfect, except that I will need more capital to see it work properly, because right now I am allowing many systems to trade with a potential loss of 50%, which is too much, but which is necessary given my very small capital.
SUMMARY
Ok, so let's try to recapitulate what I need to work on. #1 and #2 are ok. #4 is logically perfect and so there's nothing I can change in the formula. I should just leave #4 as it is, and try, as I increase capital and accordingly increase the number of contracts traded (and, with time, created), to decrease as much as possible the % of capital risked per system, should each system incur its worst drawdown.
#3 may need work or it may not. Right now it calculates which system deserves more capital. Its problems are that even though a given system may seem awesome, diversification is good in itself, so it should allow systems making less money to trade more than they deserve to, in order to encourage diversification. Yet, without going as far as allowing all systems to trade the same number of contracts. Now the big dilemma remaining is actually two dilemmas:
1) simple formula without encouraging diversification in any way or more complex excel function (a series of functions) in order to encourage diversification? Complex functions are not good in my opinion, because I suck at formulas and I may lose touch with what I am doing.
2) Good formulas and no trading at the start due to lack of forward testing profits? Or bad formulas and a lot of trading allowed, regardless of actually made profits, and in order to maximise the exploitation of opportunities?
CONCLUSION
1) Overall, I've found that the most important thing is automation and non-tampering (and tampering is the reason that I still have 10k instead of 1 million).
2) Formulas that may allow little trading and little opportunities now will work properly in the future, so I should implement them from the start, even though this may mean a slower rise in my capital. I should quit this habit of disabling my formulas to allow more systems to trade with a small capital.
3) Also, I am deciding one more time that I am not going to implement more complex formulas encouraging diversification by allowing and favoring the trading of less performing systems. If a system has not produced great profits vs. its drawdown and margin required, it should just be left alone.
Ultimately, during the weekend, I'll implement all final formulas that will stick to all the way to the end. No more disabling of formulas. And no complex formulas either. If anything, let's sacrifice the quantity of systems trading. If they don't pass the formula test, they will not trade, because it means they are not good enough. Only this way I will need no tampering of any sort as my capital will increase.
Last edited: