Gamestudio Links
Zorro Links
Newest Posts
FXCM demo test failed
by qin. 01/13/26 13:53
Camera always moves upwards?
by NeoDumont. 01/12/26 09:39
Alpaca Plugin v1.5.2 Release
by kzhao. 01/11/26 13:42
Alpaca Plugin v1.4.0
by kzhao. 01/11/26 13:38
separating groups of 3 digits by a comma
by joe_kane. 01/11/26 00:01
MRC.c and WFO
by joe_kane. 01/10/26 23:58
BarOffset (default = 940 for daily bars?
by joe_kane. 01/10/26 23:46
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
0 registered members (), 5,207 guests, and 4 spiders.
Key: Admin, Global Mod, Mod
Newest Members
promfast, joe_kane, Namitha_NN, Syndrela, agasior
19190 Registered Users
Active Threads | Active Posts | Unanswered Today | Since Yesterday | This Week
Starting with Zorro
01/13/26 13:53
I finally resolved it. Now it connect correctly
3 58 Read More
A8 Engine
01/12/26 09:39
OK. "camera always goes up" solved with small texture animation demo:

So as a result of my research about a upwards moving camera I like to share the results with you:

1. It is correct: You need a hmp (Ground) below your level geometry to avoid an upgoing camera/player camera. Strangely enough. Note the hmp in my 3DGitt demo screenshot.

2. I created a small demo level with a Guard-player with the t_player action attached to the model. The t_player action has been modified
by me so that you can hear footsteps when walking.

The cube with the black and white texture animation has been created separately in WED as a simple map, saved out and loaded in the main level with >add map entity<. Because this map entity had no collision detection I put a level prefab block into the map entity to get a stop collision.

The barrel has a fx_uvspeed attached, You can see it working.

The lava stream at the bottom of the level, again, is a separately created block entity with a texture animation (+0lava to +9lava). It was also build as a simple mesh and then imported. To avoid falling through the lava block I placed a level primitive inside the lava block.
The lava stream movement was created in PCXanim. It is not a uvspeed fx.

The whole level was compiled with >create meshes< set.
Script choice was "Flythrough"
t_player.c modified externaly in SED for footstep sounds.
Collision sound not yet implemented but planned.
Project manager used to add "player parameters".
T7 scripts used.

You can download the small tech demo 3DGitt.cd here:

3DGitt/A8 tech demo download

Best wishes !

NeoDumont

A7 Extra Edition (Sybex)
A8 Extra Edition

[Linked Image]


4 866 Read More
Zorro and the Brokers
01/11/26 13:42
Changes:

- Fixed null pointer exception in logger initialization for Zorro versions prior to 2.48
- Refactored version management: removed external version file, now using CMakeLists.txt directly
- Simplified versioning scheme from 4-part to 3-part semantic versioning (MAJOR.MINOR.PATCH)
- Added GitHub release workflow to build both 32-bit and 64-bit binaries with matrix strategy

https://github.com/kzhdev/alpaca_zorro_plugin/releases/tag/v1.5.2
0 37 Read More
Zorro and the Brokers
01/11/26 13:38
Sorry for the late response. The settings dialog appears while the strategy is running.
3 854 Read More
Starting with Zorro
01/11/26 00:01
There is currently no built-in option or flag in Zorro to enable digit grouping (thousands separators) in the console or logs.

Zorro's output is primarily designed to be machine-readable and CSV-compatible, which is likely why this hasn't been implemented as a core feature yet.

Your best bet is to post this as a feature request in the Suggestions subforum.
1 266 Read More
Starting with Zorro
01/10/26 23:58
You should keep WFO enabled. The goal of the MRC is to validate the out-of-sample (OOS) equity curve produced by the WFO process.


Recommended workflow:

Perform a normal [Train] of your strategy first to generate the .par files.
Run MRC.c in [Test] mode. This validates if your out-of-sample results are statistically significant or just due to luck.


Running MRC.c in [Train] mode is even more rigorous as it also checks for "selection bias" (overfitting during the optimization process itself), but it is computationally very expensive and can take a long time with WFO.
1 225 Read More
Starting with Zorro
01/10/26 23:50
You don't need to rename your files or use complex wildcards. Zorro provides a specific variable for this purpose called SymbolHist.

There are two ways to achieve this:

1. Using the script (easiest): After calling asset(), you can manually redirect the history to your specific file name by setting SymbolHist:

c
asset("ES_Z");
SymbolHist = "ESeod"; // Zorro will now look for ESeod.t6 instead of ES_Z.t6

2. Using the Asset List (cleanest for many assets): In your .csv asset list, you can use a colon-separated syntax in the Symbol column (the 12th column). The format is BrokerSymbol:HistorySymbol.

For your case, set the Symbol column for that asset to: ES_Z:ESeod

Zorro will then automatically use ES_Z for all broker commands (trading) and ESeod for all history commands (loading .t6 files).

Important Note: Make sure your History variable is set to the correct extension (usually .t6 by default). If you set SymbolHist = "ESeod", Zorro will look for ESeod.t6 in your Data folder."
1 264 Read More
Starting with Zorro
01/10/26 23:46
The default BarOffset = 940 for daily bars (BarPeriod = 1440) is an internal setting that Zorro only applies automatically if the asset is identified as a Stock (Type 1) in your asset list.


Here are the most likely reasons why you are seeing 0:

Asset Type: Check your .csv asset list. If the Type column is set to 0 (Generic/Forex) or any other value besides 1, Zorro uses the universal default of 0 (alignment at 00:00). For US stocks, ensure the Type is set to 1.
Order of Execution: If you print BarOffset at the very beginning of the run function before calling asset(), it will still show the global default. The asset-specific offset is only loaded after the asset is selected.
Data Source: Even if your historical data consists of minute bars, Zorro won't change the BarOffset unless the asset type specifically triggers it.


Recommendation: While Zorro aims to set these defaults, it is best practice to define the alignment explicitly in your script to avoid confusion across different brokers or asset lists:

c
void run() {
BarPeriod = 1440;
BarOffset = 9*60 + 40; // 940: Align with US market close (15:40 ET)
...
}

Note that 940 is the standard offset for US stocks because the last 1-minute bar of the session starts at 15:59 and ends at 16:00. 940 minutes after midnight is 15:40, which matches the bar timestamping logic (timestamp = bar start time).
1 176 Read More
Starting with Zorro
01/09/26 21:12
if(Train) MaxLong = whatever, and TrainMode |= LIMITS.

1 93 Read More
Starting with Zorro
01/08/26 20:03
Sorry, it was my configuration mistake.
When I printed PIP, I noticed that its value was 0.01, which is wrong for GBPUSD.

The reason is that I was not using Zorro’s built-in history, but instead loaded my broker’s own historical data under the symbol “GBPUSD”.
However, in Zorro’s packaged history data the symbol is “GBP/USD”, and in the AssetFix list has this exact symbol.
But there is no entry for “GBPUSD”.
Therefore no asset parameters were found for my symbol, and Zorro apparently fell back to the default, which was PIP = 0.01.

Zorro actually even warned me about this in the logs, and I overlooked:
"Warning 034: GBPUSD not in asset list"

However, there is still something that appears to be a bug.

In my ZorroFix.ini I have:
Code
HistoryFolder = "myHistory"

But regardless of what I put into "myHistory/AssetFix.csv", Zorro always use the file "History/AssetFix.csv".
So the custom AssetFix file in the custom history folder seems to be ignored.
1 106 Read More
Jobs Wanted
01/07/26 15:14
Looking for new games to work on!
101 57,512 Read More
Starting with Zorro
01/07/26 13:33
A strategy DLL cannot be released after a run, since it is still needed for chart and panel functions. It is released when the source has a newer timestamp, or when you run a different strategy, or close Zorro. If you debug it with VC++, you can simply click on the "Restart" button after modifying the code. It will then automatically close Zorro, compile, and restart it with the new DLL.
1 102 Read More
Zorro and the Brokers
01/07/26 07:50
Do you have any plan to implement it?
2 104 Read More
Starting with Zorro
01/06/26 16:43
In this case yes, in other cases it's pessimistic. But we'll add a flag for that.
3 161 Read More
Starting with Zorro
01/05/26 16:47
No, it needs not be set in the INITRUN, at least I know no reason for that. This sentence in the manual was probably a leftover from copy/paste, you can ignore it.
1 125 Read More
Starting with Zorro
01/05/26 08:50
Theoretically yes, it should work for rules in the same way as for parameters. Try it and let us know if something does not work.
1 157 Read More
Starting with Zorro
01/04/26 18:27
in a multiyear backtest of index components, e.g. SP500, the components change as the index gets rebalanced. the SP500 components today, is not the same as those in 2022, etc.
5 534 Read More
Starting with Zorro
01/03/26 08:10
If you mean with 'right' the close of the bar, then you are right that the close is right. laugh
2 249 Read More
Zorro and the Brokers
12/31/25 21:11
I made a work-around for this that seems to be working reliably enough for me. (I consider it a convenience rather than mission-critical.)

It involves using the system() command to kick off another Zorro instance shortly after the TWS restart, and quit() to kill the original one.

My implementation is likely sub-optimal, so comments welcomed. (But, no need to lecture me about global variables.)

I am running 64-bit Zorro C++ scripts on a Windows 11 machine, with an S-level license.

The following code is pieced together from the various functions where it actually resides and hasn't been tested in this exact form, so consider it just a sketch of concept. The core commands are in the last few lines, the rest is infrastructure.

(Edit: oops, I left out showing where Last_Started_Day is written to the state file. In practice I update the state file every 15th minute based on a tod(0) check.)

-----------------------

// Globals
int Last_Started_Day, UTC_offset;
bool SOD_Business, SOD_Business Done, EOD_Business, EOD_Business_Done; // SOD = start of day, EOD = end of day
string State_File;

DLLFUNC void main()
{
// Delay to ensure previous Zorro instance has ended
if (is(TRADEMODE) && is(COMMAND))
{
printf("10 second delay for Zorro instance handoff...");
wait(10000);
}

State_File = "Data\\My_State_File.csv";

// other main() stuff....

}

DLLFUNC void run()
{
if (Bar == StartBar)
{
printf("\n");
printf("\nLoading State File...");

// Script-wide variables
Last_Started_Day = (int)(getvar(State_File, "Last_Started_Day"));
EOD_Business_Done = (bool)(getvar(State_File, "EOD_Business_Done"));

// other state stuff....
}

// TIME ZONE OFFSET
if (dst(EST,0)==1)
{
UTC_offset = -4;
}
else
{
UTC_offset = -5;
}

start_time = 0400 - UTC_offset*100;

// Daily business
SOD_Business_Done = day(0) == Last_Started_Day;
SOD_Business = tod(0) >= start_time && tod(0) < 2300 && !SOD_Business_Done;

if (SOD_Business)
{
Last_Started_Day = day(0);
SOD_Business_Done = true;
EOD_Business_Done = false;

// other start of day stuff ...
}

int EOD_time;
bool EOD_Window;
if (dst(EST,0)==1)
{
EOD_time = 2350;
EOD_Window = tod(0) >= EOD_time;
}
else
{
EOD_time = 50;
EOD_Window = tod(0) >= EOD_time && tod(0) < 200;
}

// TWS daily restart should be set for slightly before the EOD_time. E.g. currently I use 00:30 GMT

EOD_Business = EOD_Window && !EOD_Business_Done;

if (EOD_Business)
{
if (is(TRADEMODE) && Bar > StartBar && !EOD_Business_Done)
{
login(4);
EOD_Business_Done = true;
putvar(State_File, "EOD_Business_Done", (var)(EOD_Business_Done));
wait(10000);
system("Zorro64.exe -trade My_Script.cpp");
quit("!Restarting Zorro session to cope with IBKR lockout.");
}
}

}
13 3,232 Read More
Starting with Zorro
12/31/25 09:57
got it. The asset list must be loaded in the first run (INITRUN) of the script
1 313 Read More
Zorro Future
12/29/25 09:56
A late christmas gift: The current Zorro beta version 2.73 comes with the new evaluation shell. It can greatly speed up strategy development and improve most strategies. Details: https://zorro-project.com/manual/en/shell.htm.
0 266 Read More
Starting with Zorro
12/29/25 09:37
"Normalized" in that case means adjusted to a 3 years average. In the case of drawdown, it is multiplied with the square root of (3 / test period in years).
1 284 Read More
Starting with Zorro
12/29/25 03:24
No, your Zorro S expires in that case. It’s a subscription. Keep paying monthly for more Zorro S and updates.
1 268 Read More
Zorro Scripts
12/26/25 19:14
Thank you for your kind words, you can use the ZorroGPT in order to expand the use on different timeframes or simultaneous.
you are most welcome, It would be great if you share your ideas too...
22 9,839 Read More
Zorro Future
12/19/25 21:02
Thanks, this will help. I am just creating a GUI for my algo trading set up with Zorro. I have to admit Antigravity helps a lot to run Zorro with a set of Python libraries.Automatic strategy development, backtesting and data analysis and much more in a very short time. But the core is Zorro, and the Zorro manual is really the Bible.
M.
4 607 Read More

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1