12-13-2005, 03:36 PM
Trading Tracking System Modification
Purpose
1) To provide a means of facilitating and managing the movement and tracking of trades, from first conception, to trade closeout.
2) To provide an easy alert system for trades under consideration.
3) To capture for later analysis all trades and trade considerations.
4) To provide a framework for an automatic trading system, based on rules and parameters of the DynamicTrend system.
Overview
This modification is an extension of the Watch file that was added to the DynamicTrend system recently. While this Watch list was a good first step, there is still the need to segregate trades among themselves and yet save the information for later analysis. In the Watch file currently, a trade can only exist, or be deleted. With this modification, a trade can exist in various states and branches along a decision tree. In this model, different branches are represented by different files that hold a given trade, and the decision points map directly to processes that occur in actual trading.
The attached diagram represent both a dataflow diagram and a state diagram for a given trade record. Currently, the Watch file does capture basic information of where it came from and what were various settings were at the time of capture. What it does not show is various states of a trade in our analysis and execution. For example, we don’t know, by looking at a given record, if we felt the trade should be entered, or if it has already hit it’s trigger point, or if we are just tracking a trade in progress. This confusion could be addressed by having a note field on each record, where we could note our thinking, or by transcribing the information into other tracking or portfolio systems. But by having it here, in separate files, we can then have one click movement of all our information.
Files
In the diagram, the yellow boxes represent files or screens that already exist in the DynamicTrend system. The additional clear boxes represent additional files that contain trade records, similar to the Watch file, but with a few more fields. Each file’s title implies what it is used for, but I will give a more detailed definition later on. Most lines represent the movement of a trade record from one file to another; that is, the adding of the record to the destination file, and the deleting of the record from the source file. Any record movement should be accomplished by a click of some fashion (select record and button, or right click on record). Any additional data fields should be information available in the environment, such as date and time, current stock price, etc., so no additional typing should be required. These additional fields will be listed later on.
Any lines that point to the Profile screen, or Trade Balance screen do not indicate any movement of data. These lines just represent the lookup of information at the present time, using the current stock symbol of the record currently selected. Lines that are not drawn include a line indicating the export of any file of trades (all files) to a delimited file for analysis by a spreadsheet program. There also needs to be some sort of purge function for the Rejected, Non-Triggered, and Completed files, since these files will only grow via normal system use. Both the export function and purge function should have some sort of record filtering. (i.e. date range, trade type, etc.)
Decision Types
The first decision point is within the Watch file. Here, we will decide if a trade is ready to be accepted for activation, once it hits its trigger point, or if we should reject the trade all together, or watch the trade a little longer. Note that in activation, consideration should be made for long positions already above the trigger price, and short positions below their trigger point. (i.e. should one be warned, since they will automatically trip into the Active trades file?)
The second decision point is within the Setup file. This is, in essence, an alert file that could be monitored by the system. Once a stock hits its trigger point, it should automatically send a signal (sound, blinking, e-mail, etc.) and moved to the Active Trade file. Note that this is the point one could actually place a trade, with most brokers, with an activation trigger. The move to the Non Triggered file would be a manual process that represents canceling of a trade that has not been triggered. Actually, this could also be automatic, base on order type, such as Good for the Day type orders. (i.e. date and time would force a move to the Non Triggered file)
The third file, the Active Trade file, actually is a mirror of some or all of an actual trading account, and serves as the complete basis of a paper trading system. Here, most actions can be automatic, via a stock hitting its goal or limit. The system should allow for the manual closing out of a trade early, or the modification of the stop price, or goal price. A partial closing of a position would be nice, and in a manual closeout, the price, quantity, date or time might have to be adjusted. In all cases, the trade, or the part closed should be moved to the completed file.
Note that by the addition of a status column (Active or Non-Active), the Watch file and Setup file could be combined, as well as the Rejected file and Non-Triggered file. From a programming point of view, the reduction in files would be offset by future complexity in automatic monitoring of the Setup file. I gave this a lot of thought, and concluded it would be better, in the long run, to have two separate files. I defer this decision to the programmer.
Additional Fields
Here, I would like to define each file’s purpose, and the additional fields each should get. Note that each file will keep all the field of its source file. Also, all records, starting with the Watch file records, could use a notes field(s), where any free form text could be added at any time. Maybe an automatic time stamp on any note added would be useful.
It seems that each file should get a date/time stamp when it was moved to that file, as well as the current price of the stock at that time. Instead of repeating this comment for each file, I will just state it here.
Watch
This file will stay as it is now in the DynamicTrend system with the following exception. Records that are not of any current use, but which might be of later interest for analysis will be moved to the Rejected file via some sort of click. Any records ready as a trade should be move to the setup file via click. Consideration should be made to allowing modification of any trigger or exit price as well as quantity to use for a trade.
Reject
As stated above, this file represented trades that are not of current interest, but might want to be referenced in the future for historical purposes.
Setup
This file represents trades that are in a ‘Setup’ state, that is, they are ready to be put in place as a trade, once the stock hits the trigger price. If a stock is already past its trigger price, it should be time stamped, and move immediately to the Active file. Note that a trigger preference should be defined, on a record basis, which says if it is a ‘pass through’ type trigger, or a ‘lower to/raise to’ type trigger. This might be a future modification.
Non Trigger
This file represents trades that were ready to be triggered, but never were. They are saved here for future historical reference. The pruning process, out of the Setup file, is a manual process, but could be automatic via some sort of system preferences. Like the Reject file and Completed Trades files, some sort of purging will have to be done from time to time.
Active
This represents current open trades.
A future enhancement might be the addition of a Date/Time limit field. This field, if extended back to the Watch file and seeded from the Matrix - room size value, could activate the exit of the trade, just as the stop or goal limit does with the price.
Complete
This represents any trade, or part of a trade, that was active at one time, but is no longer.
In addition to the date/time and price stamp appended to each record, a flag representing how the record was closed would be useful. i.e. Goal hit, Stop Limit, or Manual close. Also, a flag of whether the quantity was partial of full at this close. It might be useful to calculate the actual gain or loss in this trade, both the price and gross dollars, as well as the # of days open. This would simplify performance analysis on this file. A future enhancement might also be the inclusion of commission costs.
Future Enhancements
Adding these files and function eliminate most of the mechanical steps we now go through, and allow more time to review the Profile and Trade Balance screens, as well as analyze results of our completed trades.
Ideally, we could have system wide default parameters that would automatically execute any manual steps left. Such steps would be the automatic activation of any watch file record, the automatic movement of non-triggered records, and the saving of the Matrix screening settings. The Matrix screen settings could be saved, by name, along with a schedule (date and time frequency) of which time to run. This would automatically fill the trade hopper into the Watch list file to start the process.
In addition, since we may have multiple criteria that we could save by name, this name could be added to all trade records, thus allowing us to treat this one set of trade files, as multiple watch lists/trading accounts.
RW
Purpose
1) To provide a means of facilitating and managing the movement and tracking of trades, from first conception, to trade closeout.
2) To provide an easy alert system for trades under consideration.
3) To capture for later analysis all trades and trade considerations.
4) To provide a framework for an automatic trading system, based on rules and parameters of the DynamicTrend system.
Overview
This modification is an extension of the Watch file that was added to the DynamicTrend system recently. While this Watch list was a good first step, there is still the need to segregate trades among themselves and yet save the information for later analysis. In the Watch file currently, a trade can only exist, or be deleted. With this modification, a trade can exist in various states and branches along a decision tree. In this model, different branches are represented by different files that hold a given trade, and the decision points map directly to processes that occur in actual trading.
The attached diagram represent both a dataflow diagram and a state diagram for a given trade record. Currently, the Watch file does capture basic information of where it came from and what were various settings were at the time of capture. What it does not show is various states of a trade in our analysis and execution. For example, we don’t know, by looking at a given record, if we felt the trade should be entered, or if it has already hit it’s trigger point, or if we are just tracking a trade in progress. This confusion could be addressed by having a note field on each record, where we could note our thinking, or by transcribing the information into other tracking or portfolio systems. But by having it here, in separate files, we can then have one click movement of all our information.
Files
In the diagram, the yellow boxes represent files or screens that already exist in the DynamicTrend system. The additional clear boxes represent additional files that contain trade records, similar to the Watch file, but with a few more fields. Each file’s title implies what it is used for, but I will give a more detailed definition later on. Most lines represent the movement of a trade record from one file to another; that is, the adding of the record to the destination file, and the deleting of the record from the source file. Any record movement should be accomplished by a click of some fashion (select record and button, or right click on record). Any additional data fields should be information available in the environment, such as date and time, current stock price, etc., so no additional typing should be required. These additional fields will be listed later on.
Any lines that point to the Profile screen, or Trade Balance screen do not indicate any movement of data. These lines just represent the lookup of information at the present time, using the current stock symbol of the record currently selected. Lines that are not drawn include a line indicating the export of any file of trades (all files) to a delimited file for analysis by a spreadsheet program. There also needs to be some sort of purge function for the Rejected, Non-Triggered, and Completed files, since these files will only grow via normal system use. Both the export function and purge function should have some sort of record filtering. (i.e. date range, trade type, etc.)
Decision Types
The first decision point is within the Watch file. Here, we will decide if a trade is ready to be accepted for activation, once it hits its trigger point, or if we should reject the trade all together, or watch the trade a little longer. Note that in activation, consideration should be made for long positions already above the trigger price, and short positions below their trigger point. (i.e. should one be warned, since they will automatically trip into the Active trades file?)
The second decision point is within the Setup file. This is, in essence, an alert file that could be monitored by the system. Once a stock hits its trigger point, it should automatically send a signal (sound, blinking, e-mail, etc.) and moved to the Active Trade file. Note that this is the point one could actually place a trade, with most brokers, with an activation trigger. The move to the Non Triggered file would be a manual process that represents canceling of a trade that has not been triggered. Actually, this could also be automatic, base on order type, such as Good for the Day type orders. (i.e. date and time would force a move to the Non Triggered file)
The third file, the Active Trade file, actually is a mirror of some or all of an actual trading account, and serves as the complete basis of a paper trading system. Here, most actions can be automatic, via a stock hitting its goal or limit. The system should allow for the manual closing out of a trade early, or the modification of the stop price, or goal price. A partial closing of a position would be nice, and in a manual closeout, the price, quantity, date or time might have to be adjusted. In all cases, the trade, or the part closed should be moved to the completed file.
Note that by the addition of a status column (Active or Non-Active), the Watch file and Setup file could be combined, as well as the Rejected file and Non-Triggered file. From a programming point of view, the reduction in files would be offset by future complexity in automatic monitoring of the Setup file. I gave this a lot of thought, and concluded it would be better, in the long run, to have two separate files. I defer this decision to the programmer.
Additional Fields
Here, I would like to define each file’s purpose, and the additional fields each should get. Note that each file will keep all the field of its source file. Also, all records, starting with the Watch file records, could use a notes field(s), where any free form text could be added at any time. Maybe an automatic time stamp on any note added would be useful.
It seems that each file should get a date/time stamp when it was moved to that file, as well as the current price of the stock at that time. Instead of repeating this comment for each file, I will just state it here.
Watch
This file will stay as it is now in the DynamicTrend system with the following exception. Records that are not of any current use, but which might be of later interest for analysis will be moved to the Rejected file via some sort of click. Any records ready as a trade should be move to the setup file via click. Consideration should be made to allowing modification of any trigger or exit price as well as quantity to use for a trade.
Reject
As stated above, this file represented trades that are not of current interest, but might want to be referenced in the future for historical purposes.
Setup
This file represents trades that are in a ‘Setup’ state, that is, they are ready to be put in place as a trade, once the stock hits the trigger price. If a stock is already past its trigger price, it should be time stamped, and move immediately to the Active file. Note that a trigger preference should be defined, on a record basis, which says if it is a ‘pass through’ type trigger, or a ‘lower to/raise to’ type trigger. This might be a future modification.
Non Trigger
This file represents trades that were ready to be triggered, but never were. They are saved here for future historical reference. The pruning process, out of the Setup file, is a manual process, but could be automatic via some sort of system preferences. Like the Reject file and Completed Trades files, some sort of purging will have to be done from time to time.
Active
This represents current open trades.
A future enhancement might be the addition of a Date/Time limit field. This field, if extended back to the Watch file and seeded from the Matrix - room size value, could activate the exit of the trade, just as the stop or goal limit does with the price.
Complete
This represents any trade, or part of a trade, that was active at one time, but is no longer.
In addition to the date/time and price stamp appended to each record, a flag representing how the record was closed would be useful. i.e. Goal hit, Stop Limit, or Manual close. Also, a flag of whether the quantity was partial of full at this close. It might be useful to calculate the actual gain or loss in this trade, both the price and gross dollars, as well as the # of days open. This would simplify performance analysis on this file. A future enhancement might also be the inclusion of commission costs.
Future Enhancements
Adding these files and function eliminate most of the mechanical steps we now go through, and allow more time to review the Profile and Trade Balance screens, as well as analyze results of our completed trades.
Ideally, we could have system wide default parameters that would automatically execute any manual steps left. Such steps would be the automatic activation of any watch file record, the automatic movement of non-triggered records, and the saving of the Matrix screening settings. The Matrix screen settings could be saved, by name, along with a schedule (date and time frequency) of which time to run. This would automatically fill the trade hopper into the Watch list file to start the process.
In addition, since we may have multiple criteria that we could save by name, this name could be added to all trade records, thus allowing us to treat this one set of trade files, as multiple watch lists/trading accounts.
RW