Hello,
I have a question regarding my strategy. I defined a trading strategy and in [10] for each Asset listed in the Nasdaq, applied that strategy for the close values for a given time period.
The signals of each asset are saved in a pandas dataframe with datetime index, which are the saved in a dictionary.
Now it is not clear to me, from the examples given on the page, how to pass this into the qnt backtest.
I will be thankful, if anyone can help me out on this. Thx
Best posts made by magenta.kabuto
-
Backtesting
-
Missed Call to write output
Re: Error Q20 output missing when submitting
Hi I encountered a similar issue and found this post. In my case I get Missed call to write_output when submitting the strategy, however not when I backtest the strategy locally (I used fewer assets locally due to time constraint, while backtesting locally). My strategy number is: # 16526387. would be kind if you can have a look
-
Different Sharpe Ratios for Multipass-Backtest and Quantiacs Mulipass Backtest
@support Hello, first of all. I As you can see in the picture I have a good sharpe Ratio but when submitted ,the strategy got rejected because the sharpe ratio is too low. If I assume there is no bug in your multipass backtest, the issue should be the statelessness of your backtester. I tried to correct the code and to my understanding it should be fine but I dont know, and if I only rely on getting the news after submission, I will miss the deadline. Could you therefore pls have a look at the notebook too and if it does not take too much time correct anything if possible. Thank you. Regards
-
RE: Cant load data locally
@magenta-kabuto thx a lot bro for your support and pointing out the mistakes
I will try the revised code now.
Good luck for the competition -
RE: Acess previous weights
Hi @vyacheslav_b,
thx for the solution.
Are you aware of a way to access previous positions taken, when using single pass, as the qnbt backtester leads to a runtime error?
Regards
Latest posts made by magenta.kabuto
-
RE: Runtime Error?
Hi @support,
no problem.
I didnt check until now, the accepted strategies do not use machine learning
I will try out some machine learning strategies in the upcoming days and let you know.
Thanks again and Regards -
RE: Acess previous weights
Hi @vyacheslav_b,
I just quickly checked the template and it seems to be very helpful.
Thx a lot for the update!
Regards -
RE: Acess previous weights
hello again to all,
I hope everyone is fine.
I again came across a question, which should have occurred to me earlier, namely when we use a stateful machine learning strategy for submission, how can we pass on the states without using the ml_backtester, assuming the notebook is rerun at each point in time.
Thank you.
Regards -
RE: Acess previous weights
@vyacheslav_b the problem with not using states as I understand is the following: lets say the model estimated in t (single pass) gives an estimate for NAS:AAPL = 0.04 (weight allocation). So thats the position assigned to the stock in t for t+1.
In t+1 the model is reestimated but with the information of NAS:AAPL in t and assigns weights 0.03 for t+1 and 0.035 for t+2 in t+1. When I do not use states, and apply get_lower_slippage function , I will have weight allocation 0.035 for t+2 in t+1 whereas with the states I will have 0.04 for t+2 in t+1 and I will not have impact of the transaction costs.
Thank you.
Regards -
RE: Acess previous weights
Hi @vyacheslav_b ,
thank you very much for the solution.
I did not know that the ML_backtester is capable of handling two outputs (weights and state) but I will from now on use it.
Regards -
RE: Acess previous weights
Hi @support,
just wanted to thank for the suggestion of the stateful backtester, as this solves the issue.
I incorporated the DL model into the stateful backtester, which seems to work (backtesting right-now).
And the get_lower slippage function in the ML- templates is subject to forward looking, overfitting the holding period.
Regards -
RE: Acess previous weights
@support thx for your reply.
I also saw some discussion related to a similar topic in the general discussion.
I will try to explain what I mean, if it doesnt make sense just ignore it and if I get something wrong, pls let me know.
The point i am making is lets imagine the evaluation period starts on 01.06.2024 and my Deep Learning model meets the criteria for evaluation.
Now since 01.06.2024 is the first day, the model will predict for this day and assign the weights for assets traded on 01.06.2024, one day before, where it is trained.
Now to my understanding, the model is retrained everyday for the single-pass submission of the DL-Model, which therefore will have different weights (model weights, not allocation weights) for the next day training (01.06.2024) and will predict one step ahead, the allocations for 02.06.2024, and so on.
So my question is, that under this framework I do not have access to the previous weights, right ? (For 01.06.2024 model training, I do not know what allocation weights I assigned on 31.05.2024)(I dont know whether with the stateful model I can have access to lets say up to 60 days of previous allocations)
The weights assigned however, are saved somewhere with quantiacs ,as these allocation were made in the past but are not accessible to me ,lets say on 03.06.2024.
SO if I want to reduce slippage, so that I on 03.06.2024 want to change allocations only if the predictions are larger since the beginning of the evaluation, how can I do that.
I hope it makes sense what I am trying to say.
Regards -
RE: Acess previous weights
Hey @support,
can you maybe help?
Is there a way to download or access weights like its done for data? (which is updated for each time step)
Thank you.
Regards -
RE: Acess previous weights
Hi @vyacheslav_b , thx for your reply.
Sry I expressed myself badly. What I mean is that as I understand if I predict each time step, my for example machine learning model, will take a position in t (lets say 0.5). Now in t+1 when the notebook is run again for prediction that information is lost ,isnt it? So if I want to apply the lower slippage, how can I do that?
An example is the screenshot I posted above, which makes a one step prediction, by assigning a weight for selected assets on the latest index at time step t. No tomorrow in t+1 it will assign a new weight for the selcted assets without knowledge what was assigned in t with the knowledge in t, as in t+1 I could take the value of the prediction for (which is part of the batch) but will be different from the weights I assigned in t because of forward looking.
I hope I didnt overcomplicate in my expression.
Regards -
RE: Acess previous weights
or if not. Is there code available of the competition backtest, so I may figure out a way.
Thx