I have been able to replicate most of the conditions from my manual excel model into Strategy Analyzer, but since my rules are quite particular i think it will be extremely challenging, if not impossible, to replicate all.
I think I will inevitably have to learn to code in Ninjascript (how hard is it?) .
Using Strategy Analyzer is easier from the perspective that I can more quickly backtest more trades, but manually is easier from the perspective that I do not have to figure out how to "code" my conditions into the software.
My conditions are a lot more complicated that "Go long" when ma crosses over pivot etc.
Its more like go long if this bar closed higher than this bars open ONLY during this timeframe, BUT skip the trade if you have this divergence.
It's the skip the trade when you have this divergence condition that I am trying to "code".
I really appreciate the help and support from some of the members of this great forum.
If your going to be serious about backtesting strategies, your going to have to learn to code. Its part and parcel of the whole backtesting strategy development method. With out it your just going to probably not get the kind of system or results you were looking for originally. Like you mentioned the point and click rule set is not specific enough, and its your first system. you already reach the limit of what that type of analyzer can do. Its better to invest in yourself and learn to code then it is to struggle with sub par tools that you can easily grow out of anyway.
The following 3 users say Thank You to treydog999 for this post:
easylanguage is the "easiest" although very specific to the tradestation or multicharts platform. Learning a more "legitimate" programming language Java, Python, R, or anything in the C family will give you more power and not be bound by a specific platform. It depends on your goals, how much you are willing to put in to study and learn a specific one. I would say that easylanguage is the best way to dip your toe in, and be able to test a very many different systems and get them to run and execute automatically. If I were to pick another language it would be from the C family, either C++ or C# this is because a lot of programs use it (including ninja trader).
R and Python I put into another category because they are very high level scripting languages. Powerful, useful and easy to develop for but are not very well integrated into other platforms.
No doubt. I think there is some confusion here about repeated trials process vs a Bayesian statistical measure.
A 20% chance of rain tomorrow doesn't mean that tomorrow is going to happen a 100 times and 20 times it rains and 80 times it doesn't. Since you are only going to get one sample of tomorrow the 20% prediction is a reflection of the belief in our information at hand.
Of course running a simulation of the weather tomorrow 100 times can turn this into a repeated trials process but the prediction is only going to be as good as the model. You wouldn't put any faith if the weather model is based on flipping an unfair coin and summing the results but that is basically what that montecarlo spread sheet is doing.
You can also consider only using backtesting to find a model of interest but then only test in real time if the time frame is short enough that you can still put on real trades without things having completely changed. Things like max draw down in a backtest are beyond useless IMO. The only certainty we have is that the future will not look like the past.
For learning to code, learning C# in ninja would be the way to go because you can learn by doing and creating the very thing you are interested in this thread without having to bother with learning all the plumbing and boring stuff.
Yes, C# is a great language and is very versatile. Honestly as someone who knows C++ ,the C family its really very common and powerful.
I like that question, although I want to put another spin on it. As in your boss wants you to be able to fluently write code in ninja trader using C# to develop trading strategies. I would say learning on an everyday basis in 90 days or so you will have learned enough to start playing with simple strategies in ninja trader and start to be able to get results. After that your going to be probably pretty fluid in using their functions, shortcuts, and classes/methods that it will get faster and you will spend less time debugging and looking up arguments or syntax. After that its like a real language, the more you use it the more fluent you get.
Honestly trading systems developers want to make it as easy as possible to get started so they add a lot of very useful functions that are ready to use out side of the box. I have never worked with ninjatrader but once you learn the basic code structure of a C program and how it works you should be able to piece together whats going on. Use examples and pre build strategies, dissect them line by line and see how they work.