This project is read-only.

A quick intro to STSS - the Getting Started manual

Download and install

Just download the latest release zip file from the Downloads section and extract it to wherever you want. STSS is designed to be a "portable" application needing no installation and leaving no traces in your system files (future versions are going to include optional configuration saving and enterprise-friendly deployment features though). Run the STSS.DotNet.WF.exe file to start.

Configure your data sources

(see instructions below the picture)

  1. Press the "Data Sources..." button on the tool bar to bring up the data sources list window
  2. Fill in the name (it can be any lowercase alphanumeric (English letters and digits only) sequence you like, reasonably short names are recommended)
  3. Select the data source type (CSV (text) files of STSS-specific format (see the format below), MetaStock CSV (text) files, SQLite3 and MS SQL Server databases (see the table definition below) are supported)
  4. Enter the connection string for the database (just a full file name in case of a CSV file)
  5. Press the "Add" button to include your newly defined data source in the list
  6. Press the "Set default" button to set the selected data source as default (the first data source you add is set to be default automatically)
You can use the CSV file provided in the download section for example purposes.

The result will be something like this

Now you can just close the data sources set-up window by pressing Ctrl+F4 or clicking the cross in its title bar (the list is always saved as soon as modified).

You will have to do this every time you start STSS. Persisting, importing and exporting this list will become possible in future versions.

Create or open a document

Just use the conventional buttons at the toolbar left.

Do the job

  1. Select a new block type from the "New block" menu
  2. Click on a free work space to place the new block
  3. Double-click on a block to set the parameters (this is very important, the things won't work if you forget to do this or do something wrong, see the parameters guide below to avoid this)
  4. Interconnect blocks by dragging output connectors to input connectors
  5. Click the "Run" button to run the analysis algorithm you have designed
  6. See the output plotted on the "Output plot" tab
  7. See the results table on the "Output grid" tab
  8. Configure the result plot axes (to zoom it in/out)
  9. Auto-configure the result plot axes (to make all the data fit in it nicely)
  10. Configure the result grid (hide/show/rename columns)
  11. Export the result data to a CSV file (exactly the way you see it in the grid)


  1. Use Y00-Y05 output block inputs to plot at the primary chart area (above the candlesticks if any)
  2. Use Y10-Y15 output block inputs to plot at the secondary chart area
  3. Use Y20-Y25 output block inputs to plot at the tertiary chart area
  4. Hold Alt and click on a connector to remove all the connections going to/from it
  5. Select a block and press "Delete" keyboard button to remove a block (all connections it had are removed automatically)
  6. Scroll the working area by dragging a block or a selection frame through a work area edge
  7. Don't use more than one output block in a document - only one output is expected, no more, no less
  8. Using more than one input is also undebugged (but is intended to be supported in future versions)
  9. If you omit a block parameter or write it a wrong way the things won't work or the program will crash as soon as you try to execute the analysis (see the parameters guide below to)
  10. If a file can't be read/written or anything else goes an imperfect the program may crash as well
  11. Using "Reload", "Reset" and "Stop" buttons is not recommended. The things are not debugged well enough yet (though they work in the majority of cases). Just save, close and reopen the document manually instead, it is just some clicks more.
  12. Problems may occur if your system is configured to use a comma as a decimal fraction separator, use the point please

Parameters guide

  1. Never include quotes, spaces, commas or anything else like this in the parameters
  2. Ss ("source string") is a virtual connection string written as "stssds://datasourcename" (without the quotes) where "datasourcename" is a name of those you have defined in the data sources list window, "stssds://default" points to the default data source whatever its actual name is
  3. "Bs" stabds for "base" to let you address several independent data sets in a single file/table, "def" stands for default
  4. "NSym" and "DSym" are the quoted (numerator) and the base (denominator) "symbols" (like "usd" for the $US, "eur" for €, "gbp" for £, "msft" for Microsoft shares, "kg" for a kilogram, "one" for a dimensionless value (0.01 one equals 1%))
  5. "Tfr" stands for time frame: "y01" for annual, "q01" for per-quarter, "n01" for monthly, "d01" for daily, "h01" for hourly, "h03" for per 3 hours, "m10" for per 10 minutes etc.
  6. Date/time (like FDt (first date/time point to include in the series) and LDt (the last one)) parameters must be specified in the short ISO 8601 format like YYYY-DD-MMtHH:mm (HH means the 24-hour system), are intended to be in the UTC zone and must be timeframe-conformant (e.g. hours and minutes always null for daily data, minutes always 0 for hourly, etc.)

CSV input files and databases structure

  • To be used for data input a CSV file must have no header, use commas as the fields separators, points for decimal fraction separator, contain no other symbols (but numbers, points, commas, minuses and e (for scientific real number notation)) and have all the records of exactly the same length
  • A database (like SQLite or MS SQL Server) must contain a table names "stss" containing the same fields structure
  • If only a single observation was made for every time point, fill all the "opv". "hiv". "lov". "clv" with the same value and use the "clv" channel to access the data
  • Use "def" for the "bs" value unless you actually want to use something else and have a rational idea of why do you want that
  • Don't use uppercase, spaces or special symbols in the fields
  • Decimal/numeric data type is recommended for storing real values in databases to avoid precision loss float/real/double types introduce.
  • The time/date field is intentionally split into separate fields to avoid using data types that are not common and uniform among all the database management systems and libraries, the same idea is behind using integer type for a boolean field ("iss").

The fields are:
  1. bs, varchar (a "base" for addressing separate data sets in a single physical table)
  2. nsym, varchar (the quoted (numerator) "symbol" (like "usd", "msft", "kg", etc.))
  3. dsym, varchar (the the base (denominator) "symbol")
  4. tfr, char(3) (timeframe (like "y01, "n01", "d01", "h01, "m10" etc.))
  5. year, integer
  6. month, integer
  7. day, integer
  8. hour, integer
  9. minute, integer
  10. iss (1 if the record is not real but computed with interpolation to fill a gap, 0 if a real observation)
  11. opv, real (decimal) ("open value" - value at the beginning of the time point frame)
  12. hiv, real (decimal) ("high value" - peak value inside the time point frame)
  13. lov, real (decimal) ("low value" - lowest value inside the time point frame)
  14. clv, real (decimal) ("close value" - value at the end of the time point frame)
  15. vlv, integer ("volume value" - a measure of intensity during the time point frame)

Last edited Apr 21, 2014 at 7:53 PM by StrangeAttractor, version 15