Code specifics for the ProBacktest module…
Forums › ProRealTime English forum › ProOrder support › Code specifics for the ProBacktest module…
- This topic has 26 replies, 6 voices, and was last updated 1 month ago by
NeoTrader.
-
-
05/12/2025 at 5:41 PM #247020
I’m just speculating here, but it’s possible to draw a correlation between indicator code and backtest, and the final proOrder strategy code because of the call instruction.
A backtest code only allows a subset of command to be valid in its file, however, it can call an indicator code file that uses other commands, for indicators.
I guess that when a indicator is called from the backtest, only the results of the indicators returned variable’s are used in the backtest and not the different indicator only commands , however, they influence the indicator calculations.
These also, come up when you query the current version of the proOrder Strategy file.
So this could account for why the general proBuilder lauguage commands incorporate the code for indicators, and I guess it’s would be the same for screeners.
This may be why when looking back from the backtest that indicator code is invalid, but not if it’s called!
Or looking forward from an indicator and requiring other commands for the backtest.
Just a thought that came into my head while all the other comments were flying over it.
Regards
Hi druby,
Thank you for taking the time to reply.
Yep, I am noticing a similar line too, where the ProBacktest Code calls into use, an indicator or the proprietary PRT code.
This is similar to Python code, calling pandas_ta library.
Having said that, some of the code syntax errors encountered are not always in relation to that of the indicator in use.
Hence, my search for a specific ProBacktest code library.
I have yet to look into anything (Modules of the ProRealTime Platform) other than, the backtest, as this is always my first port of call when using a trading platform.
Onwards…
Please feel free to comment, its much appreciated.
NT
05/12/2025 at 6:08 PM #247021Hi again NT,I am not sure what you are stating, so it is likely I am missing the poignant matters you state.
I think the most important message from my last post is :
- You/we are in the lap of the Gods for how PRT – server side ! – deals with our trades in the communication (interfacing) with the two brokers – IG and IB. There is no influence from you, the client, possible, so steering that in good order is eminent. The sheer fact that the two brokers each have their own massive list of rules, implies that all these rules should be made known to the AI or else only misery (thrown out Systems) come from it.
- Nobody can make known these rules, because they are not simply listed somewhere. We run into them instead. Note : it takes many months throughput to test this all in Live-Live, knowing that Live-Live is the only real representative for all what can happen (like, no broker present in Demo-Live and therefore half of the misery not happening, the other half still does because it won’t occur in BT – only in ProOrder).
Somewhere in here lives a thread where about each day I could mention a new error message from IG, stopping my system for thus again another reason.
Attached a small list of the past month or so, of the throwouts I accept (I just restart and be done with it). I have hundreds of these – probably way more than 1000, divided over 50 or so reasons, say 45 solved. Solved how ? by not executing certain commands, not executing them too frequently, not execute them in certain time periods, and then 40 reasons more – those reasons being different for IG than for IB.
Plus as we all know : what I as a person may squeeze out of PRT / trading, is in no way equal to what you would do. What we challenge for is thus also different.So summarized : if that is not incorporated, then your glossary of commands is fairly useless. What would lead to something IMO, is the discussions in a forum like this (which readily is the only forum about PRT anyway). I recall a last nice discussion between a few (me, GraHal and a couple more) when IG announced a different strategy for amending their rejections policy (= System throwouts) all in the realm of “more happy users”. I forgot the real subject but it was related to Limit Orders from now on being transferred to Market orders so that their internal systems would not reject (under the normally present regime of “price is not present any more”). Let’s say this was a discussion of 50+ posts, everybody guessing what the letter we all received form IG, its real merits were (which for IG is always negative as they do all to get more of your money). Now, *that* is a dicussion for an AI to grasp “intelligence” from, most certainly more into the history of times. It would readily conclude what is really going on, especially looking at the dates after the installment of that letter.
It-is-the-only-such-discussion I recall, so generally useless. There are no releasenotes. There are a million complaints, nothing ever stated solved (but things get solved). There is thus nothing for an AI. No-thing (except for that one discussion). This is so f*cked up that it is a sheer waste for several reasons to begin with.
And again I say : it is not Ninja (now not addressed as NT which could have been confusing). Millions of discussions, infinite release notes, uncountable number of solutions or reasoning about client side code which does not exist with PRT. It is a missed opportunity (but by accident) which will never recover.I did not see that one coming at all. But today it is sheer fact.
But who knows … You may come up with the good ideas and I will gladly listen.
Kind regards,
PeterPS: *are* you familiar with other platforms, as I suggested ?
05/13/2025 at 12:16 AM #247026Function Comparison: ProBackTest/ProOrder vs. ProBuilder
Function Category ProBackTest / ProOrder ProBuilder Graphical functions (DRAWTEXT, DRAWLINE, etc.) Not allowed Allowed Trading instructions (BUY, SELL, SET STOP, etc.) Allowed Not allowed Time and date functions (CurrentTime, Year, etc.) Allowed Allowed Indicators (RSI, MACD, ADX, etc.) Allowed Allowed Visualization options (COLOURED, STYLE, etc.) Restricted/Not allowed Allowed Control logic (IF/THEN/ELSE, WHILE, FOR, etc.) Allowed Allowed Array functions (ArraySort, IsSet, etc.) Allowed Allowed Result definition (RETURN, AS, ONCE, etc.) “Return” Not allowed Allowed 2 users thanked author for this post.
05/13/2025 at 12:58 PM #247050PeterSt
Hi PeterSt,
I think, from my understanding of your post replies, that you are at odds with the coding and any forward coding operations.
I, on the other hand, only wish to utilise the ProBacktest code features.And, I can see from other post updates, that there are limitations with the ProBacktest code (Size and process content of said code).
But, you have shed light on matters that might affect my future use of the ProRealTime Platform…
I say might, as I have mentioned that I use my own coded algorithm, which only requires the backtest performance values.For my foreseeable future, I have no intention of automating any code ordering, my preference is that I act on the green light algorithm system, for both trade entry and exit.
Aside, I thank you once again your replies.
My warmest regards,
NT05/13/2025 at 1:03 PM #247051Function Comparison: ProBackTest/ProOrder vs. ProBuilder
<table style=”font-weight: 400;”>
<tbody>
<tr>
<td width=”192″>Function Category</td>
<td width=”192″>ProBackTest / ProOrder</td>
<td width=”192″>ProBuilder</td>
</tr>
<tr>
<td width=”192″>Graphical functions (DRAWTEXT, DRAWLINE, etc.)</td>
<td width=”192″>Not allowed</td>
<td width=”192″>Allowed</td>
</tr>
<tr>
<td width=”192″>Trading instructions (BUY, SELL, SET STOP, etc.)</td>
<td width=”192″>Allowed</td>
<td width=”192″>Not allowed</td>
</tr>
<tr>
<td width=”192″>Time and date functions (CurrentTime, Year, etc.)</td>
<td width=”192″>Allowed</td>
<td width=”192″>Allowed</td>
</tr>
<tr>
<td width=”192″>Indicators (RSI, MACD, ADX, etc.)</td>
<td width=”192″>Allowed</td>
<td width=”192″>Allowed</td>
</tr>
<tr>
<td width=”192″>Visualization options (COLOURED, STYLE, etc.)</td>
<td width=”192″>Restricted/Not allowed</td>
<td width=”192″>Allowed</td>
</tr>
<tr>
<td width=”192″>Control logic (IF/THEN/ELSE, WHILE, FOR, etc.)</td>
<td width=”192″>Allowed</td>
<td width=”192″>Allowed</td>
</tr>
<tr>
<td width=”192″>Array functions (ArraySort, IsSet, etc.)</td>
<td width=”192″>Allowed</td>
<td width=”192″>Allowed</td>
</tr>
<tr>
<td width=”192″>Result definition (RETURN, AS, ONCE, etc.)</td>
<td width=”192″>“Return” Not allowed</td>
<td width=”192″>Allowed</td>
</tr>
</tbody>
</table>Ah JS,
How very kind of you to provide the code differentiation of ProBacktest vs ProBuilder.I do wonder, given the importance of backtesting, that additional code features are added, that of course would benefit others.
I shall create such a list, and post that others might also desire such useful code amendments, would you have any such requests for this matter?
My kindest regards
NT.05/13/2025 at 1:12 PM #247052JS wrote: Function Comparison: ProBackTest/ProOrder vs. ProBuilder
Neo when ‘Quoting’ it is best to only highlight a small part (as I did above) of a previous post then click the Quote button.
We can easily click back to the full original post if we need to read the whole post etc.
If we highlight whole posts it becomes messy, too much uneeded text and more scrolling to get to the new posted text etc.
Just a gentle tip anyway.
1 user thanked author for this post.
05/13/2025 at 1:14 PM #247053JS wrote: Function Comparison: ProBackTest/ProOrder vs. ProBuilder
Neo when ‘Quoting’ it is best to only highlight a small part
Just a gentle tip anyway.
Hey GraHal,
Ah, I was in the process of editing said post, when you message arrived, but it removed the edit feature…. Noted thank you…
NT05/13/2025 at 1:17 PM #247054Hi JS
Can you clarify, if this is all a no go with the ProBacktest code module…Function Category ProBackTest / ProOrder ProBuilder:
Visualization options (COLOURED, STYLE, etc.) Restricted/Not allowed Allowed <<< is this restriction to all of the visualisation options or partial ??
and
Result definition (RETURN, AS, ONCE, etc.) “Return” Not allowed Allowed <<< Is it only the ‘RETURN’ that is not allowed, or all stated ‘Results definition’ components??Many thanks,
NT05/13/2025 at 1:44 PM #247058Hi NT,
As mentioned, when debugging your strategy in ProBackTest, you can use
Graph
,GraphOnPrice
, andPrint
.
For example:GraphOnPrice StopLoss as "StopLoss" Coloured("Red")
This allows you to take advantage of the built-in visualization tools to better analyze your strategy…
Important: once your strategy goes live, these visualization commands are no longer allowed…
Finally, the
Return
command must always be the last line in the code of an indicator (ProBuilder)…Return
should not be used in a ProBackTest/ProOrder strategy…1 user thanked author for this post.
05/13/2025 at 2:16 PM #247060Hi NT,
As mentioned, when debugging your strategy in ProBackTest, you can use
Graph
,GraphOnPrice
, andPrint
….Hey JS,
Just as a heads up….
I never use said code for live purposes…All of my comments relate to the ProBacktest and backtesting purposes…
I hope that makes any answering easier….
NT
1 user thanked author for this post.
05/13/2025 at 2:24 PM #24706105/13/2025 at 5:36 PM #247069 -
AuthorPosts