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)
Brian from CTS Futures will be presenting a webinar on Wednesday, September 7th at 4:30PM Eastern Time US.
He will demonstrate the T4 platform, which includes Desktop, Web, Mobile (iOS, Android) and API flavors. He will also talk a bit about the CTS infrastructure and services side, and how you can use them in combination with your existing favorite platform.
Broker: Tradestation/Tradestation, NinjaTrader, FXCM and Tallinex
Trading: ES, CL, EUR/USD, TF
Posts: 173 since Aug 2009
Thanks Given: 105
Thanks Received: 61
I hope we can request T4 to get their programmers together and do a "how to develop in T4" which would be upper level programming using delegates, creating and registering events, using the BeginInvoke method as well as creating virtual methods for later overriding events like we do in NinjaTrader such as
protected override void OnBarUpdate() { /// }
There is a big gap between developing on NinjaTrader and T4 and I wish I knew where to get some resources to help fill the gap.
Brian Murphy, the Director of Business Development at CTS, will be monitoring this thread so that he may answer any questions that you post here relating to CTS products and services.
Please keep in mind that some customer service/technical support issues …
You could ask @CTS1 Brian to devote some resources to this and see what his response is.
You can find our API and FIX guides at the following links: T4 API 4.0 - CTS Wiki T4 FIX API - CTS Wiki
If you don't find what you're looking for there you can always email [email protected] or [email protected] to get one on one development support. Out of curiosity, have you seen those links before and haven't found what you were looking for? We'd like to make sure our online documentation is as accurate and helpful as possible.
Thanks,
Brian
If you have any questions about the products or services provided by CTS, please send me a Private Message or use the BMT " Ask Me Anything" thread
Broker: Tradestation/Tradestation, NinjaTrader, FXCM and Tallinex
Trading: ES, CL, EUR/USD, TF
Posts: 173 since Aug 2009
Thanks Given: 105
Thanks Received: 61
Hey Brian
thanks a lot. Yes I have downloaded CTS and via Visual Studio am using those examples in the
C:\Program Files\CTS\T4ClientSim\APIExamples folder ---- the T4Example2cs (C# example)
I am also well aware of the API wiki and have emailed a long chain of emails to the api department. I have about 74 emails in my email thread back and forth. I also emailed people who developed the platform Jay Larmee who was a very nice guy on a few quesitons.
Sometimes the API were extremely helpful and other times it seemed like they were saying go read the microsoft documentation on event based programming and brush up on things. They never said it like that, but more like this is standard event based programming than gave me a microsoft link.
Most people would think that NinjaTrader is among the harder platforms to program for just because the language is in C#. However, that is not a problem for me for the most part. However, some things in T4 are so bare bones that it becomes somewhat hard to figure out.
Most of this stuff has to do with concepts surrounding delegates and creating your own events to get simple things like
Posiiton Size, or Quantity Filled, or Current Position
The API department was very helpful in many ways but sometimes I would ask for perhaps some simple code that shows the example --- like complete code and they might have given me the link to the API instead or a few code snipets which are extremely helpful but you still have to connect the dots.
Some API people were more helpful. The guy who should get accolades is Nate in the API department. He went above and beyond in lots of advice on using different things in my code that I was not using. He was very helpful. Others were less helpful.
I am building a bridge from NT to T4. A trader who trades on Ninja that I do programming for has a job to trade for a company using T4. So I used client server sockets with IP endpoint to create a connection asynchronously to transfer order information from Ninja to T4. Basically I took that example in the APIExamples and modified it. This was so I did not have to rewrite a huge strategy all over again
Ninja does an order execution and it goes to my bridge which used to be an APIExample in C# and then it places the same order on T4. Right now it places the order and does the OCO. It can do an exit order as well. So it does simple entry and exit orders using OCO.
My biggest problem is how to tell simple things that I can easily find out in Ninja.
current position
average position price
quantity filled
the state of the order object
In Ninja they have methods like
These examples in Ninja above concerning the events have all of the background in the background. What makes T4 difficult is you have to program the background if you want to make them work. Meaning you have to program the artitecture of the
delegates
events
register events
create the virtual method to call the events
This is all done in the background in Ninja which is why it is much easier. In T4 you have to do this from what I am told by the API department. One of the API people even said this is not easy stuff ---- so only people who have extensive experience programming this type of stuff can actually develop productively for T4. The rest of us have to go through a huge learning curve which takes so much time. So it would help to have a webinar to bring us up to speed on all of this hard stuff.
I have some idea how to do these things in T4 based on delegate and event examples, but it is hard to connect the dots. Lately I have been reading books on doing stuff like this to bring myself up to speed but a lot of it is going through examples that are not formatted the same and thus harder to connect the dots. Programming sometimes is about solving a mystery and connecting the dots. Sometimes we just want to just find out the answer so we can just program and get the right result quickly.
So that is why I thought if you had a coding dev webinar because it pinpoints what you need to know in terms of how it is related to T4
The webinar should be in C# since that is more popular than VB. Or you could have 3 webinars in each language talking about the same thing or one webinar with accompanying code in 3 languages. In fact that is the other thing... You might want to also add C# as well as C++ on your API wiki instead of just having VB. I can figure it out for the most part, but if your platform supports both C# an C++ then why only have VB in your API wiki code snipet examples ?
some webinar ideas could be
doing a non GUI simple strategy like moving average cross over
how to get object state
creating delegates and events , registering and unregistering events
logging in via the actual T4 login form or logging in the background if not using GUI
how making sure your code is called correctly by keeping it on the GUI thread if using GUI using BeginInvoke()
this brings open topics related to multi threading
how to do OCO or program for it ---- which I did figure out based on examples
talking about Trace.WriteLine to help debug and how sometimes stepping through debugger in real time program causes weird things
talking about Try.. catch blocks for everyting
talking about String.Format rather than concatenating the strings to have better performance
taking about lock the host in the programming so sync problems don't happen
keeping in mind API and it's collections are on a thread other than the main thread or GUI thread and keeping that in mind when
referencing objects in collection by multiple threads at once
a few of these topics are background things in ninja like lock the host
some of these things are Nate's words from the API dept as important things to keep in mind. Some of these things I don't know
how to do like the "thread stuff". Some things I might be able to figure out in the code examples. Yet again, that is connecting dots and
takes a lot of time and would be very helpful just to have a webinar teach this stuff.
I think it would just help in getting more developers to use the CTS platform which I think is great btw. I have been using it on SIM since 2005 and it has definitely come a long way
Upper level concepts are not that difficult when somebody who is patient and competent is giving the webinar.