Genesis and JAVA (API, FIX and third party plugin)?

Discussion in 'Automated Trading' started by ny212, Jan 27, 2011.

  1. ny212

    ny212

    I'm pulling out what hair I have left!

    I simply want to plug my Java program to run on Genesis.

    To anyone who uses GTP and GUQ at Genesis, was it easy for you to connect?

    Does anyone use OpenQuant or Tradelink to connect to Genesis GTP and GUQ? Maybe I can use any tip from it to connect with JAVA socket.

    Does QuickFIXj works with Genesis?

    Is there any third party Java solution that connects to Genesis for auto algorithmic trading ?

    I really like Genesis low latency, competitive commission, minimum account requirement. But limited documentation and code example is a nightmare for me.

    I have a feeling this might be an impassable wall. Is there a low latency broker (pls no Interactive Broker) similar to Genesis that offer Java programing support?

    Thank you
     
  2. fielman

    fielman

    From what I've heard Lime is quite good, but minimum monthly trade is quite high.

    www.limebrokerage.com
     
  3. ny212

    ny212

    Yes, Lime expects high volume. I wonder if there is a company or a person who's trading with Lime that's open to taking on a trader like me. I can commit to a monthly volume and take care of my own technical and programming issues. I can pay extra commission if necessary.

    I would appreciate it if you could let me know if you are aware of anyone who is interested in this idea. Thanks!
     
  4. erbronni

    erbronni

    The GTP order protocol is straight forward socket programming. All the messages are documented in Genesis Trading Protocol V1.08.pdf file, available on their FTP site under api/DOC. I was able to create a wrapper API over the protocol in about 4 weeks using C++.

    If you understand socket programming, you can create a similar wrapper using Java. There's a sample application in C, GTPTest.zip. I suggest porting the sample application over to Java and then build on that.

    Remember to include error handling in case the socket drops. This only happens when the capacity on the order server is exceeded. Usually Genesis keeps ahead of demand when setting the queue size on the servers, but there was a week where the socket connection was dropping during the open that caused me a lot of headaches. Genesis increased the queue size on the servers, alleviating the problem.

    I haven't tried the quote protocol yet. I'm still using the MFC C++ DLL to get quote information.
     
  5. ny212

    ny212

    Hello erbronni,

    My developer downloaded and try the GTPTest.zip but could not get it to run properly. Did you have issues with it on your first attempt? How did you get GTPTest to run successfully?

    Thanks.
     
  6. erbronni

    erbronni

    The '0' highlighted is actually a success. The ReadLine() method returns 0 when it successfully reads a line, and a negative number if there is an error. The fact the variable is named 'len' is a misnomer, it's not the length of the returned string.

    From the contents, there is one reply, 'I88', which is the 'Executor ID Message', which indicates which server the socket connected. (This is helpful if you need to contact Genesis.)

    I don't see the 'LYou are welcome!' message which is the login acknowledgement. A missing welcome message usually indicates a rejected login/password. If the login fails, the executor server closes the socket connection immediately, disconnecting your application.

    Double check the login/password in the GTPTest application. The values are hardcoded, so the application has to be recompiled in order for the changes to take effect.

    If you still have problems after double checking, send Genesis a quick email. Genesis will check the logs to see if the password is getting rejected. And Genesis will reset the password if needed.

    Also, you will probably want more than one login for the account. A login can only be used by one application at a time, so you cannot log in through Laser and use the same login for the GTP application. Ask your sales rep about setting up multiple logins for the same account. Also, you do not need the data feeds for the GTP application's login, since it is only executing orders.
     
  7. Is genesis suitable for HFT? If yes... on what frequencies?
     
  8. I guess this is NO
     
  9. erbronni

    erbronni

    Genesis supports automated trading through their GTP and GQP protocols, as well as the GTAPI MFC DLL. For the application I developed, sub-second order placement is good enough, and the GTP provides that easily. I have not profiled or measured the exact through-put of the GTP.

    Send Genesis an email and ask what kind of through-put you can expect.
     
  10. Can I run genesis using Java on a unix box?
     
    #10     Feb 20, 2011