Imagine you are not a trader, but rather someone hired to operate a stock trading strategy. What kinds of things should you be able to do? Also, if the real trader calls on the phone and asks you to do something, what types of requests are likely?
As an Operator I can:
1. View current strategy and actual positions.
2. Correct discrepancies between strategy and actual positions.
3. View current (daily) Profit/Loss by position, strategy (across positions), and portfolio.
4. Enable/Disable trading for a specific security at any time.
5. Enable/Disable trading for a specific strategy (across all securities) at any time (without touching each position).
6. Enable/Disable trading for the entire system at any time (without touching each position).
7. Control the overall portfolio exposure with a single setting.
8. Control how aggressively positions are defended (especially profits) across the entire system.
9. Control the size of a Risk Unit (1R) for all strategies with a single setting.
10. Control the maximum number of Risk Units available to any strategy/security combination with a single setting.
11. Set a minimum position size with a single setting.
12. Set a maximum position size with a single setting.
13. Set a minimum Reward-Risk ratio for all strategies with a single setting.
___________________
I'll try to be brief without leaving anything out. Numbers below correspond to User Stories listed above.
1. Standard TradeStation view. No coding required.
2. Ability to do basic math and enter basic orders. May need to call for a manual fill (sell short). No coding required.
3. By position and portfolio are standard views. No coding required for standard views; "by strategy" might be tricky and won't be an initial deliverable.
4. Turn off the strategy at the chart and manually close the position. No coding required.
5. Each strategy has a function to disable it, and all positions will automatically close. Custom coding.
6. System-wide control, which will cause all positions to close. Emergency version is to hit "Close all positions" and then close the application, but we'd like something a little more elegant (won't cause strategy vs actual position discrepancies).
7. Part of the insurance for the entire portfolio. We'll get more into this later.
8. Usually strategies will handle this, but at certain times we might want to tighten or loosen profit taking. Example would be tightening controls during a major speech just in case the market took off on news. Custom coding.
9. Basic position sizing control to ensure consistency across positions without worrying about stock prices. Custom coding.
10. Ensure that multi-unit strategies (pyramid) don't get out of control. Custom coding.
11. If risk parameters end up calculating a position that is too small to trade, don't. Custom coding.
12. If risk parameters end up calculating a position that is too large to trade, reduce the size to the maximum. Also helps to prevent entering orders that would create an invalid portfolio (leverage beyond allowable limits).
13. Prevent low-potential strategies from eating up valuable portfolio allocation when high-potential strategies are trading. Example would be shutting down low reward range trading strategies when breakout or trend-following strategies are firing.
That wasn't so bad. That finishes off the User Stories. I'll post a summary once I feel I am done tweaking.
We're about ready for some basic coding, but I don't have platform access yet so it may be a little bit still. I'll consider posting function outlines (do you want them?), or just sitting patiently and quietly until coding starts. I just bought The Black Swan, so I have some reading to do.
Enjoy,
Damien
As an Operator I can:
1. View current strategy and actual positions.
2. Correct discrepancies between strategy and actual positions.
3. View current (daily) Profit/Loss by position, strategy (across positions), and portfolio.
4. Enable/Disable trading for a specific security at any time.
5. Enable/Disable trading for a specific strategy (across all securities) at any time (without touching each position).
6. Enable/Disable trading for the entire system at any time (without touching each position).
7. Control the overall portfolio exposure with a single setting.
8. Control how aggressively positions are defended (especially profits) across the entire system.
9. Control the size of a Risk Unit (1R) for all strategies with a single setting.
10. Control the maximum number of Risk Units available to any strategy/security combination with a single setting.
11. Set a minimum position size with a single setting.
12. Set a maximum position size with a single setting.
13. Set a minimum Reward-Risk ratio for all strategies with a single setting.
___________________
I'll try to be brief without leaving anything out. Numbers below correspond to User Stories listed above.
1. Standard TradeStation view. No coding required.
2. Ability to do basic math and enter basic orders. May need to call for a manual fill (sell short). No coding required.
3. By position and portfolio are standard views. No coding required for standard views; "by strategy" might be tricky and won't be an initial deliverable.
4. Turn off the strategy at the chart and manually close the position. No coding required.
5. Each strategy has a function to disable it, and all positions will automatically close. Custom coding.
6. System-wide control, which will cause all positions to close. Emergency version is to hit "Close all positions" and then close the application, but we'd like something a little more elegant (won't cause strategy vs actual position discrepancies).
7. Part of the insurance for the entire portfolio. We'll get more into this later.
8. Usually strategies will handle this, but at certain times we might want to tighten or loosen profit taking. Example would be tightening controls during a major speech just in case the market took off on news. Custom coding.
9. Basic position sizing control to ensure consistency across positions without worrying about stock prices. Custom coding.
10. Ensure that multi-unit strategies (pyramid) don't get out of control. Custom coding.
11. If risk parameters end up calculating a position that is too small to trade, don't. Custom coding.
12. If risk parameters end up calculating a position that is too large to trade, reduce the size to the maximum. Also helps to prevent entering orders that would create an invalid portfolio (leverage beyond allowable limits).
13. Prevent low-potential strategies from eating up valuable portfolio allocation when high-potential strategies are trading. Example would be shutting down low reward range trading strategies when breakout or trend-following strategies are firing.
That wasn't so bad. That finishes off the User Stories. I'll post a summary once I feel I am done tweaking.
We're about ready for some basic coding, but I don't have platform access yet so it may be a little bit still. I'll consider posting function outlines (do you want them?), or just sitting patiently and quietly until coding starts. I just bought The Black Swan, so I have some reading to do.
Enjoy,
Damien