
Finden Sie hoch bewegende Bestände, bevor sie sich mit Anomalie -Erkennung und maschinellem Lernen bewegen. Überrascher verwendet maschinelles Lernen, um die Volumen + Preisaktion zu betrachten und ungewöhnliche Muster zu schließen, was zu großen Bewegungen bei Aktien führen kann.
| Weg | Beschreibung |
|---|---|
| Überraschender | Hauptordner. |
| └ Wörterbücher | Ordner zum Speichern von Datenwörterbüchern für die spätere Verwendung. |
| └ Zahlen | Zahlen für diese Github -Repositories. |
| └ Aktien | Liste aller Aktien, die Sie analysieren möchten. |
| Data_loader.py | Modul zum Laden von Daten aus Yahoo Finance. |
| Erkennung_Engine.py | Hauptmodul für die Ausführung von Anomalie -Erkennung von Daten und das Auffinden von Aktien mit den ungewöhnlichsten Preis- und Volumenmustern. |
| feature_generator.py | Generiert Preis- und Volumenrückgaberückgaben sowie viele technische Indikatoren. |
Sie müssen das folgende Paket installieren, um die Modelle zu trainieren und zu testen.
Sie können alle Pakete über den folgenden Befehl installieren. Bitte beachten Sie, dass das Skript mit Python3 geschrieben wurde.
pip install -r requirements.txt
Sie können auch Docker verwenden, wenn Sie wissen, was es ist, und wissen, wie man es benutzt. Hier sind die Schritte, um das Tool mit Docker auszuführen.
docker build . -t surpriver<C:\path\to\this\dir> durch das Verzeichnis, in dem Sie arbeiten.docker-compose up -d ausführen.docker exec -it surpriver in Ihre Befehlszeile vorbereiten.Wenn Sie fortfahren und direkt die anomalsten Aktien für heute erhalten möchten, können Sie den folgenden Befehl einfach ausführen, um die Aktien mit den ungewöhnlichsten Mustern zu erhalten. Wir werden in den folgenden Abschnitten tiefer in den Befehl eintauchen.
python detection_engine.py --top_n 25 --min_volume 5000 --data_granularity_minutes 60 --history_to_use 14 --is_load_from_dictionary 0 --data_dictionary_path 'dictionaries/data_dict.npy' --is_save_dictionary 1 --is_test 0 --future_bars 0
Mit diesem Befehl erhalten Sie die 25 besten Aktien , die in den letzten 14 Bars von 60 Minuten Kerzen den höchsten Anomaliewert hatten. Es wird auch alle Daten gespeichert, mit denen Vorhersagen im Ordner Wörterbücher/data_dict.npy getroffen wurden. Unten finden Sie eine detailliertere Erklärung für jeden Parameter.
python detection_engine.py --top_n 25 --min_volume 5000 --data_granularity_minutes 60 --history_to_use 14 --is_load_from_dictionary 1 --data_dictionary_path 'dictionaries/data_dict.npy' --is_save_dictionary 0 --is_test 0 --future_bars 0 --output_format 'CLI'
Beachten Sie die Änderung in IS_SAVE_Dictionary und is_load_from_dictionary .
Hier ist eine Ausgabe, wie eine einzige Vorhersage aussieht. Bitte beachten Sie, dass negative Bewertungen höhere anomale und ungewöhnliche Muster anzeigen, während positive Werte normale Muster anzeigen. Je niedriger desto besser .
Last Bar Time: 2020-08-25 11:30:00-04:00
Symbol: SPI
Anomaly Score: -0.029
Today Volume (Today = Date Above): 313.94K
Average Volume 5d: 206.53K
Average Volume 20d: 334.14K
Volatility 5bars: 0.013
Volatility 20bars: 0.038
Future Absolute Sum Price Changes: 72.87
Wenn Sie der Verwendung von maschinellem Lernen und künstlicher Intelligenz beim Handel misstrauisch sind, können Sie die Vorhersagen aus diesem Tool über historische Daten tatsächlich testen. Die beiden wichtigsten Befehlszeilenargumente für das Testen sind IS_test und Future_Bars . Wenn der erstere auf 1 gesetzt ist und der spätere auf etwas mehr als 5 eingestellt ist, hinterlässt das Tool diese Datenmenge tatsächlich für Analysezwecke und verwendet die Daten vor diesem für anomale Vorhersagen. Als nächstes wird es sich mit diesen verbleibenden Daten befassen, um zu sehen, wie gut die Vorhersagen funktionierten. Hier ist ein Beispiel für ein Streudiagramm aus dem folgenden Befehl.
python detection_engine.py --top_n 25 --min_volume 5000 --data_granularity_minutes 60 --history_to_use 14 --is_load_from_dictionary 0 --data_dictionary_path 'dictionaries/data_dict.npy' --is_save_dictionary 1 --is_test 1 --future_bars 25
Wenn Sie das Datenwörterbuch bereits generiert haben, können Sie den folgenden Befehl verwenden, bei dem wir is_load_from_dictionary auf 1 und is_save_dictionary auf 0 festgelegt haben.
python detection_engine.py --top_n 25 --min_volume 5000 --data_granularity_minutes 60 --history_to_use 14 --is_load_from_dictionary 1 --data_dictionary_path 'dictionaries/data_dict.npy' --is_save_dictionary 0 --is_test 1 --future_bars 25

Wie Sie im obigen Bild sehen können, haben die anomalen Aktien (Score <0) in der Regel in Zukunft eine höhere absolute Veränderung. Dies beweist, dass die Vorhersagen tatsächlich für die Aktien der Aktien gelten, die sich in den nächsten Stunden/Tagen mehr als durchschnittlich bewegten. Eine Frage stellt sich hier: Was ist, wenn das Tool nur die höchsten Volatilitätsaktien auswählt, da diese eine hohe zukünftige absolute Veränderung erzielen würden. Um zu beweisen, dass dies nicht der Fall ist, ist hier die detailliertere Beschreibung der Statistiken, die Sie aus dem obigen Befehl erhalten.
--> Future Performance
Correlation between future absolute change vs anomalous score (lower is better, range = (-1, 1)): **-0.23**
Total absolute change in future for Anomalous Stocks: **89.660**
Total absolute change in future for Normal Stocks: **43.000**
Average future volatility of Anomalous Stocks: **0.332**
Average future volatility of Normal Stocks: **0.585**
Historical volatility for Anomalous Stocks: **2.528**
Historical volatility for Normal Stocks: **2.076**
Sie können sehen, dass die historische Volatilität für normale und anomale Aktien nicht so unterschiedlich ist. Der Unterschied in der absoluten zukünftigen Veränderung ist jedoch im Vergleich zu normalen Aktien doppelt so hoch wie bei anomalen Aktien.
Sie können nun angeben, welche Datenquelle Sie verwenden möchten, zusammen mit der Liste der Aktien, die Sie verwenden möchten.
python detection_engine.py --top_n 25 --min_volume 500 --data_granularity_minutes 60 --history_to_use 14 --is_load_from_dictionary 0 --data_dictionary_path 'dictionaries/feature_dict.npy' --is_save_dictionary 1 --is_test 0 --future_bars 0 --data_source binance --stock_list cryptos.txt
Wir werden versuchen, jede Woche die Top 25 Ergebnisse für einen einzelnen Parametersatz zu veröffentlichen.
The tool only finds stocks that have some unusual behavior in their price and volume action combined. It does not predict which direction the stock is going to move. Das könnte eine Funktion sein, die ich in Zukunft implementieren werde, aber im Moment müssen Sie sich die Diagramme ansehen und Ihre DD erledigen, um das herauszufinden.
A product by Tradytics
Copyright (c) 2020-present, Tradytics.com