Navigation

    Quantiacs Community

    • Register
    • Login
    • Search
    • Categories
    • News
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. Popular
    Log in to post
    • All categories
    • Support
    •      Request New Features
    • Strategy help
    • General Discussion
    • News and Feature Releases
    • All Topics
    • New Topics
    • Watched Topics
    • Unreplied Topics
    • All Time
    • Day
    • Week
    • Month
    • S

      Cryptocurrency algos issues
      Support • • Sheikh

      4
      1
      Votes
      4
      Posts
      1256
      Views

      S

      @support
      Thanks.
      You guys are the best!🏆

    • P

      Holding period, execution simulation, feedback from live Quantiacs trading?
      General Discussion • • Penrose-Moore

      4
      0
      Votes
      4
      Posts
      839
      Views

      P

      @support yes coarse heuristics work well as long as you are conservative. For shorter term models I have started using minute bars despite the computational hit, because it helps in a lot of other ways.

      I may enter this contest, I am pretty rusty on predictive modelling and I am not sure I can do a good job using just daily prices, there is not a lot of data. I used to work at a CTA and I feel like we wasted a lot of man years using only prices, hoping better models would acheive more alpha. in the end the sharpe is similar to the S&P but uncorrelated, but you have gotten there with some simpler models and enjoyed life.

      I have some other questions about the platform and the contest that I will post here.

      Best
      P.M.

    • A

      Expected Time to Run Strategy
      Support • • anshul96go

      4
      0
      Votes
      4
      Posts
      1838
      Views

      A

      @support Got it, thanks a lot!

    • cespadilla

      Question about the Q17 Machine Learning Example Algo
      Strategy help • • cespadilla

      4
      1
      Votes
      4
      Posts
      1409
      Views

      V

      @cespadilla Hello.

      The reason is in "train_model" function.

      def train_model(data): asset_name_all = data.coords['asset'].values features_all = get_features(data) target_all = get_target_classes(data) models = dict() for asset_name in asset_name_all: # drop missing values: target_cur = target_all.sel(asset=asset_name).dropna('time', 'any') features_cur = features_all.sel(asset=asset_name).dropna('time', 'any') target_for_learn_df, feature_for_learn_df = xr.align(target_cur, features_cur, join='inner') if len(features_cur.time) < 10: continue model = get_model() try: model.fit(feature_for_learn_df.values, target_for_learn_df) models[asset_name] = model except: logging.exception('model training failed') return models

      If there are less than 10 features for training the model, then the model is not created (if len(features_cur.time) < 10).

      This condition makes sense. I would not remove it.

      The second thing that can affect is the retraining interval of the model ("retrain_interval").

      weights = qnbt.backtest_ml( train=train_model, predict=predict_weights, train_period=2 *365, # the data length for training in calendar days retrain_interval=10 *365, # how often we have to retrain models (calendar days) retrain_interval_after_submit=1, # how often retrain models after submission during evaluation (calendar days) predict_each_day=False, # Is it necessary to call prediction for every day during backtesting? # Set it to true if you suspect that get_features is looking forward. competition_type='crypto_daily_long_short', # competition type lookback_period=365, # how many calendar days are needed by the predict function to generate the output start_date='2014-01-01', # backtest start date analyze = True, build_plots=True # do you need the chart? )
    • A

      Taking long time and no status update
      Support • • anshul96go

      4
      0
      Votes
      4
      Posts
      1141
      Views

      support

      @anshul96go Sorry for the late answer, we missed it somehow. Yes, all submissions sent before deadline will be processed and accepted.

    • M

      training, predicting and backtesting Neural Network
      Support • • magenta.kabuto

      4
      0
      Votes
      4
      Posts
      614
      Views

      support

      @magenta-kabuto The weights generated are simply the daily allocations to the various assets.

    • A

      Futures contests and BTC??
      Support • • anthony_m

      4
      1
      Votes
      4
      Posts
      1386
      Views

      support

      @anthony_m we patched with spot BTC data see answer: https://quantiacs.com/community/topic/6/btc-contest-start-date

    • B

      Accessing both market and index data in strategy()
      Support • • buyers_are_back

      4
      0
      Votes
      4
      Posts
      1087
      Views

      V

      @buyers_are_back Hello.
      Here is a new example of stock prediction using index data.
      I recommend using the single-pass version.
      https://quantiacs.com/documentation/en/data/indexes.html

    • R

      referral program
      General Discussion • • rezhak21

      4
      0
      Votes
      4
      Posts
      812
      Views

      R

      @support I see, need to push them to submit then....

    • B

      How to get stocks in SP500 index at a given time
      Support • • buyers_are_back

      4
      0
      Votes
      4
      Posts
      999
      Views

      S

      @buyers_are_back Hi,

      Regarding your first question, yes, that is correct. As we look more into the past, it is more difficult to get data for companies which have been index members but don't exist anymore, for example. This is also related to your second question - symbols with '~1' are in almost all cases, the same companies with the same ticker symbol, but with different ISIN (International Securities Identification Number). For instance, SanDisk company ("NAS:SNDK") was standalone public company until 2016, when Western Digital acquired SanDisk. In 2025 company spinoff, SanDisk re-emerged on the Nasdaq as an independent public company, with the same ticker as it was ('SNDK'), but with different ISIN (considered as different company).
      Those symbol pairs, should not have an intersection in membership ("is_liquid" field should not be 1.0 for both at the same time), otherwise it could be mistake by provider.

    • O

      Where can I get the OHLC data of Nasdaq100 index?
      Support • • omohyoid

      4
      0
      Votes
      4
      Posts
      609
      Views

      O

      @support Thanks for ur help

    • M

      Any updates on the next context?
      News and Feature Releases • • magenta.muskrat

      4
      0
      Votes
      4
      Posts
      2741
      Views

      M

      @support thanks!!!

    • S

      Stocks strategy
      Strategy help • • spancham

      4
      0
      Votes
      4
      Posts
      1082
      Views

      support

      @sheikh Hi, when it comes to stocks and historical simulations, the biggest issue is dealing with survivorship bias. The stock universe must include also stocks which have been delisted and we need to define trading rules which allow for trading instruments which make sense at each point in time. This week we are announing a new contest which is preparing the ground for stocks.

    • magenta.grimer

      Optimizer for simple MA crypto strategy
      Strategy help • • magenta.grimer

      4
      0
      Votes
      4
      Posts
      1070
      Views

      A

      There is a way to use the optimizer with a (stateful) mulit pass algo, but depending on the total number of changed parameters it can take a very long time. However, if it runs on a local computer with many workers this can still be useful.

      We could run the backtester with the multi pass algo to get all the weights for the test period and pass these weights to the optimizer.
      There's just one problem with this: you can't pass changed parameters to the strategy using the backtester.
      In order to solve this I created a nested function where the outer function takes the changed parameters from the optimizer. The inner function is the actual multi pass strategy and doesn't define the params but just uses the ones from the outer function. Still within the outer function we run the backtester with one set of params, get the weights it returns and return them to the optimizer.

      The time it takes to run the optimization would roughly be
      (time for 1 multi pass backtest) x (total number of parameter changes) / (number of workers that are able to run)
      So if one multi pass takes 1 minute, you want to optimize 10 parameter changes and can run 5 workers it would take about 2 minutes.

      Here's an example based on the one above with 2 parameter changes and 2 workers:

      import qnt.data as qndata import qnt.ta as qnta import qnt.optimizer as qnop import qnt.backtester as qnbt import xarray as xr def load_data(period): """Loads the BTC Futures data for the BTC Futures contest""" return qndata.cryptofutures.load_data(tail=period, dims=("time", "field", "asset")) def multi_pass_strategy(data, ma_slow_param=50, ma_fast_param=10): """The outer function gets called by the optimizer with changed params, the inner function gets passed to the backtester.""" def strategy(data, state): # The state isn't used in this example, this is just to show that it can be used while optimizing. if state is None: state = 0 state += 1 close = data.sel(field="close") ma_slow = qnta.lwma(close, ma_slow_param).isel(time=-1) ma_fast = qnta.lwma(close, ma_fast_param).isel(time=-1) weights = xr.zeros_like(close.isel(time=-1)) weights[:] = 1 if ma_fast > ma_slow else -1 return weights, state """The backtester returns all weights for the test period which will then be returned to the optimizer""" weights, state = qnbt.backtest( strategy=strategy, competition_type="cryptofutures", load_data=load_data, lookback_period=700, start_date='2014-01-01', build_plots=False, ) return weights data = qndata.cryptofutures.load_data(min_date='2014-01-01') result = qnop.optimize_strategy( data, multi_pass_strategy, qnop.full_range_args_generator( ma_slow_param=range(50, 60, 5), # min, max, step # ma_fast_param=range(5, 100, 5) # min, max, step ), workers=2 # you can set more workers on your PC ) print("---") print("Best iteration:") print(result['best_iteration']) qnop.build_plot(result)

      There might be more efficient ways to do this, so if anyone has one feel free to post it here.

    • C

      Different dataset locally and in jupiterLab
      Support • • cross_platform.zebra

      4
      0
      Votes
      4
      Posts
      573
      Views

      support

      @cross_platform-zebra Hi, there is no other limitation regarding local development. It is already configured to be exactly the same datasets for Nasdaq100 stocks, and returns the same statistics for trading system running locally or online.

    • D

      Kelly criterion
      Support • • dark.pidgeot

      4
      0
      Votes
      4
      Posts
      729
      Views

      support

      @dark-pidgeot Yes, of course. Please note that we do not implement leverage, and the sum of the absolute values of the weights has to be equal or smaller than 1. If it is larger, they will be rescaled down.

    • S

      Pairs trading with states iterations
      Strategy help • • spancham

      4
      0
      Votes
      4
      Posts
      1090
      Views

      S

      @support
      Cool, thanks very much! 👍

    • nosaai

      AttributeError: module 'qnt.data' has no attribute 'stocks_load_spx_data'
      Support • • nosaai

      4
      0
      Votes
      4
      Posts
      2490
      Views

      nosaai

      @vyacheslav_b Apologies for the late response. Thanks for the assistance, all is now well. Cheers

    • A

      Submission Logic Questions
      Support • • auxiliary.snail

      4
      0
      Votes
      4
      Posts
      1424
      Views

      support

      @auxiliary-snail Hi,

      unfortunately, this is not allowed and in accordance with the rules. Using hard-coded time periods in which trading algorithm will work differently, is not a quantitative method (just like manual asset selection, e.g. "trade only Apple or Microsoft"). We still haven't implemented a mechanism for automatic recognition of such behaviors in trading strategies, and even though a strategy could be successfully submitted, it will not be eligible for prize winning.
      What we are searching for, is well performing strategy over entire in_sample period (SR>0.7), robust to all market movements 2006-2025, so we can expect it will perform well in future, too.

    • S

      Q22 submission, strategies excluded
      Support • • Sun-73

      4
      1
      Votes
      4
      Posts
      1371
      Views

      S

      Hi @support, everything is all right now. Thank you!

    • Documentation
    • About
    • Career
    • My account
    • Privacy policy
    • Terms and Conditions
    • Cookies policy
    Home
    Copyright © 2014 - 2026 Quantiacs LLC.
    Powered by NodeBB | Contributors