NexusFi: Find Your Edge


Home Menu

 





Is Visual Studio needed to be professional programmer for Ninja Strateg


Discussion in Platforms and Indicators

Updated
      Top Posters
    1. looks_one spinnybobo with 4 posts (0 thanks)
    2. looks_two MedianVelocity with 2 posts (2 thanks)
    3. looks_3 kamicrazy with 1 posts (0 thanks)
    4. looks_4 ratfink with 1 posts (1 thanks)
    1. trending_up 1,773 views
    2. thumb_up 3 thanks given
    3. group 3 followers
    1. forum 8 posts
    2. attach_file 0 attachments




 
Search this Thread

Is Visual Studio needed to be professional programmer for Ninja Strateg

  #1 (permalink)
 
spinnybobo's Avatar
 spinnybobo 
Crete, IL/USA
 
Experience: Intermediate
Platform: NinjaTrader, Mt4
Broker: Tradestation/Tradestation, NinjaTrader, FXCM and Tallinex
Trading: ES, CL, EUR/USD, TF
Posts: 173 since Aug 2009
Thanks Given: 105
Thanks Received: 61

Hello Everybody

I am working on developing strategies for clients using NinjaTrader and have actually gotten pretty good at programming, finding bugs, fixing them and making things work.

One of my clients was a little bothered that I don't use Visual Studio for development for Ninja.
I know that if a person is developing very heavy algorithmic trading for high frequency trading and things that are extremely complex, then it makes sense to test something that is always very important which is Runtime or Efficiency of Code.
I was told by an algorithmic developer that Visual Studio has enterprise tools that make this possible.

A few questions I would have is
1. Does Visual Studio Professional have these tools or would I only get them by using Visual Studio Enterprise Edition?
2. How would I apply this to NinjaTrader ?

I ask because if I am going to test runtime of a certain block of code, couldn't I just import the library like
using System.Diagnostics;
using System.Threading;

and just do this inside of Ninja? Can't you pretty much do most things inside of Ninja?
I know Visual Studio has a "Testing Environment". So perhaps it is possible to make a "testing suite" for certain procedures that would be much easier than manually testing using Replay Data and stuff.

Does anybody have any other ideas about the usefulness of using Visual Studio for Ninja Trader Development?
I know people "debug" using it, but it seems like most things can be done right from using Ninja since it is all in the same language and anything I can do in Visual Studio from a programmatic point of view, I can also do in Ninja.

I understand if I were using Tradestation or MetaTrader, I would need to use Visual Studio for creating .dll's

Can anybody please enlighten me and perhaps guide me to a tutorial that helps in this case? I ask because I actually know a few professional developers who exclusively use Ninja and they never use Visual studio for anything. Sometimes I think certain clients worry too much and sometimes they are not understanding and think if my programmer is not using Visual Studio and it is an industry standard, then maybe the code won't be as good. But if there is something I need to learn, I am open to any suggestions.

thank you

Spencer

Follow me on Twitter Started this thread Reply With Quote

Can you help answer these questions
from other members on NexusFi?
Cheap historycal L1 data for stocks
Stocks and ETFs
Better Renko Gaps
The Elite Circle
How to apply profiles
Traders Hideout
Pivot Indicator like the old SwingTemp by Big Mike
NinjaTrader
NexusFi Journal Challenge - May 2024
Feedback and Announcements
 
  #3 (permalink)
 MedianVelocity 
 
Posts: 135 since Dec 2013


Compiled code is 10x faster or more in execution than any of the scripting languages used by any piece of trading software. Scripting languages are just plain slow! Most scripting languages are run through a virtual interpreter built with one of the C languages. Usually C or C++.

Reply With Quote
  #4 (permalink)
 
spinnybobo's Avatar
 spinnybobo 
Crete, IL/USA
 
Experience: Intermediate
Platform: NinjaTrader, Mt4
Broker: Tradestation/Tradestation, NinjaTrader, FXCM and Tallinex
Trading: ES, CL, EUR/USD, TF
Posts: 173 since Aug 2009
Thanks Given: 105
Thanks Received: 61


MedianVelocity View Post
Compiled code is 10x faster or more in execution than any of the scripting languages used by any piece of trading software. Scripting languages are just plain slow! Most scripting languages are run through a virtual interpreter built with one of the C languages. Usually C or C++.

Hey MedianVelocity

thanks for your reply. NinjaTrader is compiled. It is called a scripting language, but it is nothing more than C# Classes based on inheritance and stuff. Anytime you write a piece of code you always have to compile some indicator or strategy and it compiles "ALL" indicators and strategies. Plus, C and C++ are also compiled languages.

thanks
Spencer

Follow me on Twitter Started this thread Reply With Quote
  #5 (permalink)
 MedianVelocity 
 
Posts: 135 since Dec 2013

C# is not strictly compiled, but it can be. It's the middle ground between an interpreted and compiled language. As I said before, C and C++ are compiled and have a long track record.

Reply With Quote
  #6 (permalink)
 
ratfink's Avatar
 ratfink 
Birmingham UK
Market Wizard
 
Experience: Intermediate
Platform: NinjaTrader
Broker: TST/Rithmic
Trading: YM/Gold
Posts: 3,633 since Dec 2012
Thanks Given: 17,423
Thanks Received: 8,426


spinnybobo View Post
Can anybody please enlighten me and perhaps guide me to a tutorial that helps in this case? I ask because I actually know a few professional developers who exclusively use Ninja and they never use Visual studio for anything. Sometimes I think certain clients worry too much and sometimes they are not understanding and think if my programmer is not using Visual Studio and it is an industry standard, then maybe the code won't be as good. But if there is something I need to learn, I am open to any suggestions.

thank you

Spencer

I do almost exactly as you describe, have written many thousands of lines in Ninja and never had to use Visual Studio for debugging. I find the environment to be excellent on its own, as I am sure do many, many other programmers on the forum. The 'using' directive you mention does provide great access to system blocks such as networking and threading, without needing much more.

If you have to interface to other products or create external processes then obviously a wider suite of tools may well factor higher on your list. The Visual Studio suites do offer more powerful facilities, including profiling in the pro versions, but I have always found that the quality of ideas, design and code written to be far more important than the tools available - something clients do not always understand, especially if they are overly focussed on a check-box process mentality.

Travel Well
Visit my NexusFi Trade Journal Reply With Quote
Thanked by:
  #7 (permalink)
 
spinnybobo's Avatar
 spinnybobo 
Crete, IL/USA
 
Experience: Intermediate
Platform: NinjaTrader, Mt4
Broker: Tradestation/Tradestation, NinjaTrader, FXCM and Tallinex
Trading: ES, CL, EUR/USD, TF
Posts: 173 since Aug 2009
Thanks Given: 105
Thanks Received: 61


ratfink View Post
I do almost exactly as you describe, have written many thousands of lines in Ninja and never had to use Visual Studio for debugging. I find the environment to be excellent on its own, as I am sure do many, many other programmers on the forum. The 'using' directive you mention does provide great access to system blocks such as networking and threading, without needing much more.

If you have to interface to other products or create external processes then obviously a wider suite of tools may well factor higher on your list. The Visual Studio suites do offer more powerful facilities, including profiling in the pro versions, but I have always found that the quality of ideas, design and code written to be far more important than the tools available - something clients do not always understand, especially if they are overly focussed on a check-box process mentality.

so the profiler is what people would use in the pro version to determine the "performance" or efficiency of code?
I have never really used this so this is probably the only thing that is missing.
I do remember potentially finding a bug that could exist in Ninja when you have the check box checked for "enforce partially filled" and you are using multiple IOrders in a Managed approach. I tried to "attach to process" from Ninja to Visual Studio and then run replay and hopefully see why sometimes the stop orders did not get "Working" state, but it looks like I could not see Ninja running in replay. Once you attach it it "locked" Ninja, so I could not see the dynamics of the replay in VS.

I guess seeing the "profiler" would be the next logical reason to debug. So, I will look into that. Thanks.
However, I do agree that quality code is most important thing.

thanks :-)

Follow me on Twitter Started this thread Reply With Quote
  #8 (permalink)
 
spinnybobo's Avatar
 spinnybobo 
Crete, IL/USA
 
Experience: Intermediate
Platform: NinjaTrader, Mt4
Broker: Tradestation/Tradestation, NinjaTrader, FXCM and Tallinex
Trading: ES, CL, EUR/USD, TF
Posts: 173 since Aug 2009
Thanks Given: 105
Thanks Received: 61


MedianVelocity View Post
C# is not strictly compiled, but it can be. It's the middle ground between an interpreted and compiled language. As I said before, C and C++ are compiled and have a long track record.

ok I know what you mean now. I believe this is how it is in Java which is basically why it is so easy to decompile Java and C#, because there is a "middle ground step" that C++ does not have.

However, I do have to say that there are plenty of enterprise applications which are built either strictly on Java or .Net C# or VB that are used for trading as well as Java server side things that exchanges like CBOT use, so it I would not think it is subpar in speed just based on that. However, is there a way to make code even faster either using C# purely compiled or C++ in VS and running it in Ninja? This would be an interesting comparison to test runtime and stuff.

Follow me on Twitter Started this thread Reply With Quote
  #9 (permalink)
kamicrazy
New Zealand
 
Posts: 71 since Jun 2011
Thanks Given: 2
Thanks Received: 32

Actually if latency is important like HFT you would avoid Java or .NET as those two would introduce latency.

Nowadays for Java things are much better than they used to be and the speed difference is negligible but technically for applications like HFT where latency is important you would want to avoid Java.

Java is used in business applications for its portability, ease of development and easily accessible talent pool of developers who have experience in the finance industry.

When you want to upgrade your server hardware running your mission critical app with Java you can replace the hardware and underlying operating system and theoretically the JVM should run the application flawlessly.

This is very important compared to the days where a system (hardware + operating system) could not change for legacy app support reasons.

I recommend you do a little research on programming languages and general runtime performance of them.

From assembly -> C -> Java

Reply With Quote




Last Updated on December 22, 2013


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts