Introduction The Broker [url removed, login to view] has developed a proprietary trading software where traders can trade stocks and futures in Thailand. The software is quite new, and offers no API so that orders can be submitted via API. The goal of this project is to provide an API, based on which sophisticated new trading strategies can be based. The Trading Software The brokers trading application is a java application that is loaded after the trader logs in to the brokers website. We have downloaded a cab file from the brokers website that contains the trading application, but we are not sure if this is the most recent version. The trading software receives streaming realtime quotes, and orders can be submitted. Current Trading Positions can be queried. We will supply a dedicated username and password which will be linked to a small real trading account, so that the programming can be done. )The broker does not supply demo accounts.)
Provide a .net api (trading applications will be written in C#) that will interact with the running java trading application that allows C# based trading software to do the following functions via the API: 1. Realtime Quotes: a) Start Request Quotes b) End Quote Request c) Receive Realtime Quotes with Event based notification 2. Trading: a) Send Order b) Receive Order Status c) Request Todays Orders d) Request Current Positions The Deliverables must include a Visual Studio 2003 C# Project with two functions: a) An API with the functions shown above and b) a very primitive GUI that can trigger this functions. This gui should only demonstrate to the trader that the API is working. It will not be used for trading. It would be nice, if we could start the java trading application without having to log in to the website. The reason is that the trading application crashes sometimes, and we need to be able to login quickly if this should happen. (Financial Markets can be quite volatile at some times, and this could cost dearly). Implementation: Here we are not the expert. So we will only list alternatives that we have in mind; we would like to receive suggestions about possible alternatives: a) Decompile the original trading application, and the new trading application will provide the interface directly. b) Connect to the Java Event Loop, and intercept the messages that occur in normal use of the unmodified software. Then provide a way to trigger the same messages that the trader would trigger when he would use the software. Project Phase 2 ??" Deliverables This description is only intended to give an overview of what is to come, and should give a better impression of what is needed to finish Phase 1. The trading strategy is to make a profit by doing mean-reversion pairs trading in nearby SET50 futures. Example: OPEN 2 TRADES CLOSE 2 TRADES June Contract 553 bid 554 ask 560 bid 561 ask September contract is 550 bid 551 ask. 560 bid 561 ask On Open the the spread is 2 points. The robot buys September at 551 and sells June at 553. On Clsoe the spead is 1 point. The robot sells September at 560 and buys June at 561. By doing so the robot made 1 point profit. The robot will get the entry and exit targets from the trader, and then needs to send orders when the targets are reached. Since the spread is moving all the time, the robot needs to watch the realtime quotes. In order to overcome the bid-ask spread, the robot will need to work the first order with an limit, so that in our example the robot would buy at 550 and not at 551. The second leg will have to be done at market, because the market could move fast and the second leg could be done at very different prices. This simple strategy will not work in many advanced markets, and is only possible because in Thailand Electronic trading is still in it infancy. --- 1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
The brokers trading applicaiton is runnign under Java, the API that should be supplied by the programmer should be .net. The demo application should be in C#. The attached ZIP file contains * This request plus a few screenshots * The CAB files of the (possibly outdated) trading application from the broker in Java * Manual of the trading application (contains a few screenshots, otherwise it is in Thai language).