a system runs on two signals: long and short
these terms imply buying shares when the long signal is triggered
and selling shares short when the short signal is triggered. in
either case a new position is thus opened (or maybe added to)
for the security that caused the signal.
a generic system description requires two signals, the first
must define the long signal, the second defines the short signal.
out on a limb here -- a system description can specify only
one long and one short signal
nb: the short signal will not necessarily close a position
opened by a prior long signal. open position management is
controlled by a close strategy.
according to GT::Systems a signal is acted upon in the following
day (timeframe). if a position is opened (long or short) closing
that position is controlled by a close strategy (CS). therefore,
most system descriptions will also include a close strategy
description.
system description can specify multiple close strategies
system description can specify multiple money management (MM)
strategies
how does OrderFactory (OF) fit in with system description?
SY:Generic \
{S:Generic:CrossOverUp {I:SMA 20 {I:Prices CLOSE}} {I:SMA 60 {I:Prices CLOSE}}} \
{S:Generic:CrossOverDown {I:SMA 20 {I:Prices CLOSE}} {I:SMA 60 {I:Prices CLOSE}}} \
| TF:OneTrade \
| CS:OppositeSignal
the CrossOverUp signal denotes the buy condition
the CrossOverDown signal denotes the sell condition
notice that the close strategy explicitly specifies that the short
signal is also used to close open positions, and conversely
short positions are closed with the long signal.
the trade filter (TF) (see perldoc ../GT/TradeFilters.pm) will limit
the number of open positions (either long or short) to one, however
it will allow a new open position and a closed postion in the same timeframe.
system descriptions can specify multiple trade filters
SY:Generic inherits new from GT::Systems::