Cyan Spring ATS
Open Source Algorithmic Trading Software
Playing with the application
This page is to give a short introduction to Cyan Spring ATS: what the GUI is like, how to create a strategy and the use of the simulator.
- Single Instrument Strategy View
- Multi Instrument Strategy View
- Strategy Property View
- Child Order View
- Execution View
- Strategy View
Please download the binary distribution at here. When you finish download, unzip the file into a directory, say C:\CATS, you will find two directories under it:
Go into C:\CATS\server directory and run server.bat from there. The server comes up with an exchange simulator. You should see the simulator GUI starts up like this:
The simulator works like an exchange where orders are queued and matched by price and time priorities. The simulator also generates market data feed to CATS based on the orders enter which drives the strategies moving. Later on, you may use it to create some market activities to test algo orders.
Next we go into C:\CATS\CSTW\eclipse and run CSTW.exe. You will see CSTW pops up
There are six functional areas(views) in CSTW:
- Single Instrument Strategy
- Multi Instrument Strategy
- Stategy Properties
- Child Orders
- Strategy Logs
Single-Instrument ViewSingle-Instrument Strategy is a strategy contains only one order(Parent order). Sometimes they are refered as client orders by broker's term. Sing Instrument view shows all parent orders in a tabular format. The tool bar in this view provides actions we can take on against parent orders:
- Pause order - the algo engine pauses the auto execution of order, but child orders remain staying in downstream/exchange
- Stop order - the algo engine stops the auto execution of order, all child orders are withdrawn from downstream/exchange
- Start order - the algo engine resume the auto execution of order
- Cancel order - the order is canceled. Algo engine withdraws all child orders(if any) and terminate the auto execution
- Show or hide filter - show or hide a filter panel where you may specify a filtering criteria to narrow down the parent orders shown in this view
- Enter order - entering a new parent order for algo execution. More information are in Entering Order Section
Multi-Instrument ViewMulti-Instrument Strategy is a strategy that trades multiple assets.
- Pause strategy - the algo engine pauses the auto execution of strategy, but child orders remain staying in downstream/exchange
- Stop strategy - the algo engine stops the auto execution of strategy, all child orders are withdrawn from downstream/exchange
- Start strategy - the algo engine resume the auto execution of strategy
- Cancel strategy - the strategy is terminated. Algo engine withdraws all child orders(if any) and strategy container removes the strategy from it
- Enter order - create a multi instrument strategy, currently it opens up a file browse dialgo for you to choose a strategy template to load
The left pane shows a list of multi-instrument strategies and right pane shows the instrument and parameters in the strategy you have selected.
Strategy Properties ViewFrom this view, you are able to see all parameters for a strategy. You may modify those parameters, if they are defined as amendable, by clicking on the following toolbar button:
You may modify a few parameters the same time and commit them by click on the above toolbar button again. The system will prompt you for the changes you made and ask for confirmation.
If the amendment is accepted by server, you will see the parameters are updated in Strategy Properties View. If not, you can check for the error in Strategy Log View.
Child Order ViewHere we show all active child orders for a strategy. Completed/canceled child orders are taken out from this view. When a strategy is running, child orders are managed by the algo engine. However, there are always some cases when you want to take control yourself. You may do so by pausing or stopping the strategy first(in single/multi instrument strategy view), then use the toolbar in this view to operate on the child orders.
Strategy Log ViewStrategy Log View shows all information related to the status strategy running. You can control the information that is useful but not overwhelming to show to the traders(by coding).
Create strategiesCreating a multi-instrument strategy can be done by loading a template file from the C:\CATS\server\templates directory. Creating a single instrument strategy can be done by clicking on the toolbar button in the Single Instrument Strategy View which brings up a dialog like this
Note: stocks can be entered is defined in C:\CATS\server\refdata\refdata.xml
However, it may be more common that a Single Instrument strategy is created by sending a parent orders from some upstream connections such as(but not limited to) FIX. If you have a FIX application, you may send FIX order to CATS. CATS FIX settings for upstream connection is as following:
ConnectionType=acceptor SenderCompID=ACCEPTOR1 SocketAcceptPort=13678 BeginString=FIX.4.2 TargetCompID=INITIATOR1
The following are FIX custom tags to order parameters mapping:
<entry key="6001" value="Strategy"/> <entry key="6002" value="Start Time"/> <entry key="6003" value="End Time"/> <entry key="6010" value="POV"/>
Child Orders and Simulator
Click on the Child Order View, every child order you find there should have a matched one in the exchange simulator. Orders sent by algo in simulator are marked with 'algo' broker id. You may change the bid/ask price/volume of the market by entering some orders into the simulator to test the strategies.
Unless you know exactly what you are doing and understand the strategies well. You may want to test one algo order at a time(e.g. stop the rest of order you are not testing). A few strategies running at the same time in simulator can cause confusion since they react to each other's movement in market.