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
    • O

      No error messages show why the strategies failed
      Support • • omohyoid

      5
      0
      Votes
      5
      Posts
      723
      Views

      support

      @omohyoid Dear omohyoid,

      Yes, that's right. After submitting your strategy shouldn't override environment variables.

      Regards

    • X

      Pandas and xarray
      Strategy help • • xiaolan

      5
      1
      Votes
      5
      Posts
      769
      Views

      support

      @xiaolan Ok, but please note that you can work all the time with xarray, the documentation is very good:

      http://xarray.pydata.org/en/stable/

    • J

      Alpha Default Value of EMA function
      Strategy help • • juzambranol

      5
      0
      Votes
      5
      Posts
      1243
      Views

      support

      @gjhernandezp yes, correct, 2/(n+1), sorry for the typo, thanks for correcting

    • L

      Fundamental data loading does not work
      Support • • lookman

      5
      0
      Votes
      5
      Posts
      1629
      Views

      V

      @lookman Hello. Try cloning your strategy and running it again. It should work correctly with the new version of the qnt library.

      import qnt.data as qndata import qnt.data.secgov_fundamental as fundamental market_data = qndata.stocks.load_spx_data(min_date="2005-01-01") indicators_data = fundamental.load_indicators_for(market_data, indicator_names=['roe']) display(indicators_data.sel(field="roe").to_pandas().tail(2)) display(indicators_data.sel(asset='NAS:AAPL').to_pandas().tail(2)) display(indicators_data.sel(asset=['NAS:AAPL']).sel(field="roe").to_pandas().tail(2))

      https://quantiacs.com/documentation/en/data/fundamental.html

    • C

      Multi-pass Backtesting
      Strategy help • • cyan.gloom

      5
      0
      Votes
      5
      Posts
      1878
      Views

      V

      @eddiee

      Hello.

      This code looks to the future.
      It is needed to train the model.
      Pay attention to the name of the variable.

    • magenta.grimer

      Some clarifications
      General Discussion • • magenta.grimer

      5
      0
      Votes
      5
      Posts
      1417
      Views

      support

      @magenta-grimer Hi, we cannot provide the list of strategies we are still trading and the payouts. However, all the statistics are public, the new ones (since Q15) and the old ones at:
      https://legacy.quantiacs.com/Systems.aspx

    • A

      Has my strategy been rejected from Q23?
      Support • • antinomy

      5
      0
      Votes
      5
      Posts
      505
      Views

      A

      And what if a strategy uses the following rules to select assets to trade:

      the primary exchange is NAS the sector is not finance has price data for at least the previous 3 months has an average daily trading volume of at least 200 k based on the previous 3 months belongs to the top 100 of the thus far selected assets in terms of market capitalization

      Would you say any of these rules violate the contest rules?

      Because these are the selection criteria for the N100 constituents. The only difference in my strategy is that I'm using qnt.data.stocks_load_ndx_data.sel(field='is_liquid') instead.
      Sure, the first of the rules above manually selects the exchange and the second one manually excludes a sector. But still none of these manually select assets and neither does the filter is_liquid from another dataset.

      Also, lets take a look why you prohibited manual asset selection in the first place. Wasn't this to avoid lookahead bias? And isn't this also the reason for the existence of the field is_liquid in any of your datasets? Are you saying that the exact field you introduced to avoid lookahead bias is now the reason you disqualify a strategy because of lookahead bias just because it's from a dataset other than the one for the contest?

    • O

      How to turn off "WARNING: some dates are missed in the portfolio_history"
      Support • • omohyoid

      5
      0
      Votes
      5
      Posts
      1201
      Views

      support

      @omohyoid Hi, we do not have such calls, sorry

    • M

      Trying to understand trading
      Support • • mobile.mr_mime

      5
      2
      Votes
      5
      Posts
      627
      Views

      M

      @support Thanks for the detailed answer, that seems to be it, here is the final code:

      import xarray as xr import qnt.stats as qns import qnt.output as qnout import qnt.data as qndata # single-stock trading data = qndata.futures.load_data(min_date="2005-01-01", assets=["F_ES"]) # attempting an optimal (unrealistic) long-only strategy # by looking at future prices, and investing only if there will be profit next_price_open = data.sel(field="open").shift(time=-1) next2_price_open = data.sel(field="open").shift(time=-2) weights = xr.where(next_price_open < next2_price_open, 1.0, 0.0) # sell short when optimal: # weights = xr.where(next_price_open > next2_price_open, -1.0, weights) weights = qnout.clean(weights, data) qnout.check(weights, data) qnout.write(weights) stats = qns.calc_stat( data, weights, # ignoring slippage for simplicity slippage_factor=0, roll_slippage_factor=0) stats.loc[:, "equity"].plot.step();
    • R

      I cant not find my strategy in Q23 leaderboard
      Support • • RoyPalo

      5
      0
      Votes
      5
      Posts
      2077
      Views

      support

      @sun-73 @RoyPalo, Hi,

      Q23 Leaderboard was updated several days ago, all eligible submissions are there now, sorry for late notice. Please let us know if you find any submission that is missing.

    • A

      Q23 should be running now, but not able to join, right?
      Support • • angusslq

      5
      0
      Votes
      5
      Posts
      2142
      Views

      support

      @green-flareon Thanks. The live phase of the Q23 is running. Quants can join any contest during the submission phase. Q24 is on.

    • E

      Q17 Contest
      General Discussion • • EDDIEE

      5
      0
      Votes
      5
      Posts
      796
      Views

      support

      @theflyingdutchman Yes, we are integrating new data sources for a new asset class, once we are done (next week) the data and leaderboard updates will start again.

    • news-quantiacs

      The Winners of the Q15 Futures and BTC Contests
      News and Feature Releases • • news-quantiacs

      5
      1
      Votes
      5
      Posts
      2568
      Views

      support

      @algotime Hello, on 1st November allocations will start, you will receive a mail soon today!

    • illustrious.felice

      Strategy trades illiquid instruments
      Support • • illustrious.felice

      5
      0
      Votes
      5
      Posts
      2672
      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.

    • C

      What's is the next contest ?
      News and Feature Releases • • cyan.gloom

      5
      0
      Votes
      5
      Posts
      1580
      Views

      support

      @yonasbo Hi, sorry for delay, we will start soon a new contest, in the next 2 weeks

    • C

      Setup an environment at Google Colab
      Support • • cortezkwan

      5
      2
      Votes
      5
      Posts
      733
      Views

      C

      @support Great help! Thank you so much!

    • S

      How to install Python Talib
      Support • • spancham

      5
      0
      Votes
      5
      Posts
      2141
      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.

    • S

      Calculation time exceeded
      Request New Features • • Sun-73

      5
      0
      Votes
      5
      Posts
      2295
      Views

      support

      @eddiee Dear eddiee, no, please, for the moment do not resubmit. The timed out submissions are stored as timed out submissions and we can reprocess them. In case you need resubmission, we will let you know.

    • cespadilla

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

      5
      1
      Votes
      5
      Posts
      1869
      Views

      cespadilla

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

    • G

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

      5
      0
      Votes
      5
      Posts
      1111
      Views

      support

      @gjhernandezp Thank you for sharing your solution!

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