Signal Exports
Numerai
Introduction
Numerai is a platform where you can earn rewards by uploading unique live trading signals for a universe of US Equities. The regular Numerai Tournament is built around a free dataset they provide, but with Numerai Signals, you can now use any dataset to generate your trading signals. Through our Numerai integration, you can use our rich library of alternative datasets or your own custom datasets to create and automate your Numerai Signal submissions.
Add Providers
To export signals to Numerai from your algorithm, during initialization, add a Numerai signal export provider.
SignalExport.AddSignalExportProviders(new NumeraiSignalExport(publicId, secretId, modelId, fileName));
self.signal_export.add_signal_export_providers(NumeraiSignalExport(publicId, secretId, modelId, fileName))
The NumeraiSignalExport
constructor accepts the following arguments:
Argument: |
Argument: |
Argument: |
Argument: |
You can add multiple signal export providers to a single algorithm.
Asset Classes
Our Numerai integration supports signals for US Equities.
Universe Selection
The Numerai Signals stock market universe covers roughly the top 5,000 largest stocks in the world. The universe available on QuantConnect that's the closest match to the Numerai Signals universe is the CRSP US Total Market Index, which represents approximately 100% of the investable US Equity market regularly traded on the New York Stock Exchange and Nasdaq. This Index doesn't contain all of the stocks in the Numerai Signals universe, but you don't need to submit signals for all the stocks in the Numerai Signals universe.
To get the constituents of the CRSP US Total Market Index, add an ETF constituents universe for the Vanguard Total Stock Market ETF, VTI.
UniverseSettings.Asynchronous = true; _etfSymbol = AddEquity("VTI").Symbol; AddUniverse(Universe.ETF(_etfSymbol));
self.universe_settings.asynchronous = True self.etf_symbol = self.add_equity("VTI").symbol self.add_universe(self.universe.etf(self.etf_symbol))
Schedule Submissions
Every Tuesday, Wednesday, Thursday, Friday, and Saturday of the week, a new round is open for you to submit signals. Saturday rounds open at 18:00 UTC, and the submission window is open until Monday 14:30 UTC. Weekday rounds open at 13:00 UTC, and the submission window is open for 1 hour. For more information about the competition rounds, see Rounds in the Numerai documentation.
To schedule your submissions, you can set a Scheduled Event during initialization.
Schedule.On( DateRules.EveryDay(_etfSymbol), TimeRules.At(13, 0, TimeZones.Utc), SubmitSignals);
self.schedule.on( self.date_rules.every_day(self.etf_symbol), self.time_rules.at(13, 0, TimeZones.UTC), self.submit_signals)
Send Portfolio Targets
To send targets, pass a list of PortfolioTarget
objects to the SetTargetPortfolio
set_target_portfolio
method. The method returns a boolean that represents if the targets were successfully sent to Numerai Signals. In this situation, the number you pass to the PortfolioTarget
constructor represents the portfolio weight. Don't use the PortfolioTarget.Percent
PortfolioTarget.percent
method.
var success = SignalExport.SetTargetPortfolio(targets);
success = self.signal_export.set_target_portfolio(targets)