Gamestudio Links
Zorro Links
Newest Posts
Parameter filename BUG
by walt_Schwarz. 07/02/26 15:36
Synthetic test data in Zorro
by jcl. 07/02/26 13:48
Tradestation Multi-sessions??
by walt_Schwarz. 06/27/26 12:32
Z9 getting Error 058
by jcl. 06/26/26 14:07
ZorroGPT
by TipmyPip. 06/24/26 18:31
AUM Magazine
Latest Screens
Dorifto samurai
Shadow 2
Rocker`s Revenge
Stug 3 Stormartillery
Who's Online Now
2 registered members (TipmyPip, Quad), 2,921 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Newest Members
KD1990, Ephraim, Student_64151, Koti, curry
19221 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Z12 live performance #489457
06/09/26 20:42
06/09/26 20:42
Joined: Feb 2026
Posts: 1
Sweden
A
alx Offline OP
Guest
alx  Offline OP
Guest
A

Joined: Feb 2026
Posts: 1
Sweden
Hi there

I have been running Z12 live with RoboForex through MT4 since May 4, 2026. After 80 closed trades, the results are:

Net result: -$1,736.59
Win rate: 30%
Profit factor: 0.287
Maximum closed-trade drawdown: about -$1,744
I compared the live result with every overlapping 80-trade window in the backtest. About 0.72% of historical windows performed as badly or worse, so this appears possible but unusually poor.

The losses were concentrated in indices and metals:
XAU/USD: -$811
US30: -$702
NAS100: -$183
GER30: -$169
FX total: approximately +$128

I also had 15 Skipped (Margin ... Min 2) messages, all on EUR/USD. They involved CT_75 shorts and HP_59 longs. These directions have very small OptimalF values:
CT_75 short: 0.002 versus 0.309 long
HP_59 long: 0.013 versus 0.557 short
The live and backtest EUR/USD contract parameters match, so these skips appear to be normal minimum-size/ACCUMULATE behavior rather than insufficient account margin so I have trouble seeing how this could affect the performance too much.

I also got this
Warning 054: US30 LotAmount 0.10 -> 0.010
Warning 054: US30 MarginCost 48 -> 5.0
Warning 054: US30 PIPCost 0.1000 -> 0.001000
Warning 054: US30 PIP 1.000 -> 0.1000
After normalizing Lots × PIPCost / PIP, average US30 exposure was approximately $0.216 per index point live versus $0.284 in the backtest. So the live exposure was about 24% lower which means I'm at least not taking on more risk than the system in backtest

Does this analysis suggest an ordinary but rare bad Z12 period? It seems like the phantom trading should step in a some point?

I mean I have been reading the news lately so I know we've had a rather spicy time in the markets. I just wanted to say this is money I can afford to lose but I'm just curious if anyone else has had a rough patch with this one?

Re: Z12 live performance [Re: alx] #489484
06/19/26 08:07
06/19/26 08:07
Joined: Dec 2017
Posts: 21
V
vince Offline
Newbie
vince  Offline
Newbie
V

Joined: Dec 2017
Posts: 21
Hi, I can confirm that Z12 had no luck with XAU/USD and US30 in the last months.
Forex, NAS100 and GER30 were positive for me, but starting about one month earlier, though.

About wrong calculations of several values for indices and gold:
I had to fix PIPCost, LotAmount and Swap in Zorro.mq4 to align with my broker.
Not sure if that applies to other brokers, too, but maybe it helps. Here is my patch for Zorro.mq4 in "int run(int mode)" at "case CMD_ASSET":

Code
--- Zorro.mq4	2024-05-02 13:04:58.000000000 +0200
+++ ZorroFixed.mq4	2026-06-19 09:41:19.866954700 +0200
@@ -354,7 +354,11 @@
          	if(TickSize == 0) TickSize = MarketInfo(Asset,MODE_POINT);
          	if(TickSize == 0) TickSize = 1;
          	arr[4] = PIPCost = MarketInfo(Asset,MODE_POINT) / TickSize * MarketInfo(Asset,MODE_TICKVALUE) * LotFactor * Factor; // pipcost
-         	arr[5] = LotAmount = MarketInfo(Asset,MODE_LOTSIZE) * LotFactor;
+         	LotAmount = LotFactor;
+         	const bool isForex = ((int)MarketInfo(Asset, MODE_MARGINCALCMODE) == 0);
+         	if (isForex)
+         	    LotAmount *= MarketInfo(Asset,MODE_LOTSIZE);
+         	arr[5] = LotAmount;
 #ifdef OUTLIERTEST
          	if(LotAmount == 0. && arr[0] > 0.)
             	Print(Asset," Lot ",MarketInfo(Asset,MODE_LOTSIZE)," Min ",LotFactor);
@@ -362,10 +366,24 @@
          	arr[6] = MarketInfo(Asset,MODE_MARGINREQUIRED) * LotFactor; // margin
          	arr[7] = MarketInfo(Asset,MODE_SWAPLONG);
          	arr[8] = MarketInfo(Asset,MODE_SWAPSHORT);
-				if(MarketInfo(Asset,MODE_SWAPTYPE) == 0.) {
-					arr[7] *= arr[4];
-					arr[8] *= arr[4];
-				}
+         	const int swapType = (int)MarketInfo(Asset,MODE_SWAPTYPE);
+         	if(swapType == 0) {  // points
+         	    // e.g. Forex and Gold
+         	    arr[7] *= arr[4]/*PIPCost*/;
+         	    arr[8] *= arr[4]/*PIPCost*/;
+         	} else if(swapType == 2) {  // interest
+         	    // e.g. CFDs like US30, GER30, ...
+         	    arr[7] *= arr[0]/*price*/ * LotFactor / (365.0/*days*/ * 100.0/*percent*/);
+         	    arr[8] *= arr[0]/*price*/ * LotFactor / (365.0/*days*/ * 100.0/*percent*/);
+         	    if (StringCompare(StringSubstr(Asset, 0, MathMin(3, StringLen(Asset))), "Ger", false) != 0) {
+         	        const double eurUsdRate = MarketInfo("EURUSD", MODE_ASK);
+         	        arr[7] /= eurUsdRate;
+         	        arr[8] /= eurUsdRate;
+         	        // MarketInfo(Asset,MODE_TICKVALUE) should be "Tick value in the deposit currency" according to the MQL4 Reference.
+         	        // But apparently this is not the case for CFDs, so we have to adjust to Euro:
+         	        arr[4] = PIPCost = PIPCost / eurUsdRate;
+         	    }
+         	}
          	arr[9] = iVolume(Asset,PERIOD_M15,0)/15.;
             respond(cmd,arr);
             break;


My account currency is Euro so you have to adjust the calculations regarding "eurUsdRate" if your account currency is different. Probably the 'if "Ger"' also needs attention (no conversion for GER30 needed for me as GER30 is in Euro). That part should be something like this I guess with <ACCOUNTCURRENCY> to be replaced with your currency:
Code
         	   double currencyConversion = MarketInfo("<ACCOUNTCURRENCY>USD", MODE_ASK);

         	   if (StringCompare(StringSubstr(Asset, 0, MathMin(3, StringLen(Asset))), "Ger", false) != 0)
         	       currencyConversion = MarketInfo("<ACCOUNTCURRENCY>EUR", MODE_ASK);

         	   arr[7] /= currencyConversion;
         	   arr[8] /= currencyConversion;
         	   // MarketInfo(Asset,MODE_TICKVALUE) should be "Tick value in the deposit currency" according to the MQL4 Reference.
         	   // But apparently this is not the case for CFDs, so we have to adjust to <ACCOUNTCURRENCY>:
         	   arr[4] = PIPCost = PIPCost / currencyConversion;

Re: Z12 live performance [Re: alx] #489485
06/19/26 11:21
06/19/26 11:21
Joined: Jul 2000
Posts: 28,116
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 28,116
Frankfurt
I confirm that XAU and US30 are currently negative, but the rest should be positive. Don't run a system live when you get errors or warnings about wrong parameters in your asset list. The default list is for an FXCM 100:1 account. Different brokers have different symbols, leverages, and lot amounts. Even FXCM accounts in different countries can have different parameters.


Moderated by  Petra 

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