Collaborating with a programmer to create trading tools/strategies - Have anyone done this?

Honestly, it might not be a bad idea to simply learn how to code in C#. It's a useful skill and will enable you to quickly try your own ideas. Honestly, only about 2% of the ideas that I have tried turned out to be useful. I've written slightly over 10 MB of java source code over the past decade. Many ideas that sounded good, but didn't work.

10 Mb of java code. So what's like 20 kb of Python?
 
Also, having done this much work on my own, I notice that I am a bit reluctant to just hand over what I've learned to someone else. Which is why I'm leaning towards having it done professionally. But even still - I'm paranoid about sharing my stuff. Having worked a bit with programmers though, it's interesting to note how oblivious most of them are to what they're actually programming.

What's the program language? Most upper-level like Python and C# is pretty easy to learn. Unless there are millions of codes, which doesn't sound like it by what you've written, why not tackle it yourself?
 
What's the program language? Most upper-level like Python and C# is pretty easy to learn. Unless there are millions of codes, which doesn't sound like it by what you've written, why not tackle it yourself?

Higher level. While I agree, it takes quite a lot of time to get things working right. Plenty of pitfalls and tricks to learn.
 
Howard,

Why don't you ask for help here in the programming aspects of what you want to do without giving away your algorithm and do the implementation changes yourself?

C# programming is pretty easy. You're probably just caught up in using NT's library of function calls and maybe how to do certain comparisons. Just misdirect the comparisons you want to make. That is, pick common indicators not related to your algorithm and ask about their manipulations. Then, you apply the pattern of what's being done to your algorithm.

Your software implementation sounds mature already. You can make the changes yourself. Whenever you make a change, just make sure you back-up the prior version which worked the way you wanted it to.

Hi, SteveH,

I sincerely appreciate the suggestion, but I think what you're suggesting is way beyond me and probably not even possible with this project.

It's written in C#, but uses queries and functions in SQL. It's not just an algorithm in Ninjatrader. I don't use Ninjatrader at all for this application.

I had a programmer spend a day just understanding the codebase and even then he didn't fully comprehend it. I think because the code is poorly documented and not very logically organized. Also, he ran into problems once because he couldn't find the correct source code (I later retrieved it from the old company).

Your latter paragraph is how I wish this was organized and how I want things to be when I eventually redesign this entire thing. It needs to be done in a way that I can understand and make changes to.

Best regards,

Howard
 
Agree.

Also, can't you split your method/program into subroutines, functions each only does a small part of the computation? Since you know how to program, you write the overall overlay that link all of it together so no one knows what exactly what you are doing?

Hi, ironchef,

Please see my reply to SteveH. I don't think that's possible.

I do NOT know how to program. :)

I know some basics, but it's too basic to be of any use yet, except simple stuff in VBA.

Best,

Howard
 
Honestly, it might not be a bad idea to simply learn how to code in C#. It's a useful skill and will enable you to quickly try your own ideas. Honestly, only about 2% of the ideas that I have tried turned out to be useful. I've written slightly over 10 MB of java source code over the past decade. Many ideas that sounded good, but didn't work.

I do want to learn it eventually. It's on my fat to-do list. So is learning a new market and learning options.

But I do feel learning programming is mandatory these days...

Howard

What's the program language? Most upper-level like Python and C# is pretty easy to learn. Unless there are millions of codes, which doesn't sound like it by what you've written, why not tackle it yourself?

It's written in C# and if not a million (could be), there's at least thousands of lines of codes.

The way to go with this project is to do it correctly from scratch and document things properly.

I do want to learn coding, but I think it will take me a few years until I'm proficient enough to write something like this.

My application is basically a program. A back-testing engine, even. It's not just a single algorithm or indicator in Ninja.

Part of the reason why it's not optimal is because version 1.0 was designed by two great guys and worked great as it was a very basic and limited version. Throughout the years my application grew much more complex than it was originally intended to be. For example, it was not meant for intraday use initially. And due to my budget, a less skilled programmer took over the project (while still inside the original company). Only later on did I work with programmers who seemed a lot better than this one.

Howard
 
Hi, ironchef,

Please see my reply to SteveH. I don't think that's possible.

I do NOT know how to program. :)

I know some basics, but it's too basic to be of any use yet, except simple stuff in VBA.

Best,

Howard
If you know high school math, you can learn how to program.

I didn't even know VBA until I took a Coursera course in VBA (actually two, part 1 & part 2). Took me six months after to be able to code something useful. I have written a bunch of subroutines to backtest some scenarios... I also took a course in MATLAB but am having difficulty applying it to backtest.

I am going to take a course in Python next year because my ET advisors here said if I wanted to automate my trading, using API, Python is better suited than VBA excel.

Happy holiday to you.
 
I write my own and they take months to complete working on them several hours a day all week.
First there is the general outlay, then tweaking, then additions, further tweaking, cutting stuff out, replacing. There will be errors in the code which don't come to light until you're trading.
Most often you will not be happy with the results so improvements are made.
My suggestion if you are really serious about getting someone to code rather than yourself, share it with them so they can use it.
It's the only way because it's a long tedious job and you will drive the coder nuts with your requests for changes.
The algo is your love, not someone else's, and to keep someone interested who 'has no interest' is an impossible task.
Believe me, I've been doing this for years both having a coder do my work as well as doing my own, so I think I'm partially qualified with this observation.
PS: I don't wish to code for you.
 
Last edited:
Another suggestion, if the code is quite large or complex, you will best need to add descriptive notes in amongst the code so you can keep track on the reasons lines of code are included.
Sometimes there may be code which needs changing due to different situations, so little descriptions along the way help you keep track on your thinking.
If you don't wish to add due to "have to keep this secret", your algo can get out of hand and you lose track of what your mindset was when these code lines were implemented.
 
Back
Top