C++ or java or ......? - Traders Hideout | futures io social day trading
futures io futures trading


C++ or java or ......?
Updated: Views / Replies:5,088 / 53
Created: by FKtrader Attachments:0

Welcome to futures io.

(If you already have an account, login at the top of the page)

futures io is the largest futures trading community on the planet, with over 90,000 members. At futures io, our goal has always been and always will be to create a friendly, positive, forward-thinking community where members can openly share and discuss everything the world of trading has to offer. The community is one of the friendliest you will find on any subject, with members going out of their way to help others. Some of the primary differences between futures io and other trading sites revolve around the standards of our community. Those standards include a code of conduct for our members, as well as extremely high standards that govern which partners we do business with, and which products or services we recommend to our members.

At futures io, our focus is on quality education. No hype, gimmicks, or secret sauce. The truth is: trading is hard. To succeed, you need to surround yourself with the right support system, educational content, and trading mentors Ė all of which you can find on futures io, utilizing our social trading environment.

With futures io, you can find honest trading reviews on brokers, trading rooms, indicator packages, trading strategies, and much more. Our trading review process is highly moderated to ensure that only genuine users are allowed, so you donít need to worry about fake reviews.

We are fundamentally different than most other trading sites:
  • We are here to help. Just let us know what you need.
  • We work extremely hard to keep things positive in our community.
  • We do not tolerate rude behavior, trolling, or vendors advertising in posts.
  • We firmly believe in and encourage sharing. The holy grail is within you, we can help you find it.
  • We expect our members to participate and become a part of the community. Help yourself by helping others.

You'll need to register in order to view the content of the threads and start contributing to our community.  It's free and simple.

-- Big Mike, Site Administrator

Reply
 
Thread Tools Search this Thread
 

C++ or java or ......?

  #41 (permalink)
Trading Apprentice
San Jose, CA
 
Futures Experience: Beginner
Platform: none
Favorite Futures: Stocks
 
Posts: 5 since Aug 2013
Thanks: 0 given, 0 received


Crow View Post
for numerical applications and speed, I bet it really kicks ass.

that, along with inherent parallelism, are all good things.

I'm currently in late stages of developing a trading app (which is why this thread resonated with me). My pick was Java. Based on what I know having gone through this exercise, I'd never pick a non-OO language: behavior management may get quite tricky and it's my preference to solve that by manipulating objects. Based on the little that I know about Fortran, Fortran would be totally out of question. Again - that's me, to each his own.

Reply With Quote
 
  #42 (permalink)
Elite Member
Manchester, NH
 
Futures Experience: Beginner
Platform: thinkorswim
Broker/Data: TD Ameritrade
Favorite Futures: Stocks
 
Posts: 902 since Jul 2012
Thanks: 603 given, 1,785 received

Firstly, I want to say the good things about Python so you know I'm not completely biased. I also want to emphasize that you notice that I've commented on both sides of the fence for every language I've discussed, and this is true to my principle that there's no best language, only the best implementation - it's up to you to take advantage of the best features of each language and what you're most familiar with.


ntvola View Post
Really appreciate your insights. Curious to hear more of your thoughts on Python... I keep hearing/reading that R+Python has become very popular in the HF space.

1. It's cross-OS-compatible, lightweight and comes prepackaged with most UNIX-based OSes, making it a good scripting language.

2. It has a very large number of libraries that have been made really easy to install with setuptools.

3. It works very well as glue code between different languages. Definitely can't say the same of C#.

4. Python supporters generally will argue that it's fast too since you can integrate assembly code and C (Cython).

However,

1. It's dynamically-typed, which makes it a serious piece of crap and it suffers all of those symptoms: Static analysis and refactoring is crap (pylint seriously?). Python optimization presents you the illusion of choice: you mostly reduce the call overhead or assimilate C/assembly, both of which don't really solve the problem because the Python interpreter is much more opaque than, say, the .NET CLR with the help of Reflector.

2. It's dynamically-typed.

3. It has very poor support for multithreading.

4. It's bad for managing a large project.

5. It suffers from most of the bad things about open source but few of the good things about it: the adoption rate for Python 3.x has been slow so you have to deal with two different directions. Open source guys believe in a very small set of orthogonal features and modularity, leaving it to the community to develop the little bits of functionality that you might commonly use. My experience has been that a project that might take referencing 0 libraries in MATLAB (since it's a global namespace), maybe 3-4 .NET framework libraries in C#, often requires you use like 15 third-party libraries in Python (for lack of the right data structures, parallelism etc.) most of which have very inconsistent naming convention and crappy documentation or development effort. Generally, the argument for going with Python is that it can replace the statistical functionality of R/MATLAB, but honestly, the statistical packages in Python are poorly-documented, a very small subset of that available in R/MATLAB, and known at some points in time to have been inaccurate. I've mentioned this elsewhere before:

 
Code
%% MATLAB
% Global namespace, nice documentation, everything's clean
help gridtop

% Array assignment
myArray = 1:50;
 
Code
'''
Python
'''

# Why do I have to do this to get help documentation?
from django.contrib.gis.geos import GEOSGeometry

# I like zero-based array indexing but it gets very unintuitive 
# if you're using it as your research language
from numpy import *
my_array = r_[1:51]
6. It's dynamically-typed.


Big Mike View Post
What about F# while we're at it? I think @NJAMC may have an opinion...

I'd say three good things going for F# are that it's on top of the CLR, which makes it convenient (although in a trading environment, this advantage is partly offset by the fact that there's a lack of F# wrappers or native APIs), and it's based off OCaml - which makes the syntax clean for team communication, and it has built-in concurrency.

Again, these are great features but there's rarely a common line of comparison between languages; it's up to the user to find an application that best takes advantage of these features.

Reply With Quote
The following 2 users say Thank You to artemiso for this post:
 
  #43 (permalink)
Elite Member
Atkinson, NH USA
 
Futures Experience: Intermediate
Platform: NinjaTrader 8/TensorFlow
Broker/Data: NinjaTrader Brokerage
Favorite Futures: Futures, CL, ES, ZB
 
NJAMC's Avatar
 
Posts: 1,925 since Dec 2010
Thanks: 2,962 given, 2,294 received



Crow View Post
Intel only makes 2 compilers. One for C/C++ and the other is for Fortran. There is probably a reason why they still make a compiler for Fortran even though relatively few programmers actually know Fortran. Although I have never used it, for numerical applications and speed, I bet it really kicks ass.

I would expect the Fortran compiler to be used for legacy support. I think many financial applications were written in Fortran and now only maintained.

Last I have seen, most colleges are requiring basic programming with C++, C#, or Java. I haven't heard of even Pascal or Fortran listed as a core requirement.

Nil per os
-NJAMC [Generic Programmer]

LOM WIKI: NT-Local-Order-Manager-LOM-Guide
Artificial Bee Colony Optimization
Reply With Quote
 
  #44 (permalink)
Elite Member
Atkinson, NH USA
 
Futures Experience: Intermediate
Platform: NinjaTrader 8/TensorFlow
Broker/Data: NinjaTrader Brokerage
Favorite Futures: Futures, CL, ES, ZB
 
NJAMC's Avatar
 
Posts: 1,925 since Dec 2010
Thanks: 2,962 given, 2,294 received


Big Mike View Post
What about F# while we're at it? I think @NJAMC may have an opinion...

Sent from my LG Optimus G Pro

I don't know much about F#, I even have some concerns about what I know about complied C#. My understanding is it goes into an intermediate language that can be easily de-compiled. As a coder, this concerns me and I don't fully understand what to do to protect my code. Not sure I need to do so yet, but know this is one more step before I can distribute anything I don't want to release as Public Domain. I know there are Obfuscation routines, but don't know much about how well they protect your code.

From my perspective, the language is a little immaterial. I have "programmed" in all languages (other than F#, that I know of). This is very similar to English, German, Spanish, French, etc. You can still convey what you need to in these languages, there is just different "words" and syntax to comply with the languages.

Same as in programming languages. They main difference is some languages FORCE certain structures into your code while others do not. This is good and bad. It is good that it means your code is more predictable in what it will do as you are less likely to code something that performs differently than intended. It is bad in the fact that it likely takes more time and effort to build the structure around what it is you wish to do. For example, C allows for the use of "Pointers" in your code. They can lead to crashes and coding errors as the software doesn't know what it actual points to, and heaven forbid, your point is NULL and you write something to it. This tends to point to system space or protected. But sometimes with pointers, I could reduce the complexity of my code significantly, but it is more difficult to support later.

Just my ramblings...

Nil per os
-NJAMC [Generic Programmer]

LOM WIKI: NT-Local-Order-Manager-LOM-Guide
Artificial Bee Colony Optimization
Reply With Quote
 
  #45 (permalink)
Elite Member
near Paris, France
 
Futures Experience: Beginner
Platform: -
Favorite Futures: -
 
Nicolas11's Avatar
 
Posts: 1,070 since Aug 2011
Thanks: 2,232 given, 1,729 received

Just for reference : Jane Street is a "quantitative trading firm with a unique focus on technology and collaborative problem solving"

Extract of this page:

Quoting 

We’ve made the unusual choice of using OCaml, a statically typed functional programming language, as our primary development language. Languages in this family, like Haskell, SML, F# and Scala, are typically viewed as powerful but impractical, in part because they’re thought to be too difficult for the average programmer, and in part because nobody else seems to use them.

We’ve taken a different view. We believe that functional programming boosts our productivity, and we don’t mind going our own way. When you're solving hard problems, there’s no substitute for using the best tools available.

OCaml in particular provides a great combination of qualities. It’s streamlined and efficient, making it possible to achieve performance near that of C. At the same time, its powerful type system acts as a rich and well-integrated set of static analysis tools that help you improve the quality of your code, catching bugs at the earliest possible stage. Billions of dollars of transactions flow through our systems every day, so that means a lot to us.

OCaml is also highly expressive, letting you convey your ideas clearly, precisely and readably. We believe that if you want to build high quality, robust software, readability is essential.

Nicolas

Reply With Quote
The following user says Thank You to Nicolas11 for this post:
 
  #46 (permalink)
Elite Member
Manchester, NH
 
Futures Experience: Beginner
Platform: thinkorswim
Broker/Data: TD Ameritrade
Favorite Futures: Stocks
 
Posts: 902 since Jul 2012
Thanks: 603 given, 1,785 received


Nicolas11 View Post
Just for reference : Jane Street is a "quantitative trading firm with a unique focus on technology and collaborative problem solving"

Extract of this page:


Nicolas

Just my point of view on this:

I see Jane Street brought up very often in programming language discussions among traders. It's true that they're one of the largest prop firms but it's still a single sample. I know several guys who were at Jane Street, their office is in the same building as a law firm that we used (makes me wonder how they handled the Hurricane Sandy flood now that I think about it) and my understanding is that they do fairly vanilla trading for the intellectual image that they exude, and shouldn't be used as the basis of some argument that functional programming is any better or worse for trading.

Now, they can say all the good things about OCaml, but they're glossing over the business decisions from the position they were in: they were a small group of ex-SIG partners, all experienced and familiar with OCaml, and they had to start their own firm from scratch. And this was 2000, when OCaml was at its highest peak. Computer architecture and market structure has gone through tremendous changes between 2000 and 2013. 13 year later, they have all that legacy code in OCaml, so they don't have much of a choice besides to argue that they're using the best language in the world.

Reply With Quote
The following 3 users say Thank You to artemiso for this post:
 
  #47 (permalink)
Elite Member
near Paris, France
 
Futures Experience: Beginner
Platform: -
Favorite Futures: -
 
Nicolas11's Avatar
 
Posts: 1,070 since Aug 2011
Thanks: 2,232 given, 1,729 received

@artemiso ,

I guess that your message was not specifically addressed to me, but I want to make clear that I was not arguing or promoting anything.

Coming back to the original question, I would say that the first step, before creating something from scratch, is to use the language provided within an existing platform. As major ones give access to C++ or C#, the possibilities are nearly unlimited.

If, for some reasons, one wants to build something from scratch, the language really depends on the timeframe, the need to connect to real-time data feed or not, the need to connect to broker (versus manual entry), one's coding comfort zone, the nature of analysis performed, etc. Everything is possible as long as it suits the needs. If my memory is correct, Ernst P. Chan uses Matlab and Excel.

Nicolas

Sent from my mobile phone with Tapatalk

Reply With Quote
The following user says Thank You to Nicolas11 for this post:
 
  #48 (permalink)
Elite Member
NC, USA
 
Futures Experience: None
Platform: None Yet
Favorite Futures: Guitar
 
MrYou's Avatar
 
Posts: 403 since Jun 2011
Thanks: 618 given, 193 received

To answer the original poster... Unless he's doing HFT, I'm also going to suggest he determine which trading platform he would prefer to automate his system(s): Sierra Chart (C++), Multi-Charts (C#), or NinjaTrader (C#). My personal preference is NinjaTrader for developer and broker support.

But back to the debate...

I would love Julia to get more traction and developer contributions. A quick description from the site: "Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments [MATLAB]. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. The library, largely written in Julia itself, also integrates mature, best-of-breed C and Fortran libraries for linear algebra, random number generation, signal processing, and string processing. "

Its got a ton of potential and a bright future.

EDIT: Recently Julia and Python integration has been added. More info is available here and here.


Last edited by MrYou; August 23rd, 2013 at 11:58 PM.
Reply With Quote
The following user says Thank You to MrYou for this post:
 
  #49 (permalink)
Elite Member
Manchester, NH
 
Futures Experience: Beginner
Platform: thinkorswim
Broker/Data: TD Ameritrade
Favorite Futures: Stocks
 
Posts: 902 since Jul 2012
Thanks: 603 given, 1,785 received


Nicolas11 View Post
@artemiso ,

I guess that your message was not specifically addressed to me, but I want to make clear that I was not arguing or promoting anything.

Coming back to the original question, I would say that the first step, before creating something from scratch, is to use the language provided within an existing platform. As major ones give access to C++ or C#, the possibilities are nearly unlimited.

If, for some reasons, one wants to build something from scratch, the language really depends on the timeframe, the need to connect to real-time data feed or not, the need to connect to broker (versus manual entry), one's coding comfort zone, the nature of analysis performed, etc. Everything is possible as long as it suits the needs. If my memory is correct, Ernst P. Chan uses Matlab and Excel.

Nicolas

Sent from my mobile phone with Tapatalk

@Nicolas11: Yup no worries, I understood you perfectly, wasn't addressing that at you.

Reply With Quote
The following user says Thank You to artemiso for this post:
 
  #50 (permalink)
Elite Member
Orange County, CA / United States
 
Futures Experience: Advanced
Platform: NinjaTrader, Excel/VBA
Broker/Data: IB / Kinetick / eSignal
Favorite Futures: Equities
 
Posts: 17 since Nov 2012
Thanks: 11 given, 15 received



MrYou View Post
I would love Julia to get more traction and developer contributions.

Impressive benchmarks. Thanks for sharing-

Reply With Quote

Reply



futures io > > > C++ or java or ......?

Thread Tools Search this Thread
Search this Thread:

Advanced Search



Upcoming Webinars and Events (4:30PM ET unless noted)

Linda Bradford Raschke: Reading The Tape

Elite only

Adam Grimes: TBA

Elite only

NinjaTrader: TBA

January

Ran Aroussi: TBA

Elite only
     

Similar Threads
Thread Thread Starter Forum Replies Last Post
.NET or Java? LordAlfa Jokes 4 January 13th, 2014 10:41 AM
Hi, need zenfire java aAPI atas1 Reviews of Brokers and Data Feeds 2 March 22nd, 2013 07:32 PM
How to choose? (Easy Language / Java / C# ) g94expy Platforms and Indicators 9 February 5th, 2013 09:43 AM
Java QuickStart Fat Tails Platforms and Indicators 5 December 8th, 2010 06:47 PM


All times are GMT -4. The time now is 10:34 PM.

Copyright © 2017 by futures io, s.a., Av Ricardo J. Alfaro, Century Tower, Panama, +507 833-9432, info@futures.io
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.
no new posts
Page generated 2017-12-10 in 0.19 seconds with 39 queries on phoenix via your IP 54.221.73.186