[B135] java.lang.Exception: MoneyManagement method not set -- during backtest on AlgoWizard

[B135] java.lang.Exception: MoneyManagement method not set -- during backtest on AlgoWizard


What I did:
1: Save 2 strategies in SQX format with "Enable Magic Number handling".
2: Merge 2 strategies with the "Strategies merged to one" option.
3: Open the merged strategies in AlgoWizard.
4: Run quick backtest on AlgoWizard.
5: "MemoryManagement method not set" error appears on AlgoWizard.




System:
StrategyQuant X Pro build 135




OS:
Ubuntu 21.10




Log:
12:37:22.523 [qtp1637651402-813] DEBUG c.s.p.S.i.A.AlgoWizardServlet - AW Request: backtest
12:37:22.523 [qtp1637651402-813] INFO  c.s.p.S.i.A.AlgoWizardServlet - Incoming backtest request
12:37:22.528 [qtp1637651402-813] ERROR c.s.p.S.i.A.AlgoWizardServlet - Backtest failed
java.lang.Exception: MoneyManagement method not set.
at com.strategyquant.tradinglib.project.ProjectConfigHelper.getMoneyManagement(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.plugin.Servlet.impl.AlgoWizard.AlgoWizardServlet.onBacktest(Unknown Source) ~[na:na]
at com.strategyquant.plugin.Servlet.impl.AlgoWizard.AlgoWizardServlet.execute(Unknown Source) ~[na:na]
at com.strategyquant.webguilib.servlet.HttpJSONServlet.doGet(Unknown Source) ~[SQWebGUILib.jar:na]
at com.strategyquant.webguilib.servlet.AbstractServlet.doPost(Unknown Source) ~[SQWebGUILib.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) ~[jetty-all-uber.jar:9.4.19.v20190610]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:876) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:542) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1711) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1347) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1678) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1249) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:753) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:61) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.Server.handle(Server.java:505) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:781) ~[jetty-all-uber.jar:9.4.19.v20190610]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:917) ~[jetty-all-uber.jar:9.4.19.v20190610]
at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]
12:37:46.597 [qtp1637651402-464] DEBUG c.s.w.servlet.HttpJSONServlet - Incoming command: /main /alive

Attachments
Strategy 787166.sqx
(1.24 MiB)
PortfolioTradingInParallel.sqx
(2.59 MiB)
log_2022_02_26.log
(674.53 KiB)
GBPUSD H1 v31 CustomProject.cfx
(55.25 KiB)
Strategy 1073192.sqx
(1.36 MiB)
  • Votes +1
  • Project StrategyQuant X
  • Type Bug
  • Status Refused
  • Priority Normal

History

HS
#1

NAPA

26.02.2022 05:06

Task created

E
#2

Emmanuel

10.03.2022 04:07
Voted for this task.
TB
#3

Tomas Brynda

05.04.2022 17:22

Status changed from New to Refused

Hi, 

the merged portfolio created by option "Strategies merged to one" is not backtestable, the file doesn't even contain backtest settings.

There are some modifications being made in portfolio strategy's XML config that are not guaranteed to provide exact backtest results in SQ's backtest engine.

It's purpose is just to enable trading multiple strategies with the same symbol and timeframe using single Expert advisor.


Best regards,

Tomas



HS
#4

NAPA

05.04.2022 17:46

I can't agree.

But if you say it is a spec, it is OK.


BUT, YOU SHOULD NOT MAKE AN EXCEPTION.

AlgoWizard SHOULD STOP MORE SAFETY.


Open the strategy, and validate the contents. If the error happens, it stops safety by logging the error log.

TB
#5

Tomas Brynda

05.04.2022 18:17
I get your point.

I think we could throw an error during loading of the strategy in aw editor to prevent it from loading as it is not intended to be edited and backtested.


Votes: +1

Drop files to upload

or

choose files

Max size: 5MB

Not allowed: exe, msi, application, reg, php, js, htaccess, htpasswd, gitignore

...
Wait please