Robbie Geary's MI Backtester

This is it! The famous GTR1 tester you've all heard about.

See for instructions on the particulars on the GTR1 backtester. Most of what you see there is what you'll enter here. Enter global options at the top of the form; any left blank will assume the default values.

Enter steps in the "steps" section (obvious, no?). Since the entry boxes are ordered, you don't need to (and shouldn't) put the "step0=" part. You also don't use the two-letter comparison codes, but the standard symbolic equivalents (">=", "top", etc.). The special HTD step contains either or both of a step number and a regular step specification as above.

Enter fields in the "fields" section, both name and value. The field names can be any alphanumeric string, not just "field0" and such. Field files require the suffix that backtester uses, but do not require the ":lag" at the end - if no lag is given zero days is assumed. Field functions use standard function notation (i.e. with parentheses) like the backtester used to use before it went to the colon-separated version.

Step and field definitions are more free-form than the backtester itself accepts. Field functions may reference not only other field names, but direct field files and other functions. Steps may also refer to files and functions directly instead of delegating that to a field. Thus the RRS189-2S252 example for the backtester:

field0=tim.v:0 field1=rrs:0,189 field2=vol:0,252 field3=linear:1,field1,-2,field2 step0=field0et1 step1=field3tn10

can be given as the two steps "tim.v=1" and "linear(1,rrs(0,189),-2,vol(0,252)) top 10".

  Start date:   Holding Period: mkt days   Friction: %    Shrink
  End date:   Rebalance every: periods   Stop-Gain Multiplier:    Count
  Risk Interval: mkt days   Stop-Loss Multiplier:    No cache
Misc. Options:
Steps: (more) Fields: (more) Label : Definition
0:  :
1:  :
2:  :
3:  :
Hold while passing Step and satisfying