What's your favorite programming platform?
What's your favorite programming platform?
I just upgrade my Windows machine to 64 bit Windows 7 and when trying to reinstall my version of Matlab (it's OLD -- from the early 2000s), it no longer works.
I've been thinking of switching platforms for a while now and I think this might be a good time to look into doing so.
I have some experience with Pascal (hah!) and C++ from my college days but I wouldn't mind taking the time to learn something entirely new if I felt like the benefits were worth it.
What am I looking for in the software?
1) GUI functionality
2) Flexible and fast database and file management
3) Internet / Web Server functionality -- being able to generate relatively simple internet pages to display spread sheet type information and being able to pull data from a web server rather than having everything stored on a local machine.
Maybe there's a lot of other features that would be helpful that I'm not thinking of?
Anyway... what's your favorite platform to service your trading needs?
I've been thinking of switching platforms for a while now and I think this might be a good time to look into doing so.
I have some experience with Pascal (hah!) and C++ from my college days but I wouldn't mind taking the time to learn something entirely new if I felt like the benefits were worth it.
What am I looking for in the software?
1) GUI functionality
2) Flexible and fast database and file management
3) Internet / Web Server functionality -- being able to generate relatively simple internet pages to display spread sheet type information and being able to pull data from a web server rather than having everything stored on a local machine.
Maybe there's a lot of other features that would be helpful that I'm not thinking of?
Anyway... what's your favorite platform to service your trading needs?
My package of solutions for some of your points include:
- Eclipse as IDE (unsurpassed in my opinion)
- java as language
- Open Office calc as spreadsheet
- mySQL + Squirrel as DB
You get all that on the web, no license costs. For a new language to learn either java or C# are the only candidates, IMHO.
To display information per web page initially I generated xml files, which I displayed in the browser using xslt transformations. After spending a lot of time formatting webpages that way, I realized that the best program to display speadsheet type information is an actual spread sheet program.
Now I call Open Office calc per API from java.
- Eclipse as IDE (unsurpassed in my opinion)
- java as language
- Open Office calc as spreadsheet
- mySQL + Squirrel as DB
You get all that on the web, no license costs. For a new language to learn either java or C# are the only candidates, IMHO.
To display information per web page initially I generated xml files, which I displayed in the browser using xslt transformations. After spending a lot of time formatting webpages that way, I realized that the best program to display speadsheet type information is an actual spread sheet program.
![Smile :-)](./images/smilies/icon_smile.gif)
-
- Roundtable Knight
- Posts: 123
- Joined: Tue Nov 03, 2009 8:49 am
- Location: London
- Contact:
I personally use C# and it is probably as good as java:
it has built-in libraries to easily connect to the internet, manipulate files, access DBs, and develop GUIs
I think between java and C# is probably personal choice more than anything else... I use C# every day at work and for some reason I tried to learn java at home - only to switch back to C# later - i am just much more efficient with it...
The M$ Visual Studio Express IDE does the job - and is free
As a DB I use MySQL also (with TOAD for MySQL)
it has built-in libraries to easily connect to the internet, manipulate files, access DBs, and develop GUIs
I think between java and C# is probably personal choice more than anything else... I use C# every day at work and for some reason I tried to learn java at home - only to switch back to C# later - i am just much more efficient with it...
The M$ Visual Studio Express IDE does the job - and is free
As a DB I use MySQL also (with TOAD for MySQL)
"Please define "platform" as used in "
Programming language -- I should have used the word language, not platform.
I have yet to trade a suite of systems on a well diversified basket of foreign and domestic futures interests let alone doing so on a daily basis, but it seems that some independent traders use software other than Trading Blox to handle some of the automated workload associated with the daily routine of executing the trading. So what programming language(s) or software packages do some of you use other than Trading Blox and what do you use them to do?
Programming language -- I should have used the word language, not platform.
I have yet to trade a suite of systems on a well diversified basket of foreign and domestic futures interests let alone doing so on a daily basis, but it seems that some independent traders use software other than Trading Blox to handle some of the automated workload associated with the daily routine of executing the trading. So what programming language(s) or software packages do some of you use other than Trading Blox and what do you use them to do?
Philosophically, I think that when MOM or OPM is involved, paranoia is the appropriate stance. You can't be too careful.
Therefore it seems a very good idea to keep (your trading environment) and (the World Wide Web) as far apart as possible. The objective is to make it extremely difficult, or impossible, for hackers, phishers, infiltrators, worms, rootkits, keyloggers, exploiters, shellcoders, hijackers, and Naughty People In General, to access your trading computer, or your data files related to trading, or the software you use in trading. If they can't reach you, if they can't touch you, there's less chance they can hurt you.
Embracing this philosophy, I've decided to make my trading software unaware of, and disconnected from, the internet. It runs on physical, not virtual, computers. In my office, not in "the cloud". By the way, here's a sobering little reminder about the cloud: LINK.
After (very costly!) field testing, I decided to (re)design my software so it can be operated by the most incapable bonehead and fatfingered dunce on the planet: me, on vacation, in a distant timezone, where sunny beach activities and turismo restaurants and copious Tropical Beverages are involved. This means: store all data in ASCII, for human readability. When something goes wrong with the software, far from home, at 2:45 in the morning, I want to be able to diagnose and fix the problem with only 1/3rd of my brain working. For me, that means ASCII.
Yes, processing data in ASCII is slower. It's also simpler. When you've got Montezuma's Revenge but still need to generate orders from your cabana in Costa Rica, simpler is better. So the programming environment I use is: The Windows Command Prompt aka "the DOS box". Most of my code is written in Perl and invoked via .BAT scripts. (Recall that perl code and bat scripts are stored in ASCII and so are human readable). Occasionally I'll code up something in C++ when opacity is tolerable; if so, it's compiled as a Console Application without a GUI. And invoked via a .BAT script.
All of the above refers to "Daily Operations", the things necessary to trade real money in a real account on real markets, every day. "Trading Research" is a different story, where MOM or OPM are not quite as immediately involved, and less paranoia might be acceptable.
MOM = My Own Money
OPM = Other People's Money
Therefore it seems a very good idea to keep (your trading environment) and (the World Wide Web) as far apart as possible. The objective is to make it extremely difficult, or impossible, for hackers, phishers, infiltrators, worms, rootkits, keyloggers, exploiters, shellcoders, hijackers, and Naughty People In General, to access your trading computer, or your data files related to trading, or the software you use in trading. If they can't reach you, if they can't touch you, there's less chance they can hurt you.
Embracing this philosophy, I've decided to make my trading software unaware of, and disconnected from, the internet. It runs on physical, not virtual, computers. In my office, not in "the cloud". By the way, here's a sobering little reminder about the cloud: LINK.
After (very costly!) field testing, I decided to (re)design my software so it can be operated by the most incapable bonehead and fatfingered dunce on the planet: me, on vacation, in a distant timezone, where sunny beach activities and turismo restaurants and copious Tropical Beverages are involved. This means: store all data in ASCII, for human readability. When something goes wrong with the software, far from home, at 2:45 in the morning, I want to be able to diagnose and fix the problem with only 1/3rd of my brain working. For me, that means ASCII.
Yes, processing data in ASCII is slower. It's also simpler. When you've got Montezuma's Revenge but still need to generate orders from your cabana in Costa Rica, simpler is better. So the programming environment I use is: The Windows Command Prompt aka "the DOS box". Most of my code is written in Perl and invoked via .BAT scripts. (Recall that perl code and bat scripts are stored in ASCII and so are human readable). Occasionally I'll code up something in C++ when opacity is tolerable; if so, it's compiled as a Console Application without a GUI. And invoked via a .BAT script.
All of the above refers to "Daily Operations", the things necessary to trade real money in a real account on real markets, every day. "Trading Research" is a different story, where MOM or OPM are not quite as immediately involved, and less paranoia might be acceptable.
MOM = My Own Money
OPM = Other People's Money
ok, I'll bite. Sluggo, how are you accessing your console machine remotely then? Through the Windows remote connection or via other means?
Thanks, was curious.
Thanks, was curious.
Last edited by nonpareil on Wed Mar 03, 2010 8:40 am, edited 1 time in total.
When away from home (e.g. vacationing) I bring a trading computer with me.
To run Blox and Perl: Laptop computer + USB thumbdrive + file encryption + steganography + obscurity. (my answer to: What if computer is lost, stolen, confiscated, or rummaged by customs & immigration?)
To download prices and upload orders: the above (includes LAN, WiFi) + USB 56k modem + loads of adapter/extender cables + accounts on AOL, NetZero, and MaGlobe.
Has worked well in the continental US, Mexico, Hawaii, and the Caribbean. Haven't tried it in Oz, Asia, Europe, Africa, Middle East, or South America.
To run Blox and Perl: Laptop computer + USB thumbdrive + file encryption + steganography + obscurity. (my answer to: What if computer is lost, stolen, confiscated, or rummaged by customs & immigration?)
To download prices and upload orders: the above (includes LAN, WiFi) + USB 56k modem + loads of adapter/extender cables + accounts on AOL, NetZero, and MaGlobe.
Has worked well in the continental US, Mexico, Hawaii, and the Caribbean. Haven't tried it in Oz, Asia, Europe, Africa, Middle East, or South America.
-
- Senior Member
- Posts: 28
- Joined: Tue Dec 30, 2008 5:36 pm
Security during travel
Sluggo -
When you travel don't you have to hook up to the internet then to get fresh data? Doesn't that impact the idea of keeping the system away from the internet?
Also, any suggestions on good places to look re practical stenography?
Thanks in advance!
When you travel don't you have to hook up to the internet then to get fresh data? Doesn't that impact the idea of keeping the system away from the internet?
Also, any suggestions on good places to look re practical stenography?
Thanks in advance!
-
- Senior Member
- Posts: 28
- Joined: Tue Dec 30, 2008 5:36 pm
correction
correction/addendum to prior post:
1. Are you saying that you bring two laptops, one for data and for trading systems?
2. Any info re "steganography" not "stenography" (you can see I am not all that familiar with this yet . . . although probably "stenography" might be a fascinating topic in its own right . . . )
Thanks!
1. Are you saying that you bring two laptops, one for data and for trading systems?
2. Any info re "steganography" not "stenography" (you can see I am not all that familiar with this yet . . . although probably "stenography" might be a fascinating topic in its own right . . . )
Thanks!
-
- Contributor
- Posts: 2
- Joined: Mon Nov 01, 2010 12:12 am
-
- Roundtable Knight
- Posts: 1436
- Joined: Mon Dec 22, 2003 12:24 pm
- Location: Des Moines, IA
- Contact:
When I am traveling I log into my home computer to download data and run orders. I use logmein.com and can use any computer on the web to do so. Its free.
If i cant get to a computer, I have an app on my Droid phone that allows me to log into my home computer. Its a bit more tedious to navigate on a tiny screen, but it is manageable if needed.
If i cant get to a computer, I have an app on my Droid phone that allows me to log into my home computer. Its a bit more tedious to navigate on a tiny screen, but it is manageable if needed.
Thanks, just what I'll need.LeviF wrote:I use logmein.com and can use any computer on the web to do so. Its free....
LogMeIn wrote: Wake on LAN. Wake a remote computer that is sleeping, or turn on one that is off, right from your web browser. Lets you save energy and still service or access your remote computers.
Re: What's your favorite programming platform?
I will need to state JavaScript. If not for Node.js my answer may have been Python or C++, but since of Node JavaScript is my top choice.
I know it is a polarizing subject and being a web engineer I am mindful of its blemishes. In any case, I surmise that the great parts of JavaScript are astonishing, and the Node.js biological system is gigantic.
These days I scarcely compose vanilla ES5 JavaScript, I stay with ES6 on the backend and TypeScript or Babel toward the front. I think ES6 was a positive development without a doubt. JavaScript required classes regardless of whether they do accumulate down to the prototypal example when you package it to ES5. ES6 class linguistic structure makes OOP significantly more like different dialects and enables you to ridicule traditional legacy.
I know it is a polarizing subject and being a web engineer I am mindful of its blemishes. In any case, I surmise that the great parts of JavaScript are astonishing, and the Node.js biological system is gigantic.
These days I scarcely compose vanilla ES5 JavaScript, I stay with ES6 on the backend and TypeScript or Babel toward the front. I think ES6 was a positive development without a doubt. JavaScript required classes regardless of whether they do accumulate down to the prototypal example when you package it to ES5. ES6 class linguistic structure makes OOP significantly more like different dialects and enables you to ridicule traditional legacy.
-
- Roundtable Knight
- Posts: 2071
- Joined: Fri Apr 25, 2003 3:33 pm
- Location: London
- Contact:
Re: What's your favorite programming platform?
Its easy as hell to write your own program in Python as i have done for several option trading strategies. But I still admire something like Trading Blox for the sheer breadth.
-
- Roundtable Knight
- Posts: 2038
- Joined: Wed Oct 06, 2004 10:52 am
- Location: San Marcos, CA
Re: What's your favorite programming platform?
The coding language we like best isn’t necessarily the best language for a specific goal. What makes one simulation software better than another is dependent upon what trading stages do we want to emulate, and when do those stages need to execute. It also means what programming language will allow us to create those stages into our design for a simulation engine.
Another way to discover an answer is to profile all the thinking and decision making we employ where and when we are being successful in trading our ideas. From the profile of what works, the stages of what is needed will emerge.
Adding to the above, the capabilities of an available trading emulator, and isn’t in an emulator. How many systems might you want to run for your next trading day, and what market time frames are you comfortable trading.
In my world, Trading Blox has been the best simulation engine available so far. I believe that because it has allowed me to get away from TradeStation’s limited capabilities needed to be careful and successful with our trading campaigns. there were a lot of post-processing programs that had to run at the end of each market day before we could use the signal for the next day. The need to create all those add-ons and DLL’s to support my view of how I trade successfully with TradeStation now seem so primitive that they were in the simulator in the beginning. While we solve a lot of issues with add-on software, they were also more restricted than I understood for way too long.
If you do a serious effort to explore what you know is needed to keep being successful with your signals, you’ll be able to decide if your favorite language will support all the stages when they need to be tended to, so you don’t have to compromise your ability to be successful.
For some, the above might seem unnecessary, or silly. The reality is the above is just barely scratching the surface of that is required.
Good Luck. Whatever you do, enjoy the coding even if you find you don't have time to trade because of the development that is required.
Another way to discover an answer is to profile all the thinking and decision making we employ where and when we are being successful in trading our ideas. From the profile of what works, the stages of what is needed will emerge.
Adding to the above, the capabilities of an available trading emulator, and isn’t in an emulator. How many systems might you want to run for your next trading day, and what market time frames are you comfortable trading.
In my world, Trading Blox has been the best simulation engine available so far. I believe that because it has allowed me to get away from TradeStation’s limited capabilities needed to be careful and successful with our trading campaigns. there were a lot of post-processing programs that had to run at the end of each market day before we could use the signal for the next day. The need to create all those add-ons and DLL’s to support my view of how I trade successfully with TradeStation now seem so primitive that they were in the simulator in the beginning. While we solve a lot of issues with add-on software, they were also more restricted than I understood for way too long.
If you do a serious effort to explore what you know is needed to keep being successful with your signals, you’ll be able to decide if your favorite language will support all the stages when they need to be tended to, so you don’t have to compromise your ability to be successful.
For some, the above might seem unnecessary, or silly. The reality is the above is just barely scratching the surface of that is required.
Good Luck. Whatever you do, enjoy the coding even if you find you don't have time to trade because of the development that is required.
-
- Roundtable Knight
- Posts: 2071
- Joined: Fri Apr 25, 2003 3:33 pm
- Location: London
- Contact:
Re: What's your favorite programming platform?
My needs became very different. I guess at heart I am simply an analyst with an insatiable curiosity. I had been trading XIV, the short Vix ETF, and happily managed to emerge unscathed at its demise, thanks to hedging with options and a position in a geared 10Yr Treasury Bond ETF.
I took a greater interest in options and bought various options data from the CBOE. Which was a mess, to say the least. I'm not sure that commercially available software exists to do what I needed to do. Clean up the data and choose which and what maturities and strikes to roll into a concatenated series for back testing.
Then I began to think of the nature of options and whether it might be possible to create a series of fake option prices. So I created the software to do this with the help of various Python libraries but realized I would need to replicate the volatility smile and never quite got around to that final stage.
I also wanted to test out for myself various option trading strategies and for me at least an important part of the learning curve is learning such strategies by having to code them from scratch.
Anyway various pieces of code are on my Gist for anyone with interest. Doubtless there are errors and equally probably things could be done a lot better. Nonetheless doing the work taught me a great deal about options, and that was what I was after.
For Roger the situation is very different. He needs to provide trading signals efficiently for a hedge fund. I do not and in my case the option strategies I looked at were to trade once a month which is best done by hand.
I veered towards systems which only needed to be looked at periodically and which did not need to be executed automatically.
The other fun I have had with python over the years is to look at all sorts of machine learning algorithms. Again it was fun to learn how these worked by coding simple algorithms from scratch.
So yes, my objectives and needs have been very different from Roger's.
https://gist.github.com/AnthonyFJGarner
I took a greater interest in options and bought various options data from the CBOE. Which was a mess, to say the least. I'm not sure that commercially available software exists to do what I needed to do. Clean up the data and choose which and what maturities and strikes to roll into a concatenated series for back testing.
Then I began to think of the nature of options and whether it might be possible to create a series of fake option prices. So I created the software to do this with the help of various Python libraries but realized I would need to replicate the volatility smile and never quite got around to that final stage.
I also wanted to test out for myself various option trading strategies and for me at least an important part of the learning curve is learning such strategies by having to code them from scratch.
Anyway various pieces of code are on my Gist for anyone with interest. Doubtless there are errors and equally probably things could be done a lot better. Nonetheless doing the work taught me a great deal about options, and that was what I was after.
For Roger the situation is very different. He needs to provide trading signals efficiently for a hedge fund. I do not and in my case the option strategies I looked at were to trade once a month which is best done by hand.
I veered towards systems which only needed to be looked at periodically and which did not need to be executed automatically.
The other fun I have had with python over the years is to look at all sorts of machine learning algorithms. Again it was fun to learn how these worked by coding simple algorithms from scratch.
So yes, my objectives and needs have been very different from Roger's.
https://gist.github.com/AnthonyFJGarner