Perhaps the methods outlined below are obvious and are not new to
you but I found they helped me so I'll post them for the less experienced
MS users who want to develop more complicated formulae.
1) Before writing a Trading formula I group my variables:
Analog values (Yes: my background is electronics :-)) i.e. those that
can take on any numerical value, like EntryPrice, $Profit, %Profit,
DailyEquity, TradeEquity, DD, etc.
Digital (Binary) variables that can only take on the values of 1 and
0, like: GoLong, GoShort, GoCash, ExitLong, etc.
Mixed variables that, for example, takes on certain specific values
1 (Long), 0 (Cash) and -1 (Short).
2) I develop my trading formula in small steps starting with the lowest/simplest
variable, make an indicator for each variable and
plot/verify them on the price chart. It is very useful to plot your
binary signals too, I often have 3-8 binary signals below the price
chart during the development. Just like a Logic Analyzer ... To make
the signals plot nicely you can multiply them by 5 or 10 and give
them an offset, modify the trace as you like. Like:
GoLong*10;
GoShort*10-20;
GoCash*10-40;
Position*10-60;
etc.
This will make it very easy to see what is happening and whether your
timing is correct - It is often a struggle to get your signals in
sync and this way you can easily modify or add a ref(x,-1) function
and see what happens to the binary signals.
3) When the formula is finished (?) make a backup by adding BAK to
the end of it's name. Now create separate indicators for all significant
variables you defined (with := )in your trading formula. This is very
easy and allows you to use them for debugging and further development
work. Suppose you have a trading fomula named "MySystem" and it contains
a variable named "Position", you can make an indicator to display
this varibale with a single line like FmlVar("MySystem","Position");
You can then use this in other formulae and/or combine a number of
them to allow you to easily plot sets of indicators to facilitate
subsequent work.
4) It may help you to put a custom grid on your chart to more clearly
show the relationship between the various events by adding vertical
lines like this:
If(GoLong, Close,0);
If(GoShort, Close,0);
Plot the value, assign a color of your choice, assign the bar graph
pattern, and set the line-width to this thinnest available. This
combination will plot straight vertical lines up from zero to the
Close or Equity (use P) WITHOUT the zero interconnect that messes
up the display.
5) Now, you got it all working... :-) but are you sure that the numbers
are correct? Next you can (should?) display ALL significant traces
at the same time and copy all the data arrays to Excel to verify vales
and perform parallel/supplementary calculations outside of MS.
To copy a data array you select it (Click on it), place your cursor
on one of the little square handles, right click and copy. Go to Excel,
select your left-upper destination cell and go Edit, Paste Special,
Csv, OK. You'll get a column with dates and one with the values of
the selected chart. You will have to do this trace by trace, putting
them side by side, and Delete the duplicate data columns. Be sure
to also export binary values to show you where the triggers are! Not
only can you verify the calculations performed in MS with parallel
calculations in Excel, you can also perform addition analysis.
To make the Excel sheet easier to read you can select the entire page
and click Format, Conditional Formatting, Cell Value Is, Equal To,
0, Format, Color=White, OK. This will display all zeroes on the page
in white - they will only become visible when you select the area.
6) Now for the ambitious developer :-) You can save your crowded MS
display in a template and when exporting data arrays use Paste Link
instead of Paste in Excel. This will result in a spread sheet that
uses OLEs and the sheet will update automatically with new values
whenever you change formulae - as long as you don't change the names
I presume.
7) If you are more ambitious than that you can make a reverse OLE
link to display a calculated column of values in Excel, in a MetaStock
chart that updates in real time. I have only briefly tested this and
it is NEAT! Lots of possibilities...
Well, in conclusion I must say that while MS has some bugs I enjoy
using the program immensely.
Hope this is useful info,
If you have some debugging techniques of your own to share please
do so.
Happy Trading,
Herman.
Home