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

      Q16 where to put is_liquid in ML template
      Strategy help • • Sheikh

      6
      0
      Votes
      6
      Posts
      1681
      Views

      S

      Hi @support,
      Thanks for getting back. No worries, I was able to get 6 strategies into the Q16 competition so far.
      qnt3.PNG

    • nosaai

      Install Toolbox on Python 3.9
      Support • • nosaai

      6
      0
      Votes
      6
      Posts
      1039
      Views

      support

      @magenta-kabuto We support only Python 3.7 right now. But it can coexist with Python 3.9:

      https://quantiacs.com/documentation/en/user_guide/local_development.html

      Basically you can use Python 3.7 inside a conda environment.

    • S

      Balance, order size, stop loss, open and close position price
      Support • • ScalpingAF

      6
      0
      Votes
      6
      Posts
      766
      Views

      support

      @scalpingaf Correct, all trades (buy or sell) are taken at the open of the next day you take the decision.

    • illustrious.felice

      Translating code from Quantiacs Legacy
      Support • • illustrious.felice

      6
      0
      Votes
      6
      Posts
      858
      Views

      illustrious.felice

      @vyacheslav_b Thank you so much

    • E

      Q17 Neural Networks Algo Template; is there an error in train_model()?
      Strategy help • • EDDIEE

      6
      1
      Votes
      6
      Posts
      1813
      Views

      V

      Hello colleagues.

      The solution in case of predicting one financial instrument can be the following (train_period changed)

      def load_data(period): return qndata.cryptodaily_load_data(tail=period, assets=['BTC']) def train_model(data): """ train the LSTM network """ asset_name = 'BTC' features_all = get_features(data) target_all = get_target_classes(data) model = get_model() # 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') # align features and targets: target_for_learn_df, feature_for_learn_df = xr.align(target_cur, features_cur, join='inner') criterion = nn.MSELoss() # define loss function optimiser = optim.LBFGS(model.parameters(), lr=0.08) # we use an LBFGS solver as optimiser epochs = 1 # how many epochs for i in range(epochs): def closure(): # reevaluates the model and returns the loss (forward pass) optimiser.zero_grad() # input tensor in_ = torch.zeros(1, len(feature_for_learn_df.values)) in_[0, :] = torch.tensor(np.array(feature_for_learn_df.values)) # output out = model(in_) # target tensor target = torch.zeros(1, len(target_for_learn_df.values)) target[0, :] = torch.tensor(np.array(target_for_learn_df.values)) # evaluate loss loss = criterion(out, target) loss.backward() return loss optimiser.step(closure) # updates weights return model weights = qnbt.backtest_ml( load_data=load_data, train=train_model, predict=predict, train_period=1 * 365, # the data length for training in calendar days retrain_interval=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 build_plots=True # do you need the chart? )
    • illustrious.felice

      Difference between relative_return & mean_return
      Support • • illustrious.felice

      6
      1
      Votes
      6
      Posts
      1025
      Views

      illustrious.felice

      @vyacheslav_b Thank you so much

    • S

      Stocks data
      Support • • Sun-73

      6
      0
      Votes
      6
      Posts
      1978
      Views

      S

      @support Yes, I can load now the stocks data. Thank you once again!

    • W

      sliding 3d array
      Strategy help • • wool.dewgong

      6
      0
      Votes
      6
      Posts
      1353
      Views

      support

      @wool-dewgong Hello! We added one template which should address your issue and allow you to perform a rolling fast ML training with retraining. It is available in your user space in the Examples section and you can read it here also in the public docs:

      https://quantiacs.com/documentation/en/examples/machine_learning_with_a_voting_classifier.html

    • X

      Combining classifiers
      Strategy help • • xiaolan

      6
      0
      Votes
      6
      Posts
      1029
      Views

      support

      @xiaolan That is correct, but the logic can be easily re-used. The only novel element will be the introduction of the liquidity filter at intermediate stages/at the final stage for the selection of the weights.

    • A

      toolbox not working in colab
      Support • • alexeigor

      6
      0
      Votes
      6
      Posts
      2752
      Views

      V

      @alexeigor Hello. Version 0.0.501 of the qnt library works correctly in Colab. Python version support has been extended from 3.10 to 3.13. The basic functionality of the library should work without issues.

      To install, use the following command:

      !pip install git+https://github.com/quantiacs/toolbox.git 2>/dev/null

      Note: Installing ta-lib in Colab is not working for me at the moment.

    • I

      Getting started with local dev.
      Support • • iron.tentacruel

      6
      0
      Votes
      6
      Posts
      890
      Views

      support

      @iron-tentacruel Sorry for the delay in the answer. We recommend conda as we can better track dependencies. With conda you can create locally an environment which mirrors the one on the Quantiacs server and you can work locally as you would on the server. If you need a specific version of a package, please let us know.

    • N

      Q21 contest results
      News and Feature Releases • • neural.exeggutor

      6
      0
      Votes
      6
      Posts
      11284
      Views

      support

      @theflyingdutchman Hi, sorry for the delay, yes, all fine, more details by e-mail

    • T

      Python
      General Discussion • • TitusBullo

      6
      0
      Votes
      6
      Posts
      1129
      Views

      T

      @antinomy Ty

    • S

      How to install Python Talib
      Support • • spancham

      5
      0
      Votes
      5
      Posts
      2391
      Views

      support

      @sheikh It is fine, please just submit, check the result and let us know if you see any issue. It should work fine.

    • cespadilla

      Leaderboard not updating?
      Support • competition leaderboard q16 • • cespadilla

      5
      1
      Votes
      5
      Posts
      2158
      Views

      cespadilla

      @support Hi again guys, I think the leaderboard is not updating again 😳

    • B

      Submission failed: what's wrong??
      Support • • buyers_are_back

      5
      0
      Votes
      5
      Posts
      745
      Views

      support

      @buyers_are_back We reprocessed the submission, it is formally correct and passes all the filters. Sorry for the issue, evidently on our side.

    • G

      Colab new error 'EntryPoints' object has no attribute 'get'
      Support • • gjhernandezp

      5
      0
      Votes
      5
      Posts
      1245
      Views

      support

      @gjhernandezp Thank you for sharing your solution!

    • illustrious.felice

      Strategy trades illiquid instruments
      Support • • illustrious.felice

      5
      0
      Votes
      5
      Posts
      3079
      Views

      V

      @illustrious-felice Hello. The reason you're still seeing a large number of tickers (e.g., around 300) even after applying the filter is that the "best" instrument by Sharpe ratio changes over time. The rank_assets_by function returns a time-dependent mask, selecting the top N assets at each time step. So the total number of unique assets that were selected at any point in time may be much larger than top_assets.

      This is expected behavior.

      To illustrate this more clearly, let's consider a minimal working example that selects only 1 top asset at each point in time and shows all the intermediate steps:

      import qnt.data as qndata import qnt.ta as qnta import qnt.stats as qnstats import qnt.output as qnout import qnt.filter as qnfilter import xarray as xr import pandas as pd top_assets = 1 data = qndata.stocks.load_spx_data(min_date="2005-06-01") weights = data.sel(field="is_liquid") stats_per_asset = qnstats.calc_stat(data, weights, per_asset=True) sharpe_ratio = stats_per_asset.sel(field="sharpe_ratio") asset_filter = qnfilter.rank_assets_by(data, sharpe_ratio, top_assets, ascending=False) weights = weights * asset_filter stats = qnstats.calc_stat(data, weights.sel(time=slice("2005-06-01", None))) display(asset_filter.to_pandas().tail()) display(stats.to_pandas().tail()) display(sharpe_ratio.to_pandas().tail()) display(weights.to_pandas().tail())

      If you want to see which asset was the best on specific dates, you can do something like this:

      dates = ["2015-01-15", "2020-01-15", "2025-01-15"] records = [] for date_str in dates: best_mask = asset_filter.sel(time=date_str) assets = best_mask.where(best_mask > 0, drop=True).asset.values srs = sharpe_ratio.sel(time=date_str, asset=assets).values for a, s in zip(assets, srs): records.append({"time": date_str, "asset": a.item(), "sharpe_ratio": float(s)}) df = pd.DataFrame(records).set_index("time") display(df) asset sharpe_ratio time 2025-05-22 NYS:HRL 1.084683 2025-05-22 NAS:KDP 1.093528 2025-05-22 NAS:AAPL 0.968039

      Or simply for a single date:

      date = "2020-05-22" best_mask = asset_filter.sel(time=date) best_assets = best_mask.where(best_mask > 0, drop=True).asset best_sr = sharpe_ratio.sel(time=date, asset=best_assets) print(best_sr.to_pandas())

      This shows clearly that only one asset is selected at each time step, but over the full time range, many different assets can appear in the top list depending on how their Sharpe ratios change.

    • E

      Strategy Optimization in local development environment is not working
      Support • • EDDIEE

      5
      0
      Votes
      5
      Posts
      1005
      Views

      V

      @eddiee

      This code works for me. I can give you ideas on what to try.

      Update the qnt library or reinstall.

      If it doesn't help, clone the repository

      https://github.com/quantiacs/toolbox

      git clone https://github.com/quantiacs/toolbox.git

      run
      qnt/examples/005-01-optimizer.py
      and other examples.

      You may need to specify API_KEY

      You might be able to see exactly where the error occurs in the code.
      And you can modify the library code by adding logging for optimize_strategy

    • A

      I've just lost a notebook that contains my entire algorithm
      Support • • aybber

      5
      0
      Votes
      5
      Posts
      1013
      Views

      A

      @support no worries, I've been able to recover the strategy thank you!

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