Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Deltix Integrated Installer/Product Configuration Test Plan
- Execution History:
- Date:
- Executed by:
- Version Tested:
- Comments:
- 2009-05-20
- Brian M.
- 4.1.7331 (QuantOffice R4.1.29)
- Initial test plan creation for basic installation. Working with offline installer.
- 2009-05-28
- Brian M.
- 4.1.7518
- (QuantOffice R4.1.44)
- Updated based on latest versions.
- Web Installer
- 2009-06-08
- Brian M.
- 4.1.7741 (QuantOffice R4.1.55)
- Updated based on latest versions.
- Web Installer
- 2009-06-25
- Brian M.
- 4.1..8032
- (QuantOffice R4.1.60)
- First complete integrated installer release. Completed configuration testing (main positive path).
- Installation Configurations:
- a. Online installer - all components, proxy configuration.
- b. Online installer - QuantServer on server, QuantOffice on client.
- c. Offline installer - no internet/with internet.
- 1. Installation
- Integrated installer test plan should be executed with online installer prior to official release.
- Instructions for creating web/offline integrated installer can be found here.
- a. Online installs can be found here. Launch installer by selecting "Launch" for particular version.
- i. Welcome screen:
- ii. Select Next and Accept License Agreement:
- iii. Define root installation folder.
- Select "Yes" to creating directory.
- iv. Enter Serial Number (major version 4): 4746-120B2034F41-XXXX. Select Next.
- v. Define QuantOffice Configuration: Installation Name. Select Next.
- vi. Select ALL components to install. Select Next.
- vii. Configure QuantServer options. Select Next.
- Select "Yes" to create QuantServerHome directory.
- viii. QuantServer installation process begins. Select "Next" once completed.
- ix. QuantServer service will be installed and started. Select "Next" once completed.
- x. QuantOffice installation process begins. Select "Next" once completed.
- xi. QuantOffice sample strategy installation begins. Select "Next" once completed.
- xii. Select "Finish" on Installation completed panel.
- xiii. Installation should result in following directory structure:
- 2. QuantServer/QuantOffice Configuration
- This section will execute basic checks that verify the installation/configuration between QuantServer/QuantOffice and sample data was installed/configured successfully.
- a. Configure QuantServer Logging.
- i. By default, QuantServer stores log files into <INSTALL_HOME>\QuantServerService directory. The logger.properties file being used is referenced within the <INSTALL_HOME>\QuantServerService\Config.txt file. Definition can be reviewed in step b-iii below. The default logger.properties does not contain many log levels. It is recommended that the <INSTALL_HOME>\QuantServer\bin\logger.properties file be used instead. Copy this file to the <INSTALL_HOME>\QuantServerService directory. Once copied, edit the file and modify the "java.util.logging.FileHandler.pattern" property so that it points to the log directory you would like. I typically created a "<INSTALL_HOME>\Logs" directory for all logging.
- java.util.logging.FileHandler.pattern = <INSTALL_HOME>/Logs/deltix_%u_%g.log
- b. Verify that QuantServer service is running through services panel.
- i. Verify that the name specified in step 1e is used in naming service.
- ii.. Verify properties of service match the ones specified during installation - step 1g. For example, Service Mode and Run as User.
- iii. Verify remaining configuration settings by reviewing <INSTALL_HOME>\QuantServerService\Config.txt file. Review settings saved at the end of the file. For example, QuantServerHome, port, and memory settings.
- -Djava.util.logging.config.file=E:\QATesting\4.1\ProductionTesting\Deltix.20090520\QuantServerService\logger.properties
- -Ddeltix.home=E:\QATesting\4.1\ProductionTesting\Deltix.20090520\QuantServer
- -Ddeltix.qsrv.home=E:\QATesting\4.1\ProductionTesting\Deltix.20090520\QuantServerHome
- -Ddeltix.qsrv.port=8070
- -Ddeltix.qsrv.service.name=qs.8070
- -Djava.library.path=E:\QATesting\4.1\ProductionTesting\Deltix.20090520\QuantServer\bin
- -Xms64m
- -Xmx1000m
- -Xrs
- ii. Restart QuantServer service to take new logger.properties file that was updated in step a-i above.
- c. Verify "QuantOffice <Installation Name>" folder has been placed on your desktop.
- d. Verify QuantOffice/QuantServer configuration connection/data provider settings.
- i. Launch QuantOffice using shortcut within desktop folder. Connection settings defined during installation process should be automatically configured and successful connection should be made. Select "Connections..." to verify settings.
- ii. Verify Data Provider settings. There should be a Tick Source called "Futures Tick Data" defined.
- e. Verify ability to chart tick data that is stored within tick database.
- i. Select "Market Symbols" link from QuantOffice Task Pane.
- ii. Select "Futures" tab. You should see 4 futures listed:
- iii. Highlight all symbols and select "Chart" icon.
- iv. Accept default settings on Chart dialogue and select "OK".
- Resulting chart with 4 week range for future "ESH9" should be:
- f. Verify sample strategy, "MktLmtStp_ESNQ", installation.
- i. Select "Instrument Strategy" link from within QuantOffice Task Pane.
- ii. Highlight strategy and select "Build" icon.
- iii. Once strategy is built successfully, highlight it again and select right-mouse-button > Strategy Runner.
- iv. Enter "ESH9" for symbol (use auto complete to select). Accept rest of the default settings and select "Start".
- v. Expand entire input tree settings and modify simulation mode parameter. Change from "Intraday Bar" to "Trade". Accept remaining default parameters and Select "OK".
- vi. Strategy execution should result in the following with a 1 hour time range:
- 3. QuantServer Timebase Manager
- This section will load the sample 1 minute bar data from <INSTALL_HOME>\SampleData\stocks directory using Timebase Manager and verify access to data through QuantOffice.
- a. Launch Timebase Manager using shortcut within desktop folder.
- b. Select File - Open Remote Database:
- c. Verify that default connection has correct QuantServer port that was defined during the installation process. Select "Read Write".
- d. Highlight Timebase node and select "Create Stream" icon.
- Note: You should see the installed tick database "ES+NQ Future Trades" that was used in section 2 above.
- e. Create stream with the following parameters. Select "Next".
- f. Complete the following changes to "Setup Built In Message Types":
- i. Enable "currencyCode" check box and define a static currency code. For example, 840.
- ii. Change Unit for "barSize" to "Minute".
- Accept remaining default selections for Built In Message Types and select "Create".
- g. Highlight Stream and select right-mouse-button > "Import from Text File".
- h. Select "Next" on initial dialogue.
- i. Select "Add" and navigate to <INSTALL_HOME>\SampleData\Stocks directory. Highlight all sample files and select "Open".
- j. Define Bar Time as close. Select Next.
- k. Import data with the following setup parameters. Select Next.
- l. Enter default value for exchangeCode and select Begin Loading.
- m. Select OK when operation completes successfully.
- n. Add a new price sources definition for "1minuteBars" stream to <INSTALL_HOME>\QuantServerHome\shared\QuantOfficeSysFields.xml file so that minute bar data can be used in QuantOffice.
- <SystemFieldsInfo>
- <CompanyNameField>INFO.Name</CompanyNameField>
- <ExchangeField>INFO.ExchangeCode</ExchangeField>
- <SymbolTypeField>INFO.Type</SymbolTypeField>
- <SynonymFields>
- <SynonymDefinition>
- <Synonym>'/' + SYSTEM.KEY</Synonym>
- <Datasource>Futures Tick Data</Datasource>
- </SynonymDefinition>
- </SynonymFields>
- <TickSources>
- <TickDBDataSourceInfo>
- <Name>Futures Tick Data</Name>
- <StreamName>trades</StreamName>
- </TickDBDataSourceInfo>
- </TickSources>
- <PriceSources>
- <TickDBDataSourceInfo>
- <Name>1 Minute Sample Bar Data</Name>
- <StreamName>1minuteBars</StreamName>
- </TickDBDataSourceInfo>
- </PriceSources>
- </SystemFieldsInfo>
- o. Add symbol data to <INSTALL_HOME>\QuantServerHome\config\Tickers.csv file.
- Type,Key,ExchangeCode,Name,ContractMultiplier,Tick,CurrencyCode
- Futures,ESH9,CME,S&P500 EMINI FUT Mar09,50.00,0.25,USD
- Futures,ESM9,CME,S&P500 EMINI FUT Jun09,50.00,0.25,USD
- Futures,NQH9,CME,NASDAQ EMINI FUT Mar09,20.00,0.25,USD
- Futures,NQM9,CME,NASDAQ EMINI FUT Jun09,20.00,0.25,USD
- ,,,,,,,
- Stock,GOOG,UR,Google Inc.,,,USD
- Stock,AAPL,UR,Apple Inc.,,,USD
- Stock,IBM,UP,International Business Machines Corp.,,,USD
- Note: Restarting of server is not required as QuantServer should automatically pick up the new symbols.
- p. New exchange codes have been introduced given new symbols. The <INSTALL_HOME>\QuantServerHome\Shared\Exchanges.csv needs to be updated with new exchange codes. The quickest way to add them is to copy complete <INSTALL_HOME>\QuantOffice\Data\Exchanges.csv file to <INSTALL_HOME>\QuantServerHome\Shared directory. This new exchanges.csv file contains a large list of exchange codes that are used to map to a calendar. If a particular exchange code is not defined within Exchanges.csv file, which results in an undefined trading calendar when attempting to chart in QuantOffice, a default one will be used.
- Example Exchange.csv file:
- Code,Name,MIC
- UP,NYSE Arca,ARCX
- IX,INSTINET CHI-X LTD,CHIX
- DU,DUBAI INTERNATIONAL FINANCIAL EXCHANGE LTD,DIFX
- QD,DOHA SECURITIES MARKET,DSMD
- GW,EUWAX,EUWX
- q. Restart QuantOffice and verify that new symbols appear under "Market Symbols" - "Stocks" tab.
- r. Verify that QuantOffice has picked up the new Intraday Data Provider setting in QuantOfficeSysFields.xml file. This should be automatically selected when there is a single price source (Intraday, Daily, Ticks) defined in QuantOfficeSysFields.xml file.
- i. Select "Connections..." link from Task Pane and then "Data Providers" button.
- ii. Intraday setting should contain new 1 minute bar definition. Select OK.
- s. Select "Market Symbols" link in Task Pane to review new Stock symbols that have been added.
- Note: You can alter the layout for windows by selecting "Window - Layout". This allows you make certain windows Dockable or a MDIChild (embedded in QO UI). Change layout for charts so that they are embedded in QuantOffice client by selecting "MDIChild" for "Charts":
- t. Highlight all symbols and select "Chart" icon.
- u. Modify Data Type for Chart parameters from "Tick Prices" to "Minute Prices". Accept remaining default parameter values and Select "OK".
- i. Modify chart display by selecting Properties icon from existing chart window.
- 1. Change Max Visible Charts to 3. Select "OK".
- ii. Chart should result in the following with a 1 month range:
- 4. UHFS Configuration using ikvmdriver.exe
- Typical customer deployment relies on ikvmdriver.exe to run UHF server. In this example, UHF will use RealTick as data feed provider (can also use IQFeed if working with equities and only rely on real-time data from NYSE and NASDAQ) and ITG as trading service. All supported feed/trade providers and the required configurations can be found here.
- Note: Make sure QuantServer service is running.
- a. Configure UHF Server Logging (ikvmdriver.exe.config)
- i. UHF Server logging is controlled by <INSTALL_HOME>\QuantServer\build\dotnet\ikvmdriver.exe.config file when using ikvmdriver. This file points to the logger.properties file that should be used. Edit this file and modify "ikvm:java.util.logging.config.file" so that it uses <INSTALL_HOME>\QuantServerService\logger.properties file.
- Note: This file is not currently packaged with installer. You can download file here.
- <appSettings>
- <add key="ikvm:specVersion" value="7.1" />
- <add key="ikvm:implVersion" value="20080821" />
- <add key="ikvm:java.util.logging.config.file" value="E:\QATesting\4.1\ProductionTesting\Deltix.20090526\QuantServerService\logger.properties" />
- </appSettings>
- b. Configuring UHF home. In 4.1, the notion of a UHFS home directory was introduced. We will use the <INSTALL_HOME>\QuantServerHome directory as our UHF home. A "config" directory within this directory should contain 2 UHF related sample configuration files: aggregator.xml and uhfs.properties. By default, these files are not installed into this location. Copy sample files from <INSTALL_HOME>\QuantServer\build\classes\config directory to <INSTALL_HOME>\QuantServerHome\config directory.
- c. Modify the uhfs.properties file based on our test case. Replace default contents with the following:
- # server id (optional, default PC hostname)
- uhfs.id=uhfs41
- # user (optional)
- #uhfs.user=john
- # password (optional)
- #uhfs.password=pa@!344
- # use embedded message queue (optional, default false)
- uhfs.activemq=true
- # mq URL (either mq or activemq property must be specified)
- #uhfs.mq=tcp://oscsqa:61616
- # feed provider bean id (optional)
- uhfs.feed=
- #TickDB.Path=dxtick://localhost
- #TickDB.Stream=ticks
- # trade broker bean ids (optional)
- #uhfs.trade=NO-MARKET-SIM
- # whether to store orders to db (optional, default false)
- #uhfs.db=true
- UHFS.Database.Dialect=SQLServer
- UHFS.Database.Host=localhost
- UHFS.Database.Port=1433
- UHFS.Database.Username=sa
- UHFS.Database.Password=password
- UHFS.Database=uhf
- UHFS.Database.LogSQL=false
- #
- # Turn off timestamping all messages by local time in IQFeed connector
- #
- #IQFeed.Config.useSysTime=false
- # dll search path - <INSTALL_HOME>\QuantOffice\bin directory
- UHFS.DLLSearchPath=E:\\QATesting\\4.1\\ProductionTesting\\Deltix.20090520\\QuantOffice\\Bin
- d. At this point, you should be able to start UHF server successfully by launching <INSTALL_HOME>\QuantServer\bin\uhfs.net.cmd with the -home argument. This flag should point to the <INSTALL_HOME>\QuantServerHome directory.
- Note: I have added -rpc http for client > server communication.
- uhfs.net.cmd -home <INSTALL_HOME>\Deltix.20090609\QuantServerHome -rpc http
- This should result in the following CMD window:
- e. Add RealTick feed to UHF server configuration. Stop UHF server by using CTRL-C in CMD window.
- Pre-requisite: RealTick install. Default RealTick installation should be placed into C:\TAL directory.
- i. Once RealTick is installed, define uhfs.feed setting in uhfs.properties. For example, uhfs.feed=RealTick
- Note: For 64 bit users - 32 bit ikvmdriver.exe is required when using realtick.dll. Replace existing <INSTALL_HOME>\QuantServer\build\dotnet\ikvmdriver.exe with <INSTALL_HOME>\QuantServer\build\dotnet\ikvmdriver32.exe.
- iii. Now that the -feed flag has been introduced we will want to suppress aggregator from starting with UHF server. We will configure this separately. Restart server using same command as in step d above and also append -noaggregator.
- uhfs.net.cmd -home <INSTALL_HOME>\Deltix.20090609\QuantServerHome -rpc http -noaggregator
- f. Restart UHF Server to test feed connection.
- g. Add ITG RedSky test account to UHF server configuration. Stop UHF server.
- i. Define uhfs.trade setting in uhfs.properties file. For example, uhfs.trade=FIX
- ii. Add the following "FIX.*" ITG related account properties:
- # ITG Test Account
- FIX.UserName=deltix3
- FIX.Password=<email [email protected] for password>
- FIX.Account=105375
- FIX.SenderCompID=DELTIX3
- FIX.SenderSubID=DELTIX3
- FIX.TargetCompID=ITGD
- FIX.TargetSubID=ITGD
- FIX.SocketConnectHost=testfix.redskyfinancial.com
- FIX.SocketConnectPort=10342
- FIX.TradeCommission=0.26
- FIX.HeartBtInt=30
- FIX.ResetSequenceNumbers=true
- iii. Restart server:
- uhfs.net.cmd -home <INSTALL_HOME>\Deltix.20090609\QuantServerHome -rpc http -noaggregator
- You should see the following - FIX connection:
- h. Update symbol mapping between RealTick/ QuantOffice/ITG by adding UHF data source.
- i. Add <SynonymDefinition> to <INSTALL_HOME>\QuantServerHome\shared\QuantOfficeSysFields.xml to map SYSTEM.KEY (ITG format) to RealTick format. For example, SYSTEM.KEY format (ITG) is "ESH9" and with synonym definition, RealTick mapping becomes "/ESH9".
- <SynonymFields>
- <SynonymDefinition>
- <Synonym>'/' + SYSTEM.KEY</Synonym>
- <Datasource>UHF</Datasource>
- </SynonymDefinition>
- <SynonymDefinition>
- <Synonym>'/' + SYSTEM.KEY</Synonym>
- <Datasource>Futures Tick Data</Datasource>
- </SynonymDefinition>
- </SynonymFields>
- Note: Definition of synonym is based on feed provider format. Forward slash in definition "'/' + SYSTEM.KEY" is only required for RealTick provider. Other providers like IQFeed may use the same symbol format as ITG. This would result in the following definition:
- <SynonymFields>
- <SynonymDefinition>
- <Synonym>SYSTEM.KEY</Synonym>
- <Datasource>UHF</Datasource>
- </SynonymDefinition>
- </SynonymFields>
- 5. Aggregator Configuration using Java (ikvmdriver may be required based on feed provider)
- Aggregator is used to capture historical/real time data from specified feed and store it into QuantServer tick database. It is recommended that the UHF Server and aggregator run as separate services where the tick database being populated by aggregator will provide feed data to UHF server. RealTick requires that we run aggregator using ikvmdriver.
- Note: The recommended configuration is to run aggregator using Java given the performance/optimization benefits. The end results will be the same either way. If you are able to run with java, start aggregator using qsagg instead of qsagg.net referenced below.
- a. Stop UHF server.
- b. Aggregator configuration is defined within <INSTALL_HOME>\QuantServerHome\config\aggregator.xml. Modify the aggregator.xml file based on our test case. Replace default settings with highlighted sections below (verify tickDB URL:Port, period, types, stream name, and future symbols).
- <aggregator
- xmlns="http://xml.deltixlab.com/internal/quantserver"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <!-- Note QuantServer port number specified during installation -->
- <tickDB>dxtick://localhost:8041</tickDB>
- <!-- Period can be absolute date (formatted as "yyyy-MM-dd") or relative period, e.g. 3 months: "3M" (YQMWDHISX) -->
- <period>5D</period>
- <!-- Market message types to record. Valid values: TYPE_TRADE, TYPE_BBO, TYPE_BAR -->
- <type>TYPE_TRADE</type>
- <type>TYPE_BBO</type>
- <!-- BBO and Trade stream where data is stored. Aggregator will create stream if it does not exist. -->
- <streamName>Ticks</streamName>
- <!-- Future symbols should be updated based on expiration dates. -->
- <!-- June 09 contracts -->
- <future>/ESM9</future>
- <future>/NQM9</future>
- <!-- Instruments to record based on instrument type. Examples:
- <equity>MSFT</equity>
- <equity>APPL</equity>
- <option>QFTAF</option>
- <option>QFTAF</option>
- <future>/NQM9</future>
- <future>/NQU9</future>
- <future>/ESU9</future>
- -->
- <!-- Number of live data messages (per instrument) that will be buffered while Aggregator restores history -->
- <bufferSize>4096</bufferSize>
- <!-- Frequency of TickDB stream flushes -->
- <numberOfMillisBetweenFlushes>100000000</numberOfMillisBetweenFlushes>
- <!-- Prevents scheduled flush if less than given number of messages are written -->
- <minNumberOfMsgsToFlush>100</minNumberOfMsgsToFlush>
- <!-- Minimal time range for historical query (in millis) -->
- <minHistoricTimeRange>15000</minHistoricTimeRange>
- <!-- Timestamp of "Delayed" messages will be automatically corrected to "baseline" if delay is less than specified value (in millis). Set 0 to disable correction. -->
- <maxTimestampDiscrepancyToCorrect>2500</maxTimestampDiscrepancyToCorrect>
- <!-- Time interval (in milliseconds) for buffered sorting rule. Zero value means that the rule is off. -->
- <bufferedInterval>0</bufferedInterval>
- <!-- Time interval (in milliseconds) for skip sorting rule. Zero value means that the rule is off. -->
- <skipInterval>0</skipInterval>
- <!-- Bar size in milliseconds (not suitable for large bars) -->
- <barSize>60000</barSize>
- <!--
- <timezone>America/New_York</timezone>
- Profile settings
- numberOfHistoricalThreads = Number of worker threads responsible for history restoration. Large number of threads will restore history faster at risk of losing live data due to extensive CPU/IO load
- Example 1: Single default profile
- <profile>
- <name>Dafault</name>
- <numberOfHistoricalThreads>1</numberOfHistoricalThreads>
- <numAttemptsBeforeTaskReschedule>2</numAttemptsBeforeTaskReschedule>
- <historicalQueryPageSize>00:15:00</historicalQueryPageSize>
- </profile>
- Example 2: Separate Day / Night profiles
- <profile>
- <name>Day</name>
- <startTime>3:00:00</startTime>
- <numberOfHistoricalThreads>1</numberOfHistoricalThreads>
- <numAttemptsBeforeTaskReschedule>2</numAttemptsBeforeTaskReschedule>
- <historicalQueryPageSize>00:10:00</historicalQueryPageSize>
- </profile>
- <profile>
- <name>Night</name>
- <startTime>21:00:00</startTime>
- <numberOfHistoricalThreads>10</numberOfHistoricalThreads>
- <numAttemptsBeforeTaskReschedule>3</numAttemptsBeforeTaskReschedule>
- <historicalQueryPageSize>02:00:00</historicalQueryPageSize>
- </profile>
- -->
- <!-- Advanced options
- <frequencyOfStatReports>60000</frequencyOfStatReports>
- -->
- <maxReasonableHistoryLag>600000</maxReasonableHistoryLag>
- <profile>
- <name>Dafault 1</name>
- <numberOfHistoricalThreads>2</numberOfHistoricalThreads>
- <numAttemptsBeforeTaskReschedule>5</numAttemptsBeforeTaskReschedule>
- <historicalQueryPageSize>01:00:00</historicalQueryPageSize>
- </profile>
- </aggregator>
- c. Start aggregator using <INSTALL_HOME>\QuantServer\bin\qsagg.net.cmd file Supply -feed and -home arguments.
- qsagg.net.cmd -feed RealTick -home <INSTALL_HOME>\Deltix.20090609\QuantServerHome
- This should result in the following CMD window:
- d. You can also confirm data storage using Timebase Manager.
- i. Launch Timebase Manager using shortcut within desktop folder.
- ii. Select File - Open Remote Database.
- iii. Verify that default connection has correct QuantServer port that was defined during the installation process. Select "Read Only".
- iv. Expand stream defined within aggregator.xml file. In this case, "Ticks" was defined as stream name. Expand node and view symbols. Stream should contain the 4 symbols defined within the aggregator.xml file. Highlight entire stream or symbol and select right-mouse-button > View
- e. Now that the aggregator is configured, we want UHF Server to pull data from QS instead of having 2 direct connections to feed provider. This requires that we modify the uhfs.feed flag in the <INSTALL_HOME>\QuantServerHome\Config\uhfs.properties file and also uncomment TickDB.* property settings.
- i. Update uhfs.properties. Uncomment following properties (verify port and stream) and change uhfs.feed from "RealTick" to "TickDB".
- uhfs.feed=TickDB
- # Used with -feed TickDB (uhfs/aggregator configuration)
- TickDB.Path=dxtick://localhost:8041
- TickDB.Stream=Ticks
- ii. Restart UHF Server.
- Note: You may need to update symbols list depending on instruments you are working with. This process was outlined in Step 3-o of the Timebase Manager section.
- 6. Generating Market for Futures Strategy Execution using MarketMaker Algorithm
- We will use QuantOffice Blotter to deploy the Market Maker algorithm (built into <INSTALL_HOME>\QuantOffice\bin\UHFConnector.dll) into UHF Server. This algorithm will generate a market for the futures strategy we will be using.
- a. Launch QuantOffice Blotter using shortcut within desktop folder.
- b. Add Algorithm
- i. Select Add - Algorithm
- ii. Define Name, Source - search for <INSTALL_HOME>\QuantOffice\bin\UHFConnector.dll (Change search items to C# Libraries), and select MarketMakerAlgorithm. Select OK.
- iii. Define Algorithm Configuration Properties. Select OK.
- iv. Highlight MarketMakerAlgorithm and select right-mouse-button > Start.
- v. Define Remote UHF Server connection. Select OK.
- vi. Once deployed, highlight strategy row and select "Input Parameters" icon
- Note: Existing issue requires user to select Refresh in order to see icons related to User Channels.
- vii. Define input parameters. Select Submit. Select Close.
- c. Verify market is being generated by algorithm.
- Note: Can also use "Orders" icon within Blotter to verify order submission from Market Maker algorithm.
- Pre-requisite: ITG Matrix client is required. You can download and install client from here.
- i. Start Matrix client and log in using the following ITG account (same as uhfs.properties info). Select Connect.
- Server:
- testtrading.redskyfinancial.com
- Username:
- deltix3
- Password:
- <received in email>
- Account:
- 105375
- ii. Open Order Status window from menu that appears in top left of screen.
- iii. You will see the limit order that was submitted via Blotter and can now use this client to monitor all order submissions generated by strategy.
- 7. Deploying Sample MktLmtStp_ESNQ Futures Strategy in Blotter
- We will use QuantOffice Blotter to deploy futures strategy into UHF Server. We will first run strategy using QuantOffice OrderSimulator as the OrderExecutor to verify general configuration and strategy logic. We'll then execute algorithm using ITG test account. Execution of strategy will verify Market, Limit, and Stop Orders (TimeInForce for all orders being "Day"). We will verify order submission using ITG Matrix client as described in step 6 above.
- a. QuantOffice Blotter should be open from step 6 above. If not, open it using shortcut within desktop folder.
- b. By default, you should see MktLmtStp_ESQN already added to Strategies list.
- Note: If strategy does not exist execute the following steps:
- i. Select Add - Strategy.
- ii. Highlight " MktLmtStp_ESNQ" strategy and select OK.
- iii. Define Strategy Configuration Parameters.
- 1. Define name, server, and strategy ID. Select OK.
- c. Highlight strategy and select "Edit configuration parameters" OR if strategy did not exist, select "Yes" to edit configuration parameters when prompted.
- i. Our first test will use QuantOffice OrderSimulator as the OrderExecutor. Accept the default for all parameters except the following that are highlighted.
- iii. Select Save and close XEditor.
- e. Highlight strategy and select right-mouse-button > Start.
- i. Define remote server connection and select OK.
- ii. After initialization, a strategy window will appear. Select "Show Details" box to see details of submitted orders.
- vii. Highlight "Strategy ID" row and select Stop icon
- f. Deploy strategy using ITG test account.
- i. With row still highlighted, select right-mouse-button > Edit Configuration Parameters. We will now send orders to ITG test account.
- ii. Scroll down the XEditor window to the OrderExecutor section. Select drop down and change from OrderSimulator to UHF.
- iii. Expand OrderExecutor section to define UHF properties. Define highlighted parameters. Save and close XEditor.
- Note: ITG RedSky uses the following exchange/instrument type combinations:
- Instrument Type:
- Exchange:
- Equities
- XBOX
- Futures
- GLOBEX
- Options
- TEST
- iv. Highlight Strategy ID again and select Start icon
- v. Submit an manual order right after strategy execution has started to verify ITG connection.
- 1. Select "Show Details" checkbox.
- 2. Select "New Order" pull down from Output section and select "Limit Order". Can test all other order types.
- 3. Define Limit Order parameters as follows (changing price based on current value):
- 4. You should see that the order has been submitted in Blotter Output section. You can also use the matrix client used in step 6 above to verify order submission.
- OR
- 5. Test all possible order types using manual approach and/or allow strategy to submit order.
- 8. Adding Order Persistence to Configuration
- We will use Apache Derby for our database and run it embedded with our QuantServer instance for our order persistence configuration.
- a. Stop QuantServer through Services dialogue.
- b. Embed Apache Derby into QuantServer by adding <derby/> tag to <INSTALL_HOME>\QuantServerHome\config\server.xml file:
- <config
- xmlns="http://xml.deltixlab.com/internal/quantserver"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <derby/>
- <provider xsi:type="memcsv">
- <path>config/Tickers.csv</path>
- <key>INFO</key>
- <name><text>Static Data</text></name>
- <modCheckPeriod>5</modCheckPeriod>
- <frequency>STATIC</frequency>
- <keyColumn>
- <header>Key</header>
- </keyColumn>
- <column xsi:type="STRING">
- <header>Type</header>
- </column>
- <column xsi:type="STRING">
- <header>ExchangeCode</header>
- </column>
- <column xsi:type="STRING">
- <header>Name</header>
- </column>
- <column xsi:type="REAL">
- <header>ContractMultiplier</header>
- <size>4</size>
- </column>
- <column xsi:type="REAL">
- <header>Tick</header>
- <size>4</size>
- </column>
- <column xsi:type="STRING">
- <header>CurrencyCode</header>
- </column>
- </provider>
- <taxonomy>
- <key>QuantServer</key>
- <provider>INFO</provider>
- </taxonomy>
- </config>
- c. Restart QuantServer service.
- d. Initialize Derby DB. (clean.sql is not required if first time).
- i. Start <INSTALL_HOME>\QuantServer\bin\derby.cmd
- Note: Current installation does not package derby.cmd. Download contents and save to specified file from here. Edit and update DELTIX_HOME variable. For example, set DELTIX_HOME=F:\4.1Testing\Deltix.20090625\QuantServer. Execute script.
- ii. Create tables (update paths based on installation):
- connect 'jdbc:derby://localhost:1527/<INSTALL_HOME>\QuantServer\db\uhf;create=true';
- run '<INSTALL_HOME>\QuantServer\build\classes\deltix\qsrv\hf\framework\db\sql\derby\clean.sql';
- run '<INSTALL_HOME>\QuantServer\build\classes\deltix\qsrv\hf\framework\db\sql\derby\rebuild.sql';
- exit;
- e. Enable persistence in uhfs.properties file.
- i. Define uhfs.db flag. Set to true. For example, uhfs.db=true
- ii. Add UHFS.DerbyDB.Path to <INSTALL_HOME>\QuantServerHome\config\uhfs.properties:
- UHFS.DerbyDB.Path=<INSTALL_HOME>\\QuantServer\\db\\uhf
- f. Restart aggregator and UHF server.
- g. Connect to DB to monitor orders be stored. For example, Squirrel SQL Client.
- i. Launch Squirrel.
- ii. Create Alias (update URL accordingly). Default user name and password is "APP".
- iii. Select OK and connect to DB.
- iv. Launch QuantOffice Blotter and start both Market Maker algorithm (deploy Input Parameters again) and MktLmtStp_ESNQ.
- v. Query database by running sql: select * from orders; Select CTRL-ENTER to submit query.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement