Vergleichen Sie die nächtliche Rendite und die tagsüber stattfindende Rendite des durchschnittlichen Aktienkurses von Nikkei mit Python

Einführung.

Einen Monat nach dem Koronaschock, der Investoren aus aller Welt entlassen hat, gibt es allmählich zunehmende Stimmen, die die erste Welle erreicht hat. image.png Was den Anlegern übrigens Angst macht, ist die "Nacht", wenn sie schlafen. Selbst wenn der Handel an der Tokioter Börse geschlossen ist, werden Nikkei Average Futures während der Londoner und New Yorker Zeit aktiv an der Osaka Stock Exchange (sog. OSE) und an der Chicago Mercantile Exchange gehandelt. Es ist nicht ungewöhnlich, dass der Aktienkurs nachts sinkt, ohne es zu wissen ... wenn Sie morgens aufwachen ** "Ohagyaa!" **. Ich habe mich hier gefragt, aber für "mittel- bis langfristige Anleger", die ihre Positionen nachts übertragen, ist der aktuelle Markt möglicherweise ein Tiefpunkt und ein guter Verhandlungspunkt, aber Daytrader, die ihre Positionen nachts nicht übertragen. Die Welt, in der Sie sehen können, kann völlig anders sein. Dieses Mal werde ich die stündlichen Daten des durchschnittlichen Nikkei-Aktienkurses mithilfe der Python-API ** MT5 ** herunterladen, die von Tageshändlern auf der ganzen Welt verwendet wird, und die Beziehung zwischen der nächtlichen Eröffnungsrendite und der Tagesrendite des durchschnittlichen Nikkei-Aktienkurses analysieren Ich tat.

Nikkei durchschnittlicher Aktienkurs am 27. März 2020

Wie eingangs erwähnt, sind die Zeitspannen für mittel- bis langfristige Anleger und Daytrader völlig unterschiedlich, sodass auch das Bild des „Anstiegs“ des durchschnittlichen Aktienkurses von Nikkei am 27. März 2020 sehr unterschiedlich ist. Insbesondere ist es für Daytrader nicht ungewöhnlich, den Tag als "GU (Gap Up) & Close-Up" zu betrachten, obwohl dies für mittel- bis langfristige Anleger ein "Anstieg" war. Es gibt kein.

Nikkei durchschnittlicher Aktienkurs am 27. März 2020 aus Sicht mittel- bis langfristiger Anleger

Vom Schlusskurs von 18.832,21 Yen am Vortag bis 19.389,43 Yen am Tag des Tages ** Ein starker Anstieg von fast 600 Yen! ** **. image.png

Nikkei durchschnittlicher Aktienkurs am 27. März 2020, wie vom Dattelhändler gesehen

Ab dem Eröffnungskurs von 19.021,97 Yen am Tag betrug das Ende der vorderen Sitzung 18.901,46 Yen, ein Rückgang von fast 100 Yen, und dann begann der Rückmarkt bei 19.045,80 Yen, und um 15:00 Uhr, als der Daytrader die Position schloss, stieg er um etwa +100 Yen auf 19.176,30 Yen. ** Es war ein fast flacher Tag für Tageshändler. ** **. image.png

Lassen Sie uns mit Python analysieren!

Wussten Sie, was Sie aus dem obigen Beispiel analysieren möchten? Laden Sie dann sofort die stündlichen Daten (= 24 Stunden x 252 Werktage / Jahr x 3 Jahre) für die letzten 3 Jahre vom Broker über MT5 herunter und ** schließen Sie die Rückgabe (= schließen Sie den Tag zuvor → schließen Sie den Tag) ** und * * Lassen Sie uns die Beziehung zwischen Tagesrenditen untersuchen (= nahe am Tag → nahe am Tag) **.

# set time index to raw bar data
def time_set(rate):
    rate_time = rate.dropna(how='all', axis='index').reset_index()
    rate_time['time'] = pd.to_datetime(rate_time['time'], unit='s')
    rate_time = rate_time.set_index('time')
    return rate_time

# specify symbol to research
symbol = 'JP225Cash'

# get bar data from MT5
mt5.initialize()
_rate = pd.DataFrame(mt5.copy_rates_from_pos(symbol, mt5.TIMEFRAME_H1, 0, 24 * 252 * 3)).set_index('time')
mt5.shutdown()

rate = time_set(_rate)
# XM: GMT+3, JP: GMT+9, diff = 6
rate.index = [x + relativedelta(hours=6) for x in rate.index]
rate_open = rate[rate.index.hour == 9]['open']
rate_close = rate[rate.index.hour == 15]['close']
rate_close.index = [x - relativedelta(hours=6) for x in rate_close.index]
rate_TK = pd.concat([rate_open, rate_close], axis='columns')
rate_TK.columns = ['open', 'close']
rate_TK['close to open'] = (rate_TK['open'] / rate_TK['close'].shift(1) - 1) * 100
rate_TK['open to close'] = (rate_TK['close'] / rate_TK['open'] - 1) * 100
rate_TK['close to close'] = (rate_TK['close'] / rate_TK['close'].shift(1) - 1) * 100
rate_TK = rate_TK.dropna()

sns.jointplot('close to open', 'open to close', rate_TK)
plt.show()

Analyseergebnis (ganzer Zeitraum)

Die horizontale Achse ist die engere Rückkehr und die vertikale Achse ist die schließende Rückkehr. image.png Zunächst sehen Sie ungefähr drei Trends.

  1. Im Bereich von ± 1σ (** Random Walk **) ist keine Tendenz zu erkennen.
  2. Wenn die beiden Bereiche (± 1σ bis ± 2σ) in der Mitte, die vom roten Rahmen umgeben sind, eine große positive oder negative Rendite aufweisen, schwankt auch die Tagesrendite (** Volatilitätscluster **).
  3. Wenn die Rendite im Bereich ganz links (-2σ oder weniger) sinkt, umgeben von dem roten Rahmen und der gelben Markierung, ist die Rückkehr am Tag sehr positiv (** Nichigin gun? **). Wenn Sie eine Strategie entwickeln möchten, sollten Sie in 3 auf die japanische Silberpistole zielen. Es gibt jedoch zu wenige Proben (nur zweimal in den letzten 3 Jahren), und die Reproduzierbarkeit bleibt ungewiss. Der Inhalt des vorherigen Beitrags (Vorhersage des Shanghai Comprehensive Stock Index unmittelbar nach dem Absturz mit Python) hat jedoch etwas gemeinsam (es gibt mehr oder weniger autonome Abstoßung, nachdem zu viel gesenkt wurde)!

Übrigens scheint das Publikum nach der bisherigen Analyse eine solche Stimme zu hören. ** "Gibt es mittelfristig keinen großen Bedeutungsunterschied zwischen dem Aufwärtstrend und dem Abwärtstrend?" ** ** "Ist der Aufwärtstrend im Abwärtstrend (die derzeitige Situation) nicht ein starker Aufwärtstrend aufgrund profitabler Verkäufe?" ** Das könnte stimmen. Lassen Sie uns nun dieselbe Analyse für zwei Fälle durchführen, in denen die durchschnittliche 3-Monats-Rendite positiv (Aufwärtstrend) und negativ (Abwärtstrend) ist.

# calc 3M average return
rate_TK['3M Mean'] = rate_TK['close to close'].rolling(63).mean()
# split 2 cases: up trend / down trend
rate_TK_3MUP = rate_TK[rate_TK['3M Mean'] >= 0]
rate_TK_3MDN = rate_TK[rate_TK['3M Mean'] < 0]
# plot
sns.jointplot('close to open', 'open to close', rate_TK_3MUP)
plt.show()
sns.jointplot('close to open', 'open to close', rate_TK_3MDN)
plt.show()

Analyseergebnis (Aufwärtstrendperiode begrenzt)

Die Landschaft hat sich sehr verändert! Ich meine, es gibt keine klare Tendenz. Mit anderen Worten, es ist schwierig, die Tagesrendite vorherzusagen, selbst wenn man sich die nahe Rendite ansieht. ** Es gibt Gerüchte, dass der Aktienkurs in Tokio (= Nikkei-Durchschnitt) fällt und in NY (= Dow) usw. steigt, aber es gibt Gerüchte, dass er auf dem Markt geflüstert wird, aber die tatsächlichen Daten auf diese Weise verwendet Wenn Sie es analysieren, werden Sie feststellen, dass es nicht so einfach ist. ** **. Tatsächlich scheint es in der Strategie "Tokyo Time - NY Time Anomaly", zumindest auf dem Aufwärtstrendmarkt, schwierig zu sein, Gewinne zu erzielen, indem nur am Intraday der Tokyo Time gehandelt wird, ohne die Position nachts zu übertragen. image.png

Analyseergebnis (Abwärtstrendperiode begrenzt)

Die Ergebnisse über den gesamten Zeitraum sind hier dargestellt. Immerhin ** Geht der Händler mit dem hohen Verdienst nicht auf die Jagd, ohne die heftige Abstoßung am Kamin im Abwärtstrend zu verpassen? ** **. image.png

Wie viel vom Anstieg des Marktes hat in erster Linie zur Zeit in Tokio beigetragen?

Betrachten wir hier zwei Anlagemuster.

  1. KAUFEN & HALTEN Sie den durchschnittlichen Aktienkurs von Nikkei für 3 Jahre (nennen wir dies ** Global Economic Buying Strategy **).
  2. Wiederholen Sie den Kauf und Halten des durchschnittlichen Nikkei-Aktienkurses für Tokio-Zeit nur für 3 Jahre (nennen wir dies ** Abenomics-Kauf- und Haltestrategie **). Es ist eine ziemlich grobe Denkweise, dass sie die japanische Wirtschaft widerspiegelt, weil es die Bewegung der Tokioter Zeit ist, aber ich beabsichtige nicht, die Auswirkungen der japanischen Wirtschaftsmaßnahmen hier ernsthaft zu messen, aber ** Daytrader sind auf die Tokioter Zeit beschränkt. Ich würde gerne wissen, wie sehr Sie die Vorteile des Anstiegs des Gesamtmarktpreises genießen können, wenn Sie den durchschnittlichen Aktienkurs von Nikkei kaufen und halten. Wenn der Anstieg der Aktienkurse auf die Erholung der japanischen Wirtschaft zurückzuführen ist, möchte ich Sie bitten, ihn in der Abenomics-Kauf- und Haltestrategie in 2 anzuheben.
# Global v.s. Abenomics
Buy_and_Hold = ((1 + rate_TK['close to close'] / 100).cumprod() - 1) * 100
Tokyo_time = ((1 + rate_TK['open to close'] / 100).cumprod() - 1) * 100

# plot
Buy_and_Hold.plot(legend='B&H')
Tokyo_time.plot(legend='TK time B&H')
(Tokyo_time - Buy_and_Hold).plot(kind='area', stacked=False)
plt.title('cumulative return')
plt.show()

Hier ist eine grafische Darstellung der kumulierten Rendite jeder Strategie, die mit dem obigen Code berechnet wurde. image.png Das blaue Close-to-Close ist die kumulative Rendite der globalen wirtschaftlichen Buy-and-Hold-Strategie, das orangefarbene Open-to-Close ist die kumulative Rendite der Avenomics-Buy-and-Hold-Strategie und der grüne Bereich ist die Differenz zwischen den beiden strategischen Renditen (Avenomics Return-World Economic Return). Wenn Sie es so betrachten, können Sie sehen, warum die Abenomics-Kauf- und Haltestrategie nicht aufgegeben wird, oder ** Ist es nicht viel besser, nur tagsüber zu kaufen und zu halten, als sie nachts zu übertragen? Ist es nicht gut, Risiken zu vermeiden? ** **. In den letzten drei Jahren wurde der größte Teil des Anstiegs des durchschnittlichen Aktienkurses von Nikkei nachts verursacht, aber im letzten Jahr hat sich der Unterschied allmählich verringert. ** Im Corona-Schock ist die Kaufstrategie für Avenomics schließlich die Weltwirtschaft. Sie sehen, dass die Kaufstrategie deutlich übertroffen wurde **! Herr Abe, ich werde es tun (?).

Zusammenfassung

Recommended Posts

Vergleichen Sie die nächtliche Rendite und die tagsüber stattfindende Rendite des durchschnittlichen Aktienkurses von Nikkei mit Python
Zeichnen Sie den Nikkei Average Stock Index mit Pandas
Ein Memo mit Python2.7 und Python3 in CentOS
Laden Sie mit Python Dateien im Web herunter
Setzen Sie Cabocha 0.68 in Windows ein und versuchen Sie, die Abhängigkeit mit Python zu analysieren
Installieren Sie OpenCV 4.0 und Python 3.7 unter Windows 10 mit Anaconda
Vergleichen Sie die Geschwindigkeit von Python Append und Map
Vergleichen Sie die XML-Parsing-Geschwindigkeiten mit Python und Go
Einführung in Python mit Atom (unterwegs)
Archivieren und komprimieren Sie das gesamte Verzeichnis mit Python
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
[CGI] Führen Sie das Server-Python-Programm mit Vue.js + axios aus und rufen Sie die Ausgabedaten ab
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
Hinweise zur HDR- und RAW-Bildverarbeitung mit Python
Installieren Sie Selenium auf Ihrem Mac und probieren Sie es mit Python aus
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Automatisches Folgen auf Twitter mit Python und Selen! (RPA)
Erhalten Sie Kommentare auf Youtube Live mit [Python] und [Pytchat]!
Informationen zur Steuerung von Motoren mit Python auf RaspberryPi
Installieren Sie die neueste stabile Version von Python mit pyenv (sowohl 2 als auch 3).
E-Mail Hipchat mit Postfix, Fluentd und Python auf Azure
Automatisieren Sie Chrome mit Python und Selen auf Ihrem Chromebook
Installieren Sie django auf Python + Anaconda und starten Sie den Server
Holen Sie sich die passende Zeichenfolge in den regulären Ausdruck und verwenden Sie sie beim Ersetzen unter Python3 erneut
Die erste künstliche Intelligenz. Tensorflow unter CentOS7.0. Separat entwickelt für die Python3.5-Serie und die Python2.7-Serie mit virtualenv.
So kratzen Sie mit Python den Aktienkurs einer einzelnen Aktie von der Nikkei Shimbun-Website
Setzen Sie Ubuntu in Raspi ein, setzen Sie Docker darauf und steuern Sie GPIO mit Python aus dem Container
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
Vergleichen Sie HTTP GET / POST mit cURL (Befehl) und Python (Programmierung).
Ich habe die Strategie des Aktiensystemhandels mit Python evaluiert.
IP-Spoof mit tor unter macOS und mit Python prüfen
Testen Sie Python mit Miniconda unter OS X und Linux mit travis-ci
Greifen Sie mit python27 / pyodbc auf dem Container auf den SQL Server des Hosts zu
Löse das Spiralbuch (Algorithmus und Datenstruktur) mit Python!
Vergleichen Sie Anmeldekennwörter durch Hashing mit der Hash-Bibliothek der Standardbibliothek
Hinweise zum Bereitstellen von pyenv mit Homebrew und zum Verwalten von Python-Versionen
Speichern Sie Bilder im Web mit Python (Colab) auf einem Laufwerk.
Spielen Sie mit dem Passwortmechanismus von GitHub Webhook und Python
[Aktienkursanalyse] Nikkei durchschnittliches Pandas-Lernen (005: Gruppierung nach Jahr / Jahr - Bestätigung statistischer Informationen)
Aktienkurs mit "neuer Corona" gesunken? Ich habe versucht, den durchschnittlichen Aktienkurs von Nikkei durch Web-Scraping zu ermitteln
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Python auf Ruby und wütend Ruby auf Python
Vergleichen wir die Python-Array-ähnlichen Typen
Schaben Nikkei Durchschnitt mit Dramatiker-Python
Rufen Sie die API mit python3 auf.
Python mit Pyenv und Venv
Holen Sie sich Lager mit Python
Funktioniert mit Python und R.
Lebensspiel mit Python [ich habe es geschafft] (auf Terminal & Tkinter)
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Wie ist der Fortschritt? Lassen Sie uns mit dem Boom in Python weitermachen
Steuern Sie den Motor mit einem Motortreiber mit Python auf Raspberry Pi 3!
Erste Schritte mit dem Python-Framework Django unter Mac OS X.
Erstellen Sie mit Python und GAS Termine für AtCoder-Wettbewerbe in Google Kalender
Erstellen Sie eine 64-Bit-Python 2.7-Umgebung mit TDM-GCC und MinGW-w64 unter Windows 7
Fehler und Lösung bei der Installation von Python3 mit Homebrew auf einem Mac (Catalina 10.15)
IME On / Off wird in Zusammenarbeit mit Python und Arduino durch LED angezeigt
Installieren Sie OpenCV2.4 (+ Python) schnell unter OS X und probieren Sie das Beispiel aus
Erstellen Sie mit Python3 + Falcon eine REST-API, die die aktuelle Uhrzeit zurückgibt