Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
Thanks Bob.
I agree that my path may be a difficult one, at least how I was looking at building and using it. I posted here in hopes that I can find an "easier" path to at least start with. And everyone who has responded (including you ) has been great and I appreciate the details.
I am actually already starting to rethink the route I should go. NT is now in the lead.
I also agree with your thoughts on the developer front too. My buddy, who was initially helping me with the coding is an amazing developer, however when trying to tell him about futures and what I wanted to accomplish, it was like I was speaking another language to him.
Based on all of the responses so far, I am thinking about using a VPS located in Chicago and run NT with CQG feed from there.
My only concern about NT, is that it seems like they use their own code, something similar to C++? (correct me if I am wrong) I don't have any experience in C++, just python. I will explore it further.
I looked at Sierra Chart and spoke to another trader who used them and they said the same thing about SC
Appreciate your response and I've learned more in the couple weeks I've been on this site, than I've learned googling and fumbling around on the internet in past 6 months.
Can you help answer these questions from other members on NexusFi?
Thanks David!
I am now leaning more towards NT. I want to ensure I understand the code though, so I may still hire a developer to not only work thru the code but to also teach me about the code so I know how it works. I will look around NexusFI some more and if someone is interested in helping me out down the road, that would be awesome.
This has been fun so far and everyone on this site has been great with their input. As I just mentioned in my post above, I've learned more on this site in a couple weeks than I've learned in months of googling and searching the web.
Since speed is paramount, IBKR is not suitable. I, too, have encountered instances where I wasn't filled on a limit order. Granted, I placed an order for a three part CL futures butterfly. Since it was placed on a sim server, I thought that if limit orders aren't being filled there, then maybe they won't be filled on a live server. As a result, I abandoned the entire strategy. IBKR does fill market orders rather quickly, despite the added layer of latency that TWS provides-- the algo has to go through the TWS desktop application to submit orders to IBKR servers.
I thought about switching to TradeStation but didn't make the change, because I have invested over two years learning IBKR's Python API. Although Python has a shallow learning curve, the way IBKR uses it makes it obscenely steep.
Despite using IBKR, they deserve to be bashed for several things. For starters, the mandatory shutdown of TWS daily, at midnight, is f**king stupid. The only reason, I am staying with them is because I can use Python to write strategies that don't depend on indicators.
I wasn't even aware of their TWS daily shutdown, that is insane.
With tradestation, I read on a few forums and complaint sites that they have high latency issues because of where they route the trades and the trip the orders take before being filled. I think they are routed down to VA or even FL before being sent to be filled at CME? Don't know if that is the truth but I was trying to see if I could find my ping results for them because it was at least a few hundred milliseconds, compared to CQG, which I've gotten consistent results in the 20-30 millisecond range. That will make a difference because of what I am trying to do. Although, Idk how large of a role it will play if I am using a VPS in Chicago but something I wanted to throw out there.
You actually bring up another concern I should give some thought to - The algo that I hope to build is a bit more complex. Like your strategies, my strategy is not based on specific indicators as well. I am going to take a closer look at NT, but unsure how complex I can make the trading strategy in their strategy builder, using code. Something I really need to figure out before being sold on NT.
A few quick things, mainly from reading your comments regarding coding....
1. I am generally agnostic on languages, unless there is a particular need. For example, I have never written any code in Python. It may very well be the exact thing for a certain purpose. But over a long(-ish) period of coding, I have found that many will do the job, as a rule.
2. The best way to learn a language is to have a project to code in it. Necessity is the mother of invention, and of learning, too.
3. Languages generally have a syntax (a basic structure of how something is done) -- which would include how to do basic logic, such as "if", "and", "or", etc., and how to organize code so it goes from point A to B. Then there is usually some pre-written code that you don't have to invent every time, but that you can just incorporate into your logic flow by calling it and passing data to it. I have read about Python libraries, and that is exactly what I mean. It is impossible to write code without something of this sort, because otherwise every single thing -- even taking input from the keyboard -- would have to be written from scratch. No one will do that.
The basic "flow of control" logic of all languages is much the same, although they will use different ways to write it. Most languages will have a basic set of math, string and similar functions to get that sort of thing done, and then they will have other class or function libraries, however they call them, for particular work. Once you get the fact that the major differences are just how to get to those other functions, and what they are, then the differences are less important. (Speed of execution is one difference. An "interpreted" language like Python will not be as fast -- although probably good enough --, intermediate languages like Java and C# will be faster, and pure compiled languages like C++ will be many times faster. Will this matter to you? I don't know. )
4. NT has a "scripting" language they call "NinjaScript", which consists of a plain-vanilla general language (C#) that does the logic flow and all that, and a bunch of classes (pre-written code chunks) that do the dirty work, just as everything else has. Much of the pre-written classes provides the same functionality that the trading platform provides, and does other data-related tasks. Some of the classes are built into C#, some are Ninja-specific. In general, if you can do something with the trading platform, you can automate it. Just about any (decent) trading platform works about like this.
5. You've mentioned not wanting to write a strategy based only on indicators. In that case, don't do that. ( ). There's no reason to. You can access whatever data the platform can, and manipulate it as you wish, and then send off your orders based on whatever criteria you have written. You can do anything you want with the available data, basically.
6. While I did mention the NT Strategy Builder, that was as an example of a tool for quick strategy creation by people who don't want to write code. It could be helpful as a learning tool to get started, because it has a simple interface and automatically generates code based on things you've selected. For anything serious, a person would, I think, want to just use the NT code editor (or any other C# code editor) and hand-write the code.
Now, everything I just wrote will apply to many other choices a person might make. I think there are advantages to NT mainly because of the support you can get from other members on the forum, and the fact that it generally has what is needed. I doubt if it's perfect, but it's probably good enough.
I don't know if the other requirements you have can be gotten with NT, although I imagine it would be fine. I think NT uses CQG for its order routing (or a white-label version called Continuum), although I think you can get Rithmic on request. (You'd need to ask them.) I do know that a lot of people write automated strategies in NT.
You can see there's a lot to find out, and that no one answer is necessarily the only one for you.
Take small steps, do the work, and good luck.
Bob.
When one door closes, another opens.
-- Cervantes, Don Quixote
In my opinion, a few hundred milliseconds is unacceptable, and 20-30ms is mediocre. From my home network, I get 10ms. On AWS, I can get well into the single digits. A Chicago-based VPS would make a huge difference in latency. I would be shocked a ping response wasn't in the single digits.
Bob,
Thanks so much for all of this! This answers a bunch of additional questions that I was getting ready to post.
I am looking forward to my journey and everyone's help here has motivated me to get moving on this