[PYTHON] Aktienkursprognose durch maschinelles Lernen Beginnen wir mit Numerai

Einführung

Die breite Öffentlichkeit hat vielleicht noch nichts davon gehört, aber es gibt einen Hedgefonds namens "Numerai". Es handelt sich um einen Hedgefonds, der in der Nachbarschaft wenig bekannt geworden ist, nachdem er von der zweiten Jahreshälfte 2016 bis zur ersten Jahreshälfte 2017 in Medien wie Wired und Forbes vorgestellt wurde. Bei diesem Hedgefonds handelt es sich um einen sogenannten Cloud-Sourcing-Fonds, der auf der Grundlage der prognostizierten Ergebnisse der Aktienkurse von einer nicht festgelegten Anzahl von Personen verwaltet wird.

Ich habe auch um 2017 an Numerai teilgenommen. Numerais Methode ist eine Turniermethode, die auf der Grundlage des Vorhersageergebnisses eingestuft wird, das heißt, sie ähnelt Kaggle. Das Turnier findet wöchentlich statt und die Top-Platzierungen werden in Kryptowährung ausgezahlt. In dem damaligen Turnier waren die Kriterien für die Rangliste jedoch unklar und die Rangschwankungen waren extrem stark (z. B. in den TOP 10, aber in der nächsten Woche unter dem 100. Platz). Deshalb habe ich sofort aufgehört, weil es sich um ein sogenanntes Glücksspiel handelte. ..

Vor kurzem habe ich unter bestimmten Umständen zum ersten Mal seit ungefähr drei Jahren einen Blick auf Numerai geworfen. Dann werden die Spezifikationen des Turniers viel ausgefeilter sein als 2017. Das Herunterladen des Datensatzes und das Beobachten der Funktionen ist sehr interessant. Ich dachte, dies sei ein großartiger Test für meine Fähigkeiten als Person, die mit Finanz-M / L zu tun hat, also war ich ungefähr eine Woche in einer Dose und rang mit dem Datensatz.

Wir glauben, dass die Datensätze und Turniere von Numerai sehr nützliche Unterrichtsmaterialien für diejenigen sind, die sich für die Finanzierung von M / L interessieren. Ich möchte diese Gelegenheit nutzen, um sie den Lesern vorzustellen.

Über Numerai

Lassen Sie mich etwas mehr über Numerai erklären. Eine Übersicht über Numerai finden Sie zunächst im Past Blog, den ich 2017 geschrieben habe. Um die Merkmale von Numerai zusammenzufassen,

--Numerai führt Meta-Learning basierend auf den von den Teilnehmern gesammelten Vorhersageergebnissen durch und arbeitet basierend auf den Ergebnissen.

Turnierspezifikationen

Schauen wir uns nun die Turnierspezifikationen an. Wöchentlich finden Numerai-Turniere statt, und am Wochenende stehen neue Datensätze zum Download zur Verfügung. Die Frist für das Hochladen endet am folgenden Montag um 23:30 Uhr (japanische Zeit). Das Verfahren zum Erstellen einer Prognose zum Hochladen ist wie folgt.

Datensatz herunterladen

Wenn Sie sich anmelden, befindet sich auf der linken Seite des Bildschirms eine Download-Schaltfläche. Drücken Sie einfach diese. Die heruntergeladene Zip-Datei enthält die folgenden Datensätze:

training_data ist ein Datensatz für das Training und Turnierdaten sind ein Datensatz für die Erstellung von Vorhersagen. Diese werden in CSV bereitgestellt, sind jedoch aufgrund ihrer großen Kapazität in Excel nur schwer zu öffnen. Als Referenz beträgt die Dimension von trainig_data (310 Features + α) x ungefähr 500.000 Samples und seine Kapazität 770 MB, und die Dimension von Tournament_data beträgt (310 Features + α) x ungefähr 1,7 Millionen Samples und seine Kapazität beträgt 2,6 GB. Es erreicht. Der Inhalt des Datensatzes wird in den folgenden Kapiteln etwas ausführlicher erläutert.

Erstellen eines Modells, das Vorhersageergebnisse übermittelt

Python oder R wären zum Erstellen des Modells geeignet. Für beide wird ein Beispielcode bereitgestellt. Beispielcode ist auch enthalten, wenn Sie den Datensatz herunterladen. Als Referenz ist der auf Numerais HP bereitgestellte Code unten aufgeführt (Python ver.).

Laden Sie einfach die nach dem folgenden Verfahren erstellte CSV auf Numerais HP hoch. Es ist einfach.

import pandas as pd
from xgboost import XGBRegressor

# Read the csv file into a pandas Dataframe
training_data = pd.read_csv("numerai_training_data.csv").set_index("id")
tournament_data = pd.read_csv("numerai_tournament_data.csv").set_index("id")
feature_names = [f for f in training_data.columns if "feature" in f]

# train a model to make predictions on tournament data
model = XGBRegressor(max_depth=5, learning_rate=0.01, \
                     n_estimators=2000, colsample_bytree=0.1)
model.fit(training_data[feature_names], training_data["target"])

# submit predictions to numer.ai
predictions = model.predict(tournament_data[feature_names])
predictions.to_csv("predictions.csv")

Modellbewertung

Genauigkeit und Logloss werden verwendet, um allgemeine Modelle des maschinellen Lernens zu bewerten, während Rangkorrelation verwendet wird, um Numerai-Turniermodelle zu bewerten. Das ist sehr gut. Weil die Fähigkeit im Handel der Informationskoeffizient ist, der der Korrelationskoeffizient zwischen dem Prognoseziel und dem für die Prognose verwendeten Investitionsindex ist. Die Idee hier basiert auf der traditionellen Theorie der aktiven Operation, und diejenigen, die interessiert sind, sind der [Past Blog] des Autors (http://we.love-profit.com/entry/2018/04/01/152750) Bitte beziehen Sie sich auf. Die Rangkorrelation kann mit dem folgenden Code berechnet werden. Dieser Code wird auch von Numerai bereitgestellt.

ranked_prediction = training_data["prediction"].rank(pct=True, method="first")
correlation = np.corrcoef(training_data["target"], ranked_prediction)[0, 1]

Rangliste

Bestenlisten sind nach Ruf geordnet. Der Ruf ist der Durchschnittswert der Rangkorrelation in der Vorwärtsvorhersage für die letzten 100 Tage (* Die Turnierspezifikationen wurden kürzlich aktualisiert. Die alte Spezifikation war der Durchschnittswert der letzten 20 Turniere. Das Dokument dazu wurde noch nicht aktualisiert. Es scheint nicht zu sein).

Es gibt einen weiteren Index namens MMC (Meta Model Contribution) in der Bestenliste. Dies ist der Korrelationswert mit dem von Numerai tatsächlich betriebenen Metamodell. Diese Metrik wurde gerade im letzten Update implementiert und wird nur angezeigt und scheint zum Zeitpunkt der Veröffentlichung noch nicht zu funktionieren. 01.png

Belohnungssystem

Jetzt werde ich das Belohnungssystem von Numerai erklären, das für die Leser das interessanteste Thema ist. Zuallererst ist die Hauptprämisse, dass "Numerais Belohnung in Numerais eigener Kryptowährung namens NMR (Numeraire) ausgezahlt wird". Wenn Sie an dieser Stelle denken "Ich verstehe Kryptowährungen nicht und es ist ein Ärger", können Sie dieses Kapitel überspringen.

Eine weitere wichtige Voraussetzung ist, dass Sie "Ihr NMR einsetzen müssen", um Belohnungen zu erhalten. Ich werde dies etwas genauer erklären.

Über den Einsatz

Wenn Sie mit NMR fortfahren, können einige Personen eine Abstoßungsreaktion auslösen. Daher werden wir hier in Yen fortfahren.

Angenommen, einer der Teilnehmer hat eine zuversichtliche Vorhersage gemacht. Ich möchte damit eine Belohnung bekommen. Wenn Sie so denken, setzen Sie zum Beispiel 10.000 Yen auf Ihre eigenen Vorhersageergebnisse. Wenn die Vorhersage gut ist, erhalten Sie eine Belohnung entsprechend den 10.000 Yen, die Sie setzen. Im Gegenteil, wenn die Vorhersage schlecht ist, wird ein Teil des Einsatzes von 10.000 Yen von der Operation eingezogen.

Dies ist eine umständliche Spezifikation, aber wenn Sie darüber nachdenken, kann nicht geholfen werden. Wenn der Benutzer kein Risiko eingeht, wenn Sie beispielsweise etwa 1000 Konten erstellen und weiterhin geeignete Vorhersageergebnisse einreichen, erhalten Sie möglicherweise zufällig gute Ergebnisse und Belohnungen. Der Zweck ist es, dies zu verhindern. Da der Einsatzbetrag den Grad des Vertrauens der Teilnehmer anzeigt, ist der Einsatz für Numerai außerdem sehr wichtig, um ein Metamodell zu erstellen.

Die Belohnung für den Einsatz ist wie folgt. Abhängig von der Rangkorrelation in der Turnierrunde wird entschieden, ob die Belohnung vergeben oder gesammelt wird. Zuschüsse und Sammlungen sind auf 25% des Einsatzbetrags begrenzt. 02.png

Genauer gesagt liegt der Rangkorrelationswert in jeder Turnierrunde zwischen -0,15 und +0,15 (dh die Sammlung / Gewährung liegt zwischen -15% und + 15% des Einsatzbetrags). Die Unterschiede zwischen den einzelnen Runden sind groß, aber wenn Sie ein erfahrener Teilnehmer sind, wird sie sich im Durchschnitt auf etwa 0,03 belaufen. Mit anderen Worten, wenn Sie längere Zeit teilnehmen, können Sie für jede Runde eine Belohnung von ca. + 3% erwarten.

Täglicher Bonus

"Sind es nur 3%?" Ich denke, viele Leute denken so. Es gibt noch einen anderen Weg, um mit Numerai große Belohnungen zu erhalten. Das ist die Rangliste. Wenn Sie in der Rangliste ganz oben stehen, erhalten Sie einen täglichen Bonus entsprechend der Höhe des Einsatzes. 5% an der Spitze der Rangliste und 4% an den Top 10. Wenn wir die Top-10-Platzierungen halten können, können wir eine enorme Rendite von 4% pro Tag erzielen. Es bestehen jedoch die folgenden Bedingungen.

Natürlich gibt es auch eine Obergrenze für den Betrag, den Numerai an alle Teilnehmer zahlt, bis zu 250 NMR pro Tag (der aktuelle Marktpreis beträgt 450.000 Yen). Darüber hinaus wird die Belohnung gleichmäßig durch den Wert geteilt, den der Teilnehmer erhalten soll, damit die Gesamtzahlung innerhalb des Höchstbetrags liegt. Wenn Sie den Mut haben, wieder an der Spitze der Rangliste zu stehen und zu regieren, ist es durchaus möglich, Zehntausende Yen pro Tag zu erhalten. Die Belohnung, die Sie anstreben sollten, beträgt ungefähr 1 Million Yen pro Monat. Es wird für zusätzliches Einkommen als Datenwissenschaftler ausreichen.

Es sollte jedoch beachtet werden, dass NMR eine Kryptowährung mit niedrigem Kredit ist, die als Grasmünze bezeichnet wird. Die Preise schwanken so stark, dass wir nicht wissen, wann es Müll sein wird. Obwohl es an der Kryptowährungsbörse notiert ist, ist es aufgrund der geringen Liquidität möglicherweise nicht möglich, einen festen Betrag in einen festen Betrag umzuwandeln. Kryptowährung ist auch steuerlich nachteilig. Wenn Sie Überweisungen falsch behandeln, verlieren Sie sie und können sie nicht zurückgeben. Es ist wichtig, "überschüssige Mittel" im Rahmen der "Eigenverantwortung" zu genießen. Selbst wenn Sie einen Fehler machen, denken Sie nicht, dass Sie mit dem Handelsgewinn von NMR Geld verdienen werden. 03.png

Datensatz

Lassen Sie uns als Nächstes den Inhalt des Datensatzes erläutern. Der Datensatz wird seit 2019 von Marcos Prado überwacht. Prados Buch "Finance Machine Learning" (japanische Übersetzung), das im Dezember 2019 veröffentlicht wurde, wurde dumm bei Amazon verkauft, so viele Leute hätten es sehen sollen. Unter der Aufsicht von Herrn Prado wurde die Gesamtzahl der Funktionen von ungefähr 40 auf ungefähr 300 erweitert. Prado veröffentlichte sogar ein Papier über Numerais Datensatz. Interessenten sollten es lesen.

Über Artikel

Die Elemente im Datensatz lauten wie folgt. Die Anzahl der Stichproben beträgt ungefähr 500.000 für Trainingsdaten und ungefähr 1,7 Millionen für Turnierdaten. 04.png

--id ist ein numerischer Wert, der jeder Probe einzeln zugewiesen wird, und es gibt keine Duplizierung in allen Proben. Die ID-Nummer gilt als verschlüsseltes Datum, Uhrzeit und Markenname. --era gibt den Zeitraum der Daten an. Die Trainingsdaten enthalten 120 Perioden von Ära1 bis Ära120. Da sich der Aktienmarkt im Laufe der Zeit ändert, muss die EDA unter Berücksichtigung der Periodenstruktur des Datensatzes durchgeführt werden. Es gibt keine Erklärung dafür, ob Ära1 bis Ära120 in chronologischer Reihenfolge sind. Beachten Sie auch, dass die Anzahl der Proben für jede Epoche unterschiedlich ist. --data_type wird nur in training_data trainiert. Es gibt drei Arten von Turnierdaten: Validierung, Test und Live. Validierung sind Daten für die Modellvalidierung und erhalten ein Ziel. Test ist ein Satz, der von Numerai zur Beurteilung der Note verwendet wird, und Ziel ist ein Nanowert. live sind die laufenden Marktdaten. Ziel ist natürlich ein Nanowert. Die Anzahl der Funktionen ist jeweils unterschiedlich.

Informationen zu Funktions- und Zielnummern

Wie Sie vielleicht anhand der obigen Daten bemerkt haben, sind die Merkmale und Zielwerte diskrete Werte. Es gibt fünf Arten von numerischen Werten: 0, 0,25, 0,5, 0,75 und 1, und kurz gesagt, dies sind die Daten von etwa 5 Minuten, die im Quants-Betrieb üblich sind. Das Histogramm für jede Epoche ist wie folgt zu beobachten. Einige haben die gleiche Anzahl von Stichproben für jede Abteilung, andere nicht. Die ursprüngliche Reihe von Merkmalen wie feature_constitution1 in der folgenden Abbildung weist möglicherweise eine Fettschwanzverteilung auf, oder es gibt äußerst wenige Treffer wie kategoriale Variablen. Während wir so denken, werden wir mit EDA fortfahren. 05.png

Über die Periodenstruktur

Als nächstes betrachten wir den Übergang der Anzahl der Stichproben für jede Epoche. Die Anzahl der Proben in jeder Epoche ist sehr unterschiedlich, wie unten gezeigt. Korrelation oder was auch immer muss in chronologischer Reihenfolge befolgt werden. Da der Übergang der Anzahl der Stichproben nahezu kontinuierlich zu sein scheint, ist es sehr wahrscheinlich, dass Ära 1 bis Ära 120 in chronologischer Reihenfolge angeordnet sind. 06.png

Weitere EDA

Das Obige sind die Grundlagen, und während wir mit EDA fortfahren, werden wir verschiedene Dinge herausfinden. Im Vergleich zu 2017 ist der Datensatz sehr anspruchsvoll und interessant. "Nun, es wird nur von Prado überwacht. Dieses Turnier sollte kein Glücksspiel sein." Es gibt Gewissheit im Autor.

Ergebnis der Turnierteilnahme

Der Autor wird ab der nächsten RUNDE 208 an Numerai teilnehmen. Das Modell wurde bereits erstellt und das Validierungsergebnis war gut. Der für das Ranking verwendete Ruf ist das Ergebnis der Vorwärtsvorhersage für die letzten 100 Tage, und -0,1 wird an Tagen, an denen keine Daten vorliegen, einheitlich angewendet. Daher beginnen neue Teilnehmer mit einer Regression von -0,1 und steigen allmählich an, wenn sich die Ergebnisse der Vorwärtsvorhersagen ansammeln.

Dieses Kapitel wird einzeln aktualisiert.

(Hinzugefügt am 19. April 2020) Ich habe die Vorhersage von RUNDE 208 wie geplant eingereicht. Die Validierungskorrelation beträgt 0,034, was ein angemessener Wert ist. Übrigens setze ich das gesamte NMR ein, das ich habe. Es ist 26NMR (ungefähr 60.000 Yen zum Marktpreis ab dem 19. April), was die Belohnung ist, die ich erhalten habe, als ich 2017 teilgenommen habe. Auch hier wird die Auszahlung nach 100 Tagen angewendet.

(Hinzugefügt am 24. April 2020) Das Ergebnis von RUND 208, das die erste Einreichung war, war gut. Während die Top-10-Platzierungen alle negativ waren, konnte mein Modell mit einem positiven Ergebnis abschließen (die folgende Tabelle gibt die Gesamtsumme des Autors an). ROUND208-2.png

(Hinzugefügt am 30.4.2030) Das obige Ergebnis war insgesamt nur der erste Tag von ROUND208 (ich habe falsch verstanden, dass es ein eindeutiger Wert nach ROUND war. Entschuldigung). Die tatsächliche RUNDE beträgt 20 Tage, und der Korrelationswert ändert sich jeden Tag während des Zeitraums. Heute werde ich die Verteilung von Korrelation und MMC der Top 100 Ranking-Benutzer und die Position des Autors ab 5 Tagen nach ROUND208 zeigen. Bisher läuft es gut. Ich habe MMC im folgenden Kapitel hinzugefügt. Überprüfen Sie dies auch. round208_submission_dist.png

(Hinzugefügt am 22. Mai 2020) Ich habe das Modell mehrmals aktualisiert und mich von ROUND212 auf fast das endgültige Modell festgelegt. Ich werde die Situation für eine Weile sehen. 21.png

Zusätzliche Informationen (erstellt am 25. April 2020)

Da ich durch die Teilnahme an ROUND 208 viel gelernt habe, werde ich dieses Kapitel erstellen. Wenn ich in Zukunft etwas herausfinde, werde ich es diesem Kapitel hinzufügen.

(Hinzugefügt am 25.04.2020) ――Ich schrieb, dass die Auszahlung ab 100 Tagen später angewendet wird, aber es wurde festgestellt, dass dies eine Bedingung im Zusammenhang mit dem täglichen Bonus ist und dass die Gewährung / Sammlung von Belohnungen gemäß Korrelation sofort ab der Einsatzrunde erfolgt (siehe Abbildung unten). -Ich habe geschrieben, dass der Betrag der Auszahlung durch ~~ Korrelation gemäß der Rangkorrelation in jeder Turnierrunde generiert wird, aber dies war nicht korrekt. Ich dachte, dass die Belohnung / Bewilligung nur einmal gegeben werden würde, wenn die Runde vorbei war und die Korrelation durch die Runde bestätigt wurde, aber in Wirklichkeit wird die Bewilligung / Sammlung jeden Tag gemäß der täglichen Korrelation während der Runde erfolgen. Es stellte sich heraus (siehe Abbildung unten). ~~ ――Da ich den spezifischen Zeitplan der Runde erfassen konnte, werde ich ihn beschreiben (alles unten ist die japanische Zeit). Der Datensatz wird am frühen Sonntag aktualisiert. Ich dachte, die Frist für die Einreichung von Vorhersagen war am Montag 23:30 Uhr, aber die Frist für die Einreichung von Vorhersagen für RUNDE 208 war am Dienstag 0:30 Uhr. Auch der Starttermin der Runde scheint Donnerstag zu sein. Am Beispiel von ROUND208 wurde der Datensatz am frühen Morgen des 19. April (So) heruntergeladen, die Frist für die Einreichung der Vorhersage war 0:30 am 21.4. (Di) und die Runde begann am 23.4. (). Es war ein Baum) (siehe Abbildung unten). 07.png

--Training_data bleibt grundsätzlich unverändert. Sie müssen das Modell also nicht jedes Mal neu erstellen, wenn Sie den Datensatz herunterladen. Verbesserungen können basierend auf den in der vorherigen Runde eingereichten Ergebnissen vorgenommen werden, die Ergebnisse der Runden variieren jedoch, sodass Modelländerungen nicht anhand kurzfristiger Ergebnisse beurteilt werden sollten.

(Hinzugefügt am 30.4.2030)

08.png

(Hinzugefügt am 1. Mai 2020)

(Hinzugefügt am 5. Mai 2020)

12.png

(Hinzugefügt am 22. Mai 2020) Numerai erlaubt die Einreichung mehrerer Modelle, aber bisher war es notwendig, jedes Konto mit einer unabhängigen E-Mail-Adresse zu registrieren. Dieses Mal wurde es geändert, sodass Sie bis zu 10 Modelle pro Konto einreichen können. Die Höhe des Einsatzes kann auch für jedes Modell zugewiesen und verwaltet werden. Die Einstellungsmethode ist hier.

Der Autor hat zwei Modelle eingereicht. Das Untermodell dient zur Überwachung, und wir planen, es mit dem Hauptmodell zu kombinieren, wenn die Leistung nach einigen Runden gut ist. 20.png

Numerai API (eingerichtet am 1. Mai 2020)

Da es die Numerai-API gibt, werde ich sie vorstellen. Mit dieser API können Sie DLs und Vorhersagen für Datasets senden. Nützlicher wäre jedoch die Möglichkeit, Benutzerinformationen zu aggregieren. Unten finden Sie einen Beispielcode, um die Rundenkorrelation und MMC der TOP 100-Benutzer am letzten Tag jeder Runde abzurufen. Achten Sie darauf, nicht zu viel zu treffen, da Sie sich über das API-Limit nicht sicher sind. Wenn es andere bequeme Verwendungszwecke gibt, werde ich sie vorstellen.

import time
import numerapi
import matplotlib.pyplot as plt

round = 208
api = numerapi.NumerAPI()

LB = api.get_leaderboard(limit=100)  #TOP100 Benutzer
users = [LB[i]["username"] for i in range(len(LB))]

submission_corr = []
mmc = []

for user in users:
    sub = api.daily_submissions_performances(username=user)
    sub_round = [sub[i] for i in range(len(sub)) if sub[i]["roundNumber"]==round]
    submission_corr.append(sub_round[0]["correlation"])
    mmc.append(sub_round[0]["mmc"])
    time.sleep(0.5)

plt.hist(submission_corr)
plt.hist(mmc)

Numerai Community (gegründet am 22. Mai 2020)

Numerai hat eine offene Chat-Community auf einer Plattform namens Rocket.chat. Rocket.chat ist wie eine Zwietracht. Es gibt Diskussionen über wichtige Änderungen im Turnier und über die Datenwissenschaft des Modells. Wenn Sie nützliche Informationen haben, werde ich sie aufgreifen und in diesem Kapitel vorstellen, aber insbesondere diejenigen, die es ernst meinen, sollten sich auf jeden Fall der Community anschließen. Meine ID in der Community ist uki1.

community.numer.ai

(Hinzugefügt am 23. Mai 2020) Die Auszahlungen von MMC haben begonnen, und es scheint, dass die Community eine Methode verwendet, um ihre eigenen Vorhersageergebnisse zu neutralisieren. MMC neutralisiert das Metamodell, aber da das Metamodell natürlich unbekannt ist, wird das Vorhersageergebnis des Beispielmodells usw. als repräsentatives Vorhersageergebnis betrachtet und sein eigenes Vorhersageergebnis wird neutralisiert. Durch Ausführen dieser Aktion kann die Korrelation mit einem typischen Modell niedrig gehalten werden (es ist jedoch unterschiedlich, ob die Vorhersageleistung erhalten bleibt oder nicht). Unten ist der Neutralisierungscode. Es gab Berichte über Fälle, in denen die Vorhersageleistung durch Neutralisieren mit einem Anteil von = 0,5 weiterhin aufrechterhalten werden kann. Versuchen Sie in der nächsten RUNDE 213 vorerst zu neutralisieren. Wenn die Vorhersageleistung erhalten bleibt, ist es keine schlechte Idee, nach der Neutralisierung ein Vorhersageergebnis einzureichen.

import pandas as pd
import numpy as np

#Serie ist Ihr eigenes Vorhersageergebnis, indem das Vorhersageergebnis die Grundlage für die Neutralisierung ist(Die Metamodell-Vorhersage führt zu MMC)
def neutralize_series(series, by, proportion=1.0):
    scores = series.values.reshape(-1, 1)
    exposures = by.values.reshape(-1, 1)
    exposures = np.hstack((exposures, np.array([np.mean(series)] * len(exposures)).reshape(-1, 1)))
    correction = proportion * (exposures.dot(np.linalg.lstsq(exposures, scores)[0]))
    corrected_scores = scores - correction
    neutralized = pd.Series(corrected_scores.ravel(), index=series.index)
    return neutralized

Überlegenheitsstrategie im Turnier (festgelegt am 2. Mai 2020)

Wie oben erwähnt, wird der Ranglistenbonus abgeschafft und die Auszahlung auf den Korrelationsstandard oder das MMC-Standardauswahlsystem verschoben. Auszahlungen, die auf den Korrelationskriterien basieren, hängen vollständig von den individuellen Vorhersagefähigkeiten der Teilnehmer ab, es gibt keine Einkommensasymmetrie und es gibt keinen Anreiz für die Teilnehmer, dies zu wählen, außer für Fähigkeitstests. Können die Teilnehmer wirklich eine Gewinnasymmetrie erzielen, wenn wir hier die MMC-Kriterien auswählen? In diesem Kapitel analysieren wir MMC und betrachten die Überlegenheitsstrategie von Teilnehmern, deren Hauptzweck die Belohnung ist.

Top 100 Analyse

Vor der Analyse von MMC werden zunächst die Modelle analysiert, die von den aktuellen TOP100-Benutzern erstellt wurden (Stand: 2. Mai 2020). Zunächst für TOP100-Benutzer das Clustering des von ihnen erstellten Vorhersagemodells basierend auf dem Übergang der Übermittlungskorrelation der letzten 20 Runden (siehe Abbildung unten). Dies liegt daran, dass es viele Benutzer gibt, deren Übergänge eindeutig ähnlich sind. 09.png

SOM wurde als Clustering-Methode verwendet. Zusätzlich wurden die Diagramme nach Vorhersagefähigkeit (Reputation) und Korrelation mit dem Metamodell (Korr w / Metamodell) bewertet, so dass die Unterschiede in den Diagrammen als die Merkmale jeder Region angesehen werden konnten. 10.png Wenn Sie sich das ansehen, gibt es deutlich unterschiedliche Benutzer. Unten links auf der SOM-Karte befinden sich Madmin und Wilfred, dh die erste und zweite Rangliste. Madmin ist derzeit die Nummer eins und wird verdächtigt, ein Betrüger zu sein (Referenzseite). Leider wird der zweite Platz Wilfred der gleiche sein. Dies lässt sich aus der Tatsache ableiten, dass ihre Validierungskorrelation eindeutig niedrig ist (siehe Abbildung unten). Als Referenz denke ich, dass sich das Modell des Autors in der oberen linken Gruppe auf der Karte befindet (aufgrund fehlender Daten wird es nur aus dem bisherigen Verhalten geschätzt). 11.png

Die Frage ist, nachdem diese beiden Personen ausgeschlossen wurden, ** wo auf der Karte der effektivste Weg ist, um bezahlt zu werden **. Sie können einfach Ihre Vorhersagefähigkeiten verbessern, aber wenn die Korrelation mit dem Metamodell groß wird, kann die MMC abnehmen und die Belohnung kann abnehmen. Basierend auf den MMC-Spezifikationen werden wir überlegen, was mit der überlegenen Strategie zur Maximierung der Belohnungen geschehen wird (wird beim nächsten Mal gemeldet).

(Hinzugefügt am 19. Mai 2020) Wir berichten über die Ergebnisse der MMC-Auszahlungen. Erstens lautet die Definition von MMC hier. Kurz gesagt, wenn die Vorhersage als ein N-dimensionaler Vektor betrachtet wird, ist MMC die Korrelation zwischen der "orthogonalen Komponente des Metamodellvektors und dem Vorhersagemodellvektor des Benutzers" und dem Zielvektor. Das Folgende ist ein schematisches Diagramm für zwei Dimensionen (N = 2). Zu diesem Zeitpunkt gibt der Korrelationskoeffizient, der die Vorhersageleistung darstellt, den Winkel an, unter dem jeder Vektor zielt (um genau zu sein, cosθ). In dieser Figur ist der Zielvektor auf die (1,0) -Komponente festgelegt. Wenn sich der Vorhersagevektor also im ersten Quadranten befindet, ist die Vorhersageleistung positiv. Umgekehrt ist die Vorhersageleistung negativ, wenn sich der Vorhersagevektor im zweiten Quadranten befindet. In der folgenden Abbildung ist die Vorhersageleistung des Benutzermodells positiv, aber die direkte Komponente mit dem Metamodell ist negativ, was bedeutet, dass die Auszahlung negativ ist, wenn es sich um MMC handelt. Diese Beziehung wird stark von der Positionsbeziehung zwischen Ziel, Metamodell und Benutzervektor beeinflusst. 18.png

Wie in der obigen Abbildung gezeigt, sind 2 Dimensionen zu extrem, daher habe ich hier Zufallszahlen für N = 5000 Dimensionen generiert und die Beziehung zwischen jedem Parameter und der Auszahlung auf Monte-Carlo-Weise beobachtet. Die folgende Abbildung ist ein Vergleich der alten und der neuen Auszahlung. Als Parameter werden die Vorhersageleistung des Metamodells und die Korrelation zwischen dem Metamodell und dem Benutzermodell angegeben. Die rote Linie, die diagonal in der Grafik gezogen wird, ist die Linie, die die alte Auszahlung zeigt: Neue Auszahlung = 1: 1. Das Diagramm oben links in dieser roten Linie ist die neue Auszahlung und die Belohnung erhöht sich, und umgekehrt befindet sie sich unten rechts. Die Handlung ist ein Beispiel für neue Auszahlungen, die die Belohnungen reduzieren.

Das Erste, was Sie wissen müssen, ist, dass MMC-Auszahlungen bei guter Leistung des Metamodells (obere Reihe) tendenziell niedriger sind als herkömmliche Auszahlungen (dh einfache Vorhersageleistung). Wenn das Metamodell hingegen nicht gut funktioniert (untere Reihe), sind die MMC-Auszahlungen tendenziell höher als bei herkömmlichen Auszahlungen. Mit anderen Worten, es bewirkt eine Glättung der Auszahlung an den Benutzer während des Zeitraums, in dem die Vorhersage gut ist (der Zeitraum, in dem die Vorhersage einfach ist) und des Zeitraums, in dem die Vorhersage schlecht ist (der Zeitraum, in dem die Vorhersage schwierig ist).

Wenn man als nächstes durch Korrelation mit dem Metamodell beobachtet, kann man sehen, dass der Regressionskoeffizient zunimmt, wenn die Korrelation abnimmt (wenn er zur rechten Spalte fortschreitet). Wenn die Korrelation gering ist, ist ersichtlich, dass die Auszahlung durch MMC im Vergleich zur herkömmlichen Auszahlung (dh einfache Vorhersageleistung) stark schwankt. Dies bedeutet, dass wenn die Korrelation mit dem Metamodell gering wird, die Auszahlung für die eigene Prognoseleistung genutzt wird.

In Bezug auf die Asymmetrie der Einnahmen, wie aus der Grafik ersichtlich, hat die Auszahlung durch MMC eine lineare Beziehung zur alten Auszahlung (dh einfache Prognoseleistung), und es ist ersichtlich, dass es kein kostenloses Mittagessen gibt. 19.png

Um das Obige zusammenzufassen,

--MMC-Auszahlungen stabilisieren die Auszahlungen für einfache / schwierige Prognosezeiträume ――Wenn Sie die Korrelation mit dem Metamodell verringern, können Sie eine Hebelwirkung anwenden (dies wird natürlich aufgrund von Einschränkungen schwierig). ――Es gibt keine asymmetrischen Gewinnmöglichkeiten und es wird davon ausgegangen, dass es im Turnier keine überlegene Strategie gibt.

Kurz gesagt, der Anreiz, sich Numerai anzuschließen, besteht in überhöhten Auszahlungen in unvorhersehbaren Zeiten. Es ist schwierig, einen quantitativen Vergleich anzustellen, aber es kann eine gute Option sein, wenn Sie es als eines Ihrer Anlageportfolios betrachten (vorausgesetzt, Sie können NMR-Risiken tolerieren). Am elegantesten ist es, die Vorhersagen mit einem Modell zu treffen, das eine geringe Korrelation mit dem Metamodell aufweist. Teilnehmer, die mit ihren Fähigkeiten vertraut sind, werden ermutigt, sich der Herausforderung zu stellen.

(Hinzugefügt am 22. Mai 2020) Die Auszahlung per MMC hat begonnen. Sie können zwischen einer Auszahlung durch Corr und einer Auszahlung durch MMC wählen. Die Einstellungsmethode ist hier.

(Hinzugefügt am 4. Juni 2020) Ungefähr anderthalb Monate sind vergangen, seit der Autor in den Krieg eingetreten ist. Während dieser Zeit führte der Autor eine große Anzahl von Überprüfungen aus verschiedenen Perspektiven durch. Basierend auf den Ergebnissen und den Ergebnissen des Autors haben wir die Anreize zur Teilnahme an Numerai zusammengefasst.

** Anreiz 1. Große Hebelwirkung ** Die Auszahlung von Numerai ist proportional zu CORR. Wenn CORR = 0,1 ist, beträgt die Auszahlung 10% (im Fall von MMC mit 2 weiteren multiplizieren). Diese Spezifikation ist in erster Linie eine hohe Hebelwirkung. Das Modell von Numerai ist marktneutral, und während eine solche Strategie das Marktrisiko eliminieren kann, führt sie natürlich zu niedrigeren Renditen. Nach meiner Erfahrung wird die Long-Short-Rendite großer Aktien am tatsächlichen Aktienmarkt auf 1% pro CORR = 0,1 geschätzt (siehe Abbildung unten). Mit anderen Worten, wenn die Auszahlung CORR ist, ist die tatsächliche Kursbewegung der Aktie bereits zehnmal stärker gehebelt. Im Fall von MMC ist die Hebelwirkung bis zu doppelt so hoch, sodass die tatsächliche Hebelwirkung etwa das 20-fache beträgt. Darüber hinaus können Sie vier Wochen hintereinander darauf wetten, ohne dass die Marge ausgeht, sodass der tatsächliche Hebel etwa das 80-fache beträgt. Obwohl eine hohe Hebelwirkung ein zweischneidiges Schwert ist, ist sie eine sehr willkommene Spezifikation, um die finanzielle Effizienz marktneutraler Strategien dramatisch zu verbessern. 23.png

** Anreiz 2. Aufbau eines Portfolios ohne Kosten ** Benutzer kaufen eigentlich keine Aktien, sie können nur basierend auf den Vorhersagen bezahlt werden. Dies bedeutet, dass keine Auswirkungen von Transaktionsgebühren oder Marktauswirkungen auftreten. Mit anderen Worten, Sie müssen sich überhaupt keine Sorgen über eine Verschlechterung durch Backtesting machen. Dies ist ein einzigartiger Vorteil für Systemhändler, und Benutzer mit besonders hohen Einsätzen können erheblich von diesem Vorteil profitieren.

** Anreiz 3. Stabilisierung des P / L durch MMC ** Bei einer Strategie mit hohem Verschuldungsgrad werden Sie sofort entlassen, wenn die Gewinn- und Verlustrechnung stark variiert. Dies liegt daran, dass die angesammelten Belohnungen mit nur wenigen Verlusten sofort freigegeben werden. Die Wette auf MMC hat zur Folge, dass die Belohnungen in Zeiten guter / schlechter Prognosen geglättet werden. Auf diese Weise können wir unsere hochverschuldete Zinseszins-Anlagestrategie nachhaltig gestalten, ohne die Erwartungen zu beeinträchtigen.

** Anreiz 4. Ausgezeichnete Funktion ** Im Allgemeinen ist die Suche nach Investitionsindikatoren das größte Hindernis für die Entwicklung von Anlagestrategien. Dies ist eine Herausforderung, vor der insbesondere Anfänger auf dem Markt stehen. Ich weiß nicht, welche Indikatoren erklärend sind, und ich weiß nicht, wie ich sie finden kann. Die Vorhersagekraft der in Numerais Daten enthaltenen Funktionen ist sehr gut. Der Autor hat eine facettenreiche Überprüfung durchgeführt, aber die Verwendung dieser Funktionen wird es wahrscheinlich ermöglichen, Gewinne und Verluste auf lange Sicht positiv zu machen.

Was ist der Anreiz, an Numerai teilzunehmen?

Es ist eine traumhafte Plattform für Systemhändler. Nun ist es nicht fair, nur die Anreize zu erklären, also lassen Sie uns die Nachteile erneut bestätigen. Die größten Risiken bei der Teilnahme an einem Turnier sind das operationelle Risiko, das NMR-Preisschwankungsrisiko und das NMR-Liquiditätsrisiko.

Das operationelle Risiko ist das Risiko, dass das Turnier plötzlich abgeschafft wird oder dass die Spezifikationen geändert werden und die gewünschte Rendite nicht erzielt wird. Dies kann nicht geholfen werden. In diesem Fall wird nur das NMR erhöht (ich glaube nicht, dass es beschlagnahmt wird). Als nächstes kommt das Risiko von NMR-Preisschwankungen, die nur akzeptiert werden können. Erstens gibt es kein kostenloses Mittagessen auf der Welt, und es besteht immer das Risiko, eine hohe Rendite zu erzielen. TOP-Spieler haben jedoch den Geldbetrag, den sie in etwa 30 Wochen einsetzen, verfünffacht, sodass das Risiko, dass der NMR-Preis auf etwa 1/5 fällt, akzeptabel ist. Umgekehrt kann der Preis für NMR stark steigen, daher denke ich, dass es sich lohnt, auf NMR zu setzen. In Bezug auf das Liquiditätsrisiko ist es schließlich schwierig, eine extreme Menge an NMR in kurzer Zeit in Bargeld umzuwandeln, da es nur wenige Börsen gibt, an denen NMR notiert ist und die Platte dünn ist. Ich denke, das ist der größte Engpass. Es ist in Ordnung, eine hohe Gebühr festzusetzen, daher wäre ich sehr dankbar, wenn Numerai OTC erlauben könnte, NMR gegen BTC oder USDT auszutauschen.

Tipps für die Prognose

Dieses Kapitel wird aktualisiert, wenn wir in der Rangliste an oberster Stelle stehen können.

(Hinzugefügt am 11. Mai 2020) Obwohl es immer noch weit von der Spitze des Rankings entfernt ist, möchte ich hier eine der EDAs vorstellen, die ich mache. Das Grundlegende ist, den Zeitreihenübergang der Korrelation zwischen Merkmalen zu beobachten (viele Leser haben dies möglicherweise bestätigt). Was ich in dieser EDA entwickelt habe, ist, dass ich die Testdaten von Turnierdaten anstelle von Trainingsdaten beobachtet habe. Wie Sie vielleicht wissen, wer Numerais Forum gelesen hat, sind die Testdaten von Tournament_Data, ERA854-899 (wöchentlich) Es entspricht fast ERA 197-206 (monatlich) von Validation2. Darüber hinaus entsprechen diese Daten fast ROUND168 bis ROUND204 des tatsächlichen Turniers. Dies ist 40 Wochen vor April 2020 und schließt die Zeit des Koronaschocks ein.

Die folgende Grafik zeigt den Korrelationsübergang zwischen Geschicklichkeit1 und anderer Geschicklichkeit (linke Abbildung) und den Korrelationsübergang zwischen Konstitution1 und anderer Konstitution (rechte Abbildung) in ERA853 zu ERA904 (wöchentlich).

Wie Sie sehen können, fällt der Korrelationskoeffizient am rechten Ende der Geschicklichkeitskorrelation signifikant ab. Dieser Teil ist der Koronaschock. Wie später beschrieben wird, ist Geschicklichkeit ein Index für Preiserhöhung / -abnahme, und 14 Indikatoren werden durch Kombination des Berechnungszeitraums (1 W, 4 W, 52 W usw.) und der Berechnungsmethode (einfache Zu- / Abnahmerate, gleitende durchschnittliche Abweichungsrate usw.) zusammengesetzt. Wurde getan.

Im Gegensatz zur Geschicklichkeit, bei der die Korrelation untereinander stark schwankt, weist die Konstitution einen nahezu konstanten Korrelationsübergang auf. Die Verfassung ist wohl ein Indikator für die Eigenschaften einer Aktie (Abschlüsse, Sektoren, Regionen usw.). Es gibt einen Index, der im Corona-Schock-Teil leicht nach oben und unten driftet, aber dies ist ein Finanzindex, der Preise wie PER und PBR enthält. 13.png

Basierend auf diesen Daten haben wir versucht, die Geschicklichkeit, die eine große Erklärungskraft besitzt und der Schlüssel zur Verbesserung der Korrelation ist, mit den tatsächlichen Marktdaten zu reproduzieren. Da es einige Zeit dauert, Aktien aus aller Welt zu berücksichtigen, haben wir hier S & P 500-Aktien ins Visier genommen. Die folgende Abbildung zeigt den gegenseitigen Korrelationsübergang der steigenden und fallenden Indikatoren. Die Merkmale 1 bis 4 sind die Zu- / Abnahmerate von 1 W, 4 W, 12 W bzw. 52 W. Es ist ersichtlich, dass eine Form ähnlich der Geschicklichkeitskorrelation in der obigen Figur lokal erscheint. 14.png

Als nächstes verglichen wir die Renditebilanzkurven für diese Reproduktionsindizes und Geschicklichkeit. Da die Bilanzkurven sehr ähnlich sind, denke ich, dass Geschicklichkeit4 und Geschicklichkeit7, die besonders beschreibend sind, wohl 52W (oder ähnliche Perioden) Auf- und Abwärtsindikatoren sind. 15.png

Darüber hinaus profitieren hochrangige Benutzer stark von Geschicklichkeit 4. Das Folgende ist ein Vergleich der runden Korrelationsübergänge von madmin, hb und steve2, die hoch eingestuft sind, und der Korrelationsübergänge von Geschicklichkeit4. 16.png

Die Frage ist nun, ob diese Geschicklichkeit ein wirklich robuster Indikator für das ganze Jahr ist. Am Ende dieser Überprüfung haben wir das Verhalten von S & P 500-Aktien bei der Auswahl anhand des Index der Zu- / Abnahmerate für den Zeitraum nach 2010 bestätigt. Zusammenfassend lässt sich sagen, dass es schwierig ist, genug Leistung zu erzielen, wenn man (natürlich) nur auf die langfristige Zu- und Abnahmerate setzt. Obwohl Geschicklichkeit4 ein sehr guter Index zu sein scheint, ist der Validierungszeitraum2 tatsächlich nur der rote Rahmenteil in der folgenden Abbildung. 17.png

Aufgrund dieser Überprüfung halte ich es für eine sehr schwierige Aufgabe, wöchentlich ein stabiles Modell zu erstellen. Um dies zu durchbrechen, habe ich mit ROUND211 ein Pilotmodell vorgestellt. Es ist ein Modell zur Überprüfung des Verhaltens, und ich erwarte nicht viele Ergebnisse.

(Hinzugefügt am 29. Mai 2020) Ich habe einen Kommentar erhalten, dass das von ROUND212 eingeführte Monitormodell extrem stark ist, daher werde ich es erklären. UKI_MONITOR1 ist noch eine kurze Zeit nach dem Einreichen des Modells, aber es scheint, dass die neueste Leistung sicherlich ausgezeichnet ist (siehe Abbildung unten). 22.png

Zusammenfassend ist UKI_MONITOR1 nur Geschicklichkeit7 (aber multipliziert mit Minus). Der Code lautet wie folgt. Es ist nur auf einen Wert zwischen 0,4 und 0,6 skaliert.

tournament_data["prediction"] = -tournament_data["feature_dexterity7"]

Der Grund dafür ist, dass Geschicklichkeit7 (oder Geschicklichkeit4) die höchste Varianz aller Merkmale darstellt und wesentlich ist, um die Vorhersageleistung (dh Korrelation) des Modells zu steigern. Da dieser Index jedoch eine große Zeitabhängigkeit aufweist und ein hohes Risiko besteht, ihn einfach in das Modell aufzunehmen, haben wir uns entschlossen, das Verhalten vorerst zu beobachten. Benutzer, die kürzlich eine hohe Vorhersageleistung erzielt haben, profitieren von Geschicklichkeit 7, aber wir glauben, dass es wahrscheinlich ist, dass ihre Leistung in Zukunft erheblich beeinträchtigt wird. In einem solchen Fall sollte dieser Monitor zur Faktorisolierung nützlich sein.

Um die Wahrheit zu sagen, habe ich darüber nachgedacht, diesen Monitor für alle Funktionen von 310 zu entwickeln, aber ich mochte ihn nicht, weil er die Bedienung stören und nicht sehr beliebt sein würde. Die Leser werden außerdem aufgefordert, Monitore in Mengen herzustellen, die im Rahmen des gesunden Menschenverstandes liegen.

abschließend

Wie ist das? Dieser Artikel bietet einen Überblick über Numerai, Turniere, Belohnungsstrukturen und Datensätze. Der Datensatz von Numerai wird von einem auf Finanz-M / L spezialisierten Berater überwacht, was ihn zu einem großartigen Thema außerhalb von Kaggle für das praktische Erlernen von Finanz-M / L macht. Es gibt auch reichlich Belohnungen. Das Schlachtfeld für diejenigen, die an der Finanzierung von M / L beteiligt sind, ist hier.

Beginnen wir mit Numerai.

Referenzartikel

Aktienkursprognose durch maschinelles Lernen "I" Aktienkursprognose durch maschinelles Lernen Iroha no "ro"

Recommended Posts

Aktienkursprognose durch maschinelles Lernen Beginnen wir mit Numerai
Aktienkursprognose durch maschinelles Lernen Numerai Signals
Aktienkurs Prognose durch maschinelles Lernen ist so wahr, Numerai Signale
Aktienkursprognose mit maschinellem Lernen (Scikit-Learn)
Aktienkursprognose mit maschinellem Lernen (Return Edition)
Python & Machine Learning Study Memo ⑦: Aktienkursprognose
Beginnen Sie mit dem maschinellen Lernen mit SageMaker
Aktienkursprognose mit Deep Learning (TensorFlow)
Versuchen Sie, den Strombedarf durch maschinelles Lernen vorherzusagen
Aktienkursprognose mit Deep Learning (TensorFlow) -Teil 2-
Angemessene Preisschätzung von Mercari durch maschinelles Lernen
Aktienkursprognose mit Deep Learning [Datenerfassung]
Ist es möglich, mit Aktienkursprognose durch maschinelles Lernen zu essen [Umsetzungsplan]
Aktienkursprognose 2 Kapitel 2
Aktienkursprognose 1 Kapitel 1
Aktienkursprognose mit Tensorflow
Python: Aktienkursprognose Teil 2
Holen Sie sich Lager mit Python
4 [/] Vier Arithmetik durch maschinelles Lernen
Python: Aktienkursprognose Teil 1
Vorhersage von Aktienkursänderungen mithilfe von Metallkennzeichnung und zweistufigem maschinellem Lernen
Zusammenfassung des maschinellen Lernens von Python-Anfängern
[Python] Meine Aktienkursprognose [HFT]
Ist es möglich, mit Aktienkursvorhersage durch maschinelles Lernen zu essen [Maschinelles Lernen Teil 1]
Aktienerfassungscode durch Schaben (Selen)
[Fehler] Finde Maki Horikita durch maschinelles Lernen
Vier Betriebsregeln mit maschinellem Lernen 6 [Kommerziell]
Aktienprognose mit TensorFlow (LSTM) ~ Aktienprognose Teil 1 ~
Python & maschinelles Lernen Lernnotiz Machine: Maschinelles Lernen durch Rückausbreitung
[Blender x Python] Beginnen wir mit Blender Python !!