Gamestudio Links
Zorro Links
Newest Posts
#include "live\mpReRv1100.c" does not work
by MatPed. 05/16/21 13:05
AlpacaZorroPlugin v1.0.2 Released
by kzhao. 05/16/21 01:31
String variable loses it's value
by AndrewAMD. 05/15/21 21:12
Experience with Dukascopy plugin
by JeyKey II. 05/15/21 19:32
Trades get the same TradeID
by tomna1993. 05/14/21 17:41
Oanda Roll (swap) Actually Available?
by AndrewAMD. 05/14/21 15:16
A better skinned rock with MED
by NeoDumont. 05/14/21 01:24
Using Option Chains at 1 Minute Intervals
by AndrewAMD. 05/13/21 14:35
AUM Magazine
Latest Screens
Hecknex World
Scheherazade's Journey
Paradox Vector
The Space Between
Who's Online Now
6 registered members (JeyKey II, MatPed, jyd, Dooley, tomna1993, Quad), 461 guests, and 6 spiders.
Key: Admin, Global Mod, Mod
Newest Members
ShadowAx, TimmiHendrix, contactmmfx, msupl7, Robert_
18644 Registered Users
Active Threads | Active Posts | Unanswered Today | Since Yesterday | This Week
Starting with Zorro
1 hour ago
in zorrofix.ini I set:
StrategyFolder = "‪F:\OneDrive\ZorroStrategy\"
Correctly Zorro look into that dir for script at launch time.

In the script I use:
#include "live\mpReRv1100.c"

I expect that Zorro for the script in ‪F:\OneDrive\ZorroStrategy\live\ directory, but that's not the case.
If I am wrong please explain it. In the second case is a bug.

Another weird behavior is that if you set StrategyFolder = "‪F:\OneDrive\ZorroStrategy", without the final slash the path is set to the parent directory F:\OnedDrive. That'3 not the case using the set HistoryFolder

if set StrategyFolder to a different location and try to create a new script from zorroconsole, you get the message shown in the pic attacched
Thank You

0 4 Read More
Zorro and the Brokers
13 hours ago
0 15 Read More
Starting with Zorro
Yesterday at 21:12
string is typedef'd to char*.

strf returns a temporary pointer to a buffer that gets used over and over again. So of course, using your own fixed buffer will solve the problem.
2 20 Read More
Zorro and the Brokers
Yesterday at 19:32

As far as I interpret it from the dzplugin.log. (I can be wrong too)
A connection to my demo account is apparently established, but is canceled again due to several errors.

2021-05-13 19:38:31,544 DEBUG [DefaultDispatcher-worker-1] login.LoginApi$brokerLogin$1 (BrokerLogin.kt:27) - Starting login: username DEMO2abced accountType Demo
2021-05-13 19:38:35,771 ERROR [DefaultDispatcher-worker-1] zorro.ZorroNatives (ZorroNatives.kt:12) - BrokerLogin failed! Error message: null Stack trace: java.lang.Exception: java.lang.NullPointerException
	at com.jforex.dzjforex.misc.PluginKt.getStackTrace(Plugin.kt:53)
	at com.jforex.dzjforex.login.LoginApi$brokerLogin$3.invoke(BrokerLogin.kt:40)
	at com.jforex.dzjforex.login.LoginApi$brokerLogin$3.invoke(BrokerLogin.kt:18)
	at arrow.typeclasses.ApplicativeError$handleError$1.invoke(ApplicativeError.kt:28)
	at arrow.typeclasses.ApplicativeError$handleError$1.invoke(ApplicativeError.kt:9)
	at arrow.effects.IOFrame$Companion$ErrorHandler.recover(IOFrame.kt:24)
	at arrow.effects.IOFrame$Companion$ErrorHandler.recover(IOFrame.kt:21)
	at arrow.effects.IORunLoop.step(IORunLoop.kt:49)
	at arrow.effects.IO.unsafeRunTimed(IO.kt:130)
	at arrow.effects.IO.unsafeRunSync(IO.kt:127)
	at com.jforex.dzjforex.misc.PluginKt.runDirect(Plugin.kt:62)
	at com.jforex.dzjforex.misc.PluginKt$runWithProgress$1.invokeSuspend(Plugin.kt:64)
	at com.jforex.dzjforex.misc.PluginKt$runWithProgress$1.invoke(Plugin.kt)
	at arrow.effects.DeferredK$Generated$DefaultGenerated$1.invokeSuspend(DeferredK.kt:188)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:32)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$
Caused by: java.lang.NullPointerException
	at com.dukascopy.dds4.transport.client.netty.TransportClientSession.shutdown(
	at com.dukascopy.dds4.transport.client.netty.TransportClientSession.terminate(
	at com.dukascopy.dds4.transport.client.netty.TransportClient.connect(
	at com.dukascopy.api.impl.connect.DCClientImpl.connect(
	at com.dukascopy.api.impl.connect.DCClientImpl.connect(
	at com.jforex.kforexutils.client.LoginApi$login$1.invoke(LoginApi.kt:26)
	at com.jforex.kforexutils.client.LoginApi$login$1.invoke(LoginApi.kt:12)
	at arrow.typeclasses.ApplicativeError$DefaultImpls.catch(ApplicativeError.kt:37)
	at arrow.typeclasses.MonadError$DefaultImpls.catch(MonadError.kt)
	at arrow.typeclasses.MonadThrow$DefaultImpls.catch(MonadError.kt)
	at arrow.effects.typeclasses.MonadDefer$DefaultImpls.catch(MonadDefer.kt)
	at arrow.effects.instances.IOMonadDeferInstance$DefaultImpls.catch(io.kt)
	at com.jforex.dzjforex.misc.PluginDependencies$Companion$invoke$1.catch(Plugin.kt)
	at com.jforex.kforexutils.client.LoginDependencies$Companion$invoke$1.catch(IClientLoginExtension.kt)
	at arrow.typeclasses.ApplicativeError$DefaultImpls.catch(ApplicativeError.kt:43)
	at arrow.typeclasses.MonadError$DefaultImpls.catch(MonadError.kt)
	at arrow.typeclasses.MonadThrow$DefaultImpls.catch(MonadError.kt)
	at arrow.effects.typeclasses.MonadDefer$DefaultImpls.catch(MonadDefer.kt)
	at arrow.effects.instances.IOMonadDeferInstance$DefaultImpls.catch(io.kt)
	at com.jforex.dzjforex.misc.PluginDependencies$Companion$invoke$1.catch(Plugin.kt)
	at com.jforex.kforexutils.client.LoginDependencies$Companion$invoke$1.catch(IClientLoginExtension.kt)
	at com.jforex.kforexutils.client.LoginApi.login(LoginApi.kt:18)
	at com.jforex.kforexutils.client.IClientLoginExtensionKt$login$$inlined$with$lambda$1.invoke(IClientLoginExtension.kt:60)
	at com.jforex.kforexutils.client.IClientLoginExtensionKt$login$$inlined$with$lambda$1.invoke(IClientLoginExtension.kt)
	at arrow.effects.IORunLoop.step(IORunLoop.kt:56)
	... 11 more

Zorro Log
2021-05-13 19:38:32.745 INFO  com.dukascopy.api.impl.connect.AuthorizationClient - environment(jnlp.client.mode)=DEMO, platformInstanceId=null
2021-05-13 19:38:32.761 INFO  com.dukascopy.api.impl.connect.AuthorizationClient - Auth step 1 request [305D6F8B685EFCAD1E1B0D5E1CA05188EAD17A88]
2021-05-13 19:38:32.761 DEBUG com.dukascopy.api.impl.connect.AuthorizationClient - >> []
2021-05-13 19:38:33.307 DEBUG com.dukascopy.api.impl.connect.AuthorizationClient - << [{"B":"3e18707d27405167b04ff384cb7838e8a14d65d60e09a79da696e6506068a59677c3ddb95df6c7d8ede37c04881eccbb4f1d24e98448ef118ae2d54f45e4b1defd6fa80f7b3cde259ddd6115cbf677bae66efc065b49f21ccc04b357867e936c02ed400f17dc941565ab0d7b7ed98e1337edcfc8131b4c25d5e3525228a8871d6dd74f47c6e3e3012805f43829c6a0d7c85d13e982ef125bcbcb45283e29af885ca37cbaad387139ed1bc7ae23d8a3e41d632b478d5f0edc7cdc4e3bec36010adf8e09d3ca2b5b7cfd11cd187faf5c82d2f3db4fda98d1efb0ef3941c00feae0d7cce5b319c23b3f8fba077b95cedacc96880d4d6c2df832103d40b9963e191f","S":"7c734845a769d8ed2bee5fdb2c70bbcb","G":"2","H":"SHA-256","K":"5b9e8ef059c6b32ea59fc1d322d37f04aa30bae5aa9003b8321e21ddb04e300","N":"ac6bdb41324a9a9bf166de5e1389582faf72b6651987ee07fc3192943db56050a37329cbb4a099ed8193e0757767a13dd52312ab4b03310dcd7f48a9da04fd50e8083969edb767b0cf6095179a163ab3661a05fbd5faaae82918a9962f0b93b855f97993ec975eeaa80d740adbf4ff747359d041d5c33ea71d281e446b14773bca97b43a23fb801676bd207a436c6481f1d2b9078717461a5b9d32e688f87748544523b524b0d57d5ea77a2775d2ecfa032cfbdbf52fb3786160279004e57ae6af874e7303ce53299ccc041c7bc308d82a5698f3a8d0c38271ae35f8e9dbfbb694b5c803d89f7ae435de236d525f54759b65e372fcd68ef20fa7111f9e4aff73","srp_versio":"1"}]
2021-05-13 19:38:33.307 INFO  com.dukascopy.api.impl.connect.AuthorizationClient - Auth step 1 response [ServerResponseObject [passwordServerResponse=Step1ServerResponse [serverPublicValueB=3e18707d27405167b04ff384cb7838e8a14d65d60e09a79da696e6506068a59677c3ddb95df6c7d8ede37c04881eccbb4f1d24e98448ef118ae2d54f45e4b1defd6fa80f7b3cde259ddd6115cbf677bae66efc065b49f21ccc04b357867e936c02ed400f17dc941565ab0d7b7ed98e1337edcfc8131b4c25d5e3525228a8871d6dd74f47c6e3e3012805f43829c6a0d7c85d13e982ef125bcbcb45283e29af885ca37cbaad387139ed1bc7ae23d8a3e41d632b478d5f0edc7cdc4e3bec36010adf8e09d3ca2b5b7cfd11cd187faf5c82d2f3db4fda98d1efb0ef3941c00feae0d7cce5b319c23b3f8fba077b95cedacc96880d4d6c2df832103d40b9963e191f, saltS=7c734845a769d8ed2bee5fdb2c70bbcb, safePrimeN=ac6bdb41324a9a9bf166de5e1389582faf72b6651987ee07fc3192943db56050a37329cbb4a099ed8193e0757767a13dd52312ab4b03310dcd7f48a9da04fd50e8083969edb767b0cf6095179a163ab3661a05fbd5faaae82918a9962f0b93b855f97993ec975eeaa80d740adbf4ff747359d041d5c33ea71d281e446b14773bca97b43a23fb801676bd207a436c6481f1d2b9078717461a5b9d32e688f87748544523b524b0d57d5ea77a2775d2ecfa032cfbdbf52fb3786160279004e57ae6af874e7303ce53299ccc041c7bc308d82a5698f3a8d0c38271ae35f8e9dbfbb694b5c803d89f7ae435de236d525f54759b65e372fcd68ef20fa7111f9e4aff73, correspondingGeneratorG=2, hashAlgorithmH=SHA-256, srpProtocolVersion=1], ]]
2021-05-13 19:38:33.603 INFO  com.dukascopy.api.impl.connect.AuthorizationClient - Auth step 2 request A [18254504255644920875520181163650174922168904100966147467146394602523292305817026687898155918053425828272313748521987716411481669451703035224219827183063577283832165045362636074465067467846828129806828871946022493545984107749609432578862332219807840549753293949197359829920197575130780961074065942665867163925606394850832642885012555689072362104662198784225536679576912096914898786490339217419231340410292799859534536398776217394634471701104056712539524427119415939549535227722600561201425900735886006003333853725990484080159023000733272627554911761971839716095802313534349729178584346407155433144115223756506980844206], M1 [1648965817026315526287393715792731159517232585405149800640219651929578218690]
2021-05-13 19:38:33.619 DEBUG com.dukascopy.api.impl.connect.AuthorizationClient - >> []
2021-05-13 19:38:33.821 DEBUG com.dukascopy.api.impl.connect.AuthorizationClient - << [{"M2":"bfb7278445db702f3879385447f04995edf90dedc9a0abc8bfe98810ef1743b6","srp_versio":"1"}]
2021-05-13 19:38:33.821 INFO  com.dukascopy.api.impl.connect.AuthorizationClient - Auth step 2 response [ServerResponseObject [passwordServerResponse=Step2ServerResponse [serverEvidenceMessageM2=bfb7278445db702f3879385447f04995edf90dedc9a0abc8bfe98810ef1743b6, srpProtocolVersion=1], ]]
2021-05-13 19:38:33.821 INFO  com.dukascopy.api.impl.connect.AuthorizationClient - Auth step 3 request
2021-05-13 19:38:33.821 DEBUG com.dukascopy.api.impl.connect.AuthorizationClient - >> []
2021-05-13 19:38:34.180 DEBUG com.dukascopy.api.impl.connect.AuthorizationClient - << [{"occasus":"rO0ABXNyABRqYXZhLnV0aWwuUHJvcGVydGllczkS0HpwNj6YAgABTAAIZGVmYXVsdHN0ABZMamF2\r\nYS91dGlsL1Byb3BlcnRpZX...","authApiURLs":["","","","","","",""],"srp_versio":"1"}]
2021-05-13 19:38:34.211 INFO  com.dukascopy.api.impl.connect.AuthorizationClient - Auth step 3 response [ServerResponseObject [passwordServerResponse=Step3ServerResponse [serverResponse={"occasus":"rO0ABXNyABRqYXZhLnV0aWwuUHJvcGVydGllczkS0HpwNj6YAgABTAAIZGVmYXVsdHN0ABZMamF2\r\nYS91dGlsL1Byb3BlcnRpZX...","authApiURLs":["","","","","","",""],"srp_versio":"1"}], responseHeaderFields={Transfer-Encoding=[chunked], null=[HTTP/1.1 200 OK], idle-session-ttl=[900000], x-envoy-upstream-service-time=[186], expires=[Thu, 01 Jan 1970 00:00:00 GMT], CF-RAY=[64eda94d6b550225-ZRH], Server=[cloudflare], client-ip=[], Connection=[keep-alive], pragma=[no-cache], Date=[Thu, 13 May 2021 17:38:35 GMT], last-modified=[Thu, 13 May 2021 17:38:35 GMT], CF-Cache-Status=[DYNAMIC], access-control-allow-credentials=[true], client-country=[CH], cache-control=[no-cache, must-revalidate, no-store, max-age=0], Expect-CT=[max-age=604800, report-uri=""], cf-request-id=[0a086824630000022554014000000001], Content-Type=[text/plain;charset=UTF-8]}]]
2021-05-13 19:38:34.352 INFO  com.dukascopy.api.impl.connect.AuthorizationClient - Selecting the best server...
2021-05-13 19:38:34.367 INFO  com.dukascopy.api.impl.connect.AuthorizationClient - The ping start time=2021-05-13 19:38:34:367
2021-05-13 19:38:34.633 INFO  com.dukascopy.api.impl.connect.AuthorizationClient - The ping end time=2021-05-13 19:38:34:633, the ping processing time=[266]ms
2021-05-13 19:38:34.633 DEBUG com.dukascopy.api.impl.connect.AuthorizationClient - Best api url [] with time [16]
2021-05-13 19:38:34.633 DEBUG com.dukascopy.api.impl.connect.DCClientImpl -
2021-05-13 19:38:34.633 DEBUG com.dukascopy.api.impl.connect.DCClientImpl - UserAgent: {"clientType":"DDS3_JFOREXSDK","javaVersion":"1.8.0_261","jvmVersion":"25.261-b12","ip":"null","clientVersion":"318.4.68","osName":"Windows 7","userName":"null"}
2021-05-13 19:38:35.366 INFO  com.dukascopy.dds2.greed.util.FilePathManager - WL info is unavailable. Use default App folder for Platform data:  C:\Users\Gery\AppData\Local\JForex

The plugin developer could certainly say something about it.
But it seems to be somewhere in nirvana

I hope someone can give me tips ...
Many Thanks
4 220 Read More
Starting with Zorro
05/14/21 17:41
I'm so sorry, it was a mistake from my side. I should take a break sometimes. The two Id's are different, one is 20403 and the second is 22403. Somehow I saw them as same numbers and now I checked the code and run the test again and see that they are different (they are different on the pictures too).
I'm sorry for your loss of time because of the question frown.
2 56 Read More
Zorro and the Brokers
05/14/21 15:16
If the API provides it, the documentation does not say how.

If I had to guess, it's probably secretly output via the /v3/accounts/{accountID}/instruments endpoint, probably supplying the InstrumentFianancing primitive for each instrument.
5 114 Read More
User Resources
05/14/21 01:24
Hi Folks !

While trying to create a good rock in MED, with a seamless texturing, I found a way to
at least create a nearly perfect skinning.

1. First create a simple box (Yes, not a sphere !)
2. Subdivide the box once.
3. Move the outstanding vertices into the sides of the box so you get a flat sided box
again, but now with more polygons than before.
4. Load a rock bmp for a skin.
5. Perform a 6 sided skin mapping. Be sure that you have each side of the box
selected when taking a shot of it while keeping the rest unselected. This is importand
to avoid unwanted long poygons from the box, which can sometimes be taken
6.Go to the skin editor. You should now have a skin mapping where each side of the
box's map lies over the other.
7. The rock's skin should be made seamles with Corvitextu's (Texturecon) feature to
make a texture (here 512x512 pixels) seamless with the blending option. Each border
of the texture will be copied to the opposite with alpha transparence and mirroring. If
the mirror FX ist too strong visible on the rock, reload the rock's texture again into
Corvitextu and perform some Fuzzer action to make the mirroring less strong (Dont
use Auto fuzzer here !)
8. Move single vertices of the rock to make it look more "rocky"/rounded, unlike a box.
Then perform SUBDIVIDE 2 times again. The rock is now pretty round and has a good
skinning. If you still see some borders from the skin on the rock's surface you may
need to detach some polygons and find a better place for them on the skin. Or use
Corvitextu to harmonize the texture as you need it.
9. Corvitextu can be downloaded from this forum.

You con download the Rock.mdl from here:

Download example rock from here

[Linked Image]

[Linked Image]

[Linked Image]

Best Regards !

0 37 Read More
Starting with Zorro
05/13/21 14:35
By default, it uses the current run() timestamp. Or you can override it by setting the Now variable to a particular time where you want to load contracts. (Now)
18 211 Read More
Jobs Wanted
05/13/21 12:57
Looking for new games to work on!
48 9,659 Read More
Jobs Wanted
05/13/21 11:27
10 810 Read More
Zorro Scripts
05/13/21 11:04
after futher digging i found this sentence : "In [Train] mode the parameters are based on trades with 1 lot, including phantom trades." in the documentation, so if i understund well the results of WinTotal and WinTotal are arround '0.01' be cause all the trades are oppened with lot=1 (my lotAmount and PIPcost are extremely tight to allow a precise calculation of trade size), i think it's not an accurate way to train a strategy ... if the train mode dont repesct the money management then it's useless, i really appreciate if any one can correct my undestrunding or point me to a direction to allow the traine mode to use the Risk parameter
1 38 Read More
Bug Hunt
05/12/21 18:36
Sorry, my fault. All is OK

with version

Zorro S 2.37.5b
(c) oP group Germany 2021

Does'n work the command line.

zorro -train alfaGEN -a eur/usd -c Real54AU
zorro -run alfaGEN -a eur/usd -c Real54AU

1. Don't start train/test.
2. Don't set the symbol ( asset )
Problem with symbol on command line is return. frown
0 10 Read More
Starting with Zorro
05/12/21 13:55
By "single trade" I mean all of the trades what I open will be shown separately in performance report. But I want to open ten position with different take profit levels when I get a signal and after all of this ten position are closed I want to see them as they were just one trade.
For example: I get a signal so I open ten position, first with take profit on the 200 fibo grid level, second on the 300 fibo grid level and so on. When all the trades are closed for this signal I want to see the profit of this ten position merged (what is possible to do) and I want to handle this ten position as one position so I can get correct information (how many trades I opened, win ratio ...) out of performance report.
Let me know if it's still not clear what I mean and I try to explain it somehow else. Thank you!
4 63 Read More
Starting with Zorro
05/12/21 13:29
I'll try to test with tick data, it will be hard because even the generation of t1 file is hard and Zorro can't backtest one year of MNQ tick data because it's so big. But I will try to separate the one year data to smaller pieces and hopefully it will work.
Thanks to both of you for the informations!
6 142 Read More
Starting with Zorro
05/12/21 12:04
Originally Posted by jcl
Check out the Spectrum.c script.

Thanks a lot, I didn't even thought about looking at the scripts.
4 42 Read More
Starting with Zorro
05/12/21 10:12
You also have the option to use a fixed bar period (5) and optimize to an array of fixed time frames instead (4,5,6,8...)
3 83 Read More
Zorro and the Brokers
05/11/21 17:02
Hi jcl!
Did you consider adding API support in the future for the EXANTE broker? (
It provides access to the large number of leading worlds trading venues and also supports FX and crypto.
Some time ago, FXCM and OANDA prohibited residents of the Russian Federation from trading. Unfortunately I am a resident of this lucky country.
0 20 Read More
Starting with Zorro
05/11/21 15:47
Thank you very much Johann! Especially for the super fast reply!


2 38 Read More
Starting with Zorro
05/11/21 12:14
I normally expect that the test runs until the last candle when no end date is given. Are you sure that your history has more candles?
1 39 Read More
Starting with Zorro
05/11/21 10:40
What are you using this for and could you elaborate a bit more?

As I read it from the manual it says:

"Splits the simulation in a training period (given in percent) and a following test period. F.i. when set at 60, the training period has a length of 60% and the test period has a length of 40%. This works with or without WFO and ensures that the test always uses out-of-sample data."

So, if you are asking if

DataSplit = 90;

will split your data into 90% training data and 10% test data, then yes.

Best regards

2 78 Read More
Starting with Zorro
05/10/21 15:07
Yeah, Zorro is different.
6 148 Read More
Starting with Zorro
05/10/21 10:18
Dots have nothing to do with watch, but are printed as a rough progress indicator by slow processes, such as loading historical data.
1 57 Read More
Hilbert's Hotel
05/09/21 17:49
Hello everyone,

For some reason I thought of Game Studio while sitting at work today. The world has been through the wringer over the last year and I was curios how everyone involved with GS have been.
I browsed some of the threads here and found one talking about if GS is dead or not and the lack of new engine releases. GS is old but still alive and well, at least from what I see. People
are still making games and having fun with it, even if you have other options.

I started messing with GS in 2006 when I was 14. I had such a blast with it, but never mastered the beast. It may be a small engine, but it has major depth to it. I wanted to go to school for
game design because of GS. Well, now I work in emergency services, have a family and no time for what most of you here still get to do.

I'm happy people are still here doing what they love. Maybe I'll start to mess with it again in my limited free time. Just wanted to say hi and wish everyone well!
0 43 Read More
Starting with Gamestudio
05/09/21 11:07
There is one more option. You can attach an image file to your post (eg. screenshot).
The method is explained in the Forum Help at the top of the forum web page.
4 125 Read More
Starting with Zorro
05/08/21 19:11
It works! Thank you very much this code! smile
7 223 Read More
Page 1 of 4 1 2 3 4

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

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

Powered by UBB.threads™ PHP Forum Software 7.7.1