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 62 Read More
Starting with Zorro
01/13/26 11:16
Yes, I have. And I run Trading Station from FXCM, it can connect to FXCM correctly with clash vpn.
3 62 Read More
Starting with Zorro
01/13/26 09:39
Have you unpacked the fxcm.zip?
3 62 Read More
Starting with Zorro
01/13/26 02:32
I registered a fxcm demo account. I filled it in Accounts.csv, see the attachment.
I ran zorro and selected demo and FXCM. Then I clicked Trade, it gave the following errors, any idea?

Login 0 FXCM..
!Login - Login failed.
Can't connect!

I am in China mainland. I use windows 10. I use a clash vpn to access foreign web sites. I have set enviroment variable:
set HTTP_PROXY=http://127.0.0.1:7890
set HTTPS_PROXY=http://127.0.0.1:7890
3 62 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 40 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 856 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 267 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 267 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 177 Read More
Starting with Zorro
01/09/26 21:12
if(Train) MaxLong = whatever, and TrainMode |= LIMITS.

1 94 Read More
Starting with Zorro
01/09/26 00:20
The manual says: MaxLong, the maximum numbers are ignored in [Train] mode when the NOMAX flag is set.
But if I use set(NOMAX), zorro says NOMAX undeclared identifier.
I want to enable MaxLong in [Train] mode, is it possible?
Any idea?
1 94 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 107 Read More
Starting with Zorro
01/08/26 09:49
Hello,

I am encountering a confusing and apparently inconsistent price-rounding behaviour in Zorro.

When placing limit entries, stop loss and take profit levels, Zorro seems to internally round the actual order prices. On top of that, the rounded execution prices are sometimes inconsistent with what is visually displayed on the chart.

Entry rounding (yellow marks):
  • I placed the limit order at 1.27162
  • The console log reports that the trade was opened at 1.27200
  • Visually, the chart also shows the entry at 1.27200


TP rounding mismatch (blue marks):
  • I placed the TP at 1.27317
  • The console log reports that the trade was closed at 1.27317
  • Visually, the chart shows the close at 1.27300


So in this second case, the console and the chart do not even agree with each other.
  • Why are order prices rounded at all?
  • What rounding logic is used for entry, SL and TP prices?
  • Why can the chart display differ from the console log?
  • Which one reflects the actual executed price?
  • How can one make visual display and actual execution strictly consistent?


Additional details:
  • Version: 2.70
  • Fill mode not set (left as default)
  • Spread = Commission = Slippage = RollLong = RollShort = 0 (for testing)
  • all trade price variables (Entry, Stop, TakeProfit) are double
  • set(LOGFILE, PLOTNOW, TICKS); so intrabar entry/exit is enabled


Thank you for your clarifications.
1 107 Read More
Jobs Wanted
01/07/26 15:14
Looking for new games to work on!
101 57,515 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 103 Read More
Starting with Zorro
01/07/26 12:11
Hello,

After a longer break, I recently started developing new algos again and updated to Zorro 2.70.
I am using VS Code, so the compiled DLL files are produced “externally” and are therefore not directly managed by Zorro.

My workflow is the following: I modify the code, compile it, and run it in Zorro. However, after making further changes and compiling again, I frequently get this error from the C++ compiler:
Code
LINK : fatal error LNK1104: cannot open file 'C:\zorro\myStrategy\myDownloader.dll'

It appears that Zorro does not release the DLL after a run, so the system cannot overwrite it. This happens with both Zorro and Zorro64. The workarounds I have found so far are restarting Zorro, or running a different script first, and only then compiling and running the updated one.

I am not sure when this behavior started to occur, but is there a way to explicitly unload or unlock the DLL after a Zorro run?
1 103 Read More
Zorro and the Brokers
01/07/26 07:50
Do you have any plan to implement it?
2 105 Read More
Zorro and the Brokers
01/07/26 07:06
Yes, but in an indirect way, by installing it in Python and using Zorros Python interface.
2 105 Read More
Zorro and the Brokers
01/07/26 00:31
Is it possible to develop a ccxt plugin for Zorro, enabling it to connect to almost all cryptocurrency exchanges via the ccxt interface for cryptocurrency trading?
2 105 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 162 Read More
Starting with Zorro
01/06/26 14:35
This revision is highly necessary, as otherwise the outcome would be too optimistic.
3 162 Read More
Starting with Zorro
01/06/26 10:31
Good question. The reason of the difference is simulating the most likely price move between triggering the trade and and filling the order. Since you have an entry limit, the price is supposed to move against the trade direction. This difference is rounded to the next point, which is 0.01 in case of stocks.

It is arguable whether this makes much sense, since the Slippage simulation should anyway cover it. It has historical reasons, we wanted to replicate the backtests of TradeStation. They are in this way adding or subtracting one point from the fill price. We will probably in a future version add a flag to enable or disable that effect.
3 162 Read More
Starting with Zorro
01/06/26 09:24
I tested limit orders using the following code. I set Fill=3, meaning the order is filled at the opening price of the next day. I used historical AAPL EOD data. I placed the order on 2025-1-16 with a limit price of Entry = -232.00. I expected the order to be filled at the opening price of 231.86 the next day (17th, as shown in the attached image), but it was actually filled at 231.85 on the 17th, which is 0.01 less than expected. I'm not sure why this is happening. I tested several other dates, and the result was consistently 0.01 less. Any idea?
Code
function run() 
{
	set(LOGFILE);
	StartDate = 20250101;
	EndDate = 20250212;
	LookBack = 5;
	Slippage=0;
	Fill = 3;
	Spread = 0;
	BarPeriod = 1440;
	assetList("AssetsSP30");
	asset("AAPL");
	vars Prices = series(priceC());
	Entry = - 232.00 ;	

	if(year()==2025 && month()==1 && day()==16){
		watch("date",year(), month(),day());
		enterLong();
	}		
}
3 162 Read More
Page 1 of 3 1 2 3

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