(03.02.2019, 15:04)Lancelot schrieb: Aber kompletter Mist ist das IMHO nicht.
Doch, ist es (falls es überhaupt ernst gemeint war).
Er sagt ja zuerst:
construct a large, suitably leveraged, market-neutral equity portfolio and then
systematically expand it in the morning and contract it in the afternoon
Bei marktneutral kann man den Index aber nicht nach oben treiben. Außerdem müsste man sich absprechen, damit alle in dieser "Konspiration" die gleichen Aktien entweder long oder short gehen, sonst arbeitet man ja gegeneinander.
Also geht nur ein long Portfolio.
Man kauft also alles in der opening auction und stellt in der closing auction wieder glatt. Da Letztere viel höheres Volumen hat als Erstere, sollte man den Preis netto nach oben bewegen und dabei etwas Geld verlieren, was durch den gestiegenen Buchwert eines großen Depots überkompensiert wird.
Das ganze ähnelt "window dressing" am Jahresende und ist also das Gegenteil dessen, was ein größerer Trader normalerweise will: möglichst keine Slippage (kleine Konten haben das Problem ja eh nicht).
Warum dann aber ausgerechnet die opening auction? Die ist ja immer noch viel liquider als der Handel nach der Mittagsauktion, da könnte man viel leichter den Markt hochkaufen und hätte auch ein kleineres Kursrisiko bis zur closing auction.
Und warum nimmt der Autor ausgerechnet den nasdaq composite (^IXIC) statt nasdaq100 (^NDX)? Großinvestoren investieren doch in den ^NDX, aber da ist die Anomalie von 1993 bis 2002 erstaunlicherweise nicht vorhanden (siehe Anhang).
Hier ist sein code https://bruceknuteson.github.io/spy-day-and-night/
da sind Sachen drin, die schon in python 2 abgekündigt wurden, deshalb habe ich das mal in python 3 gemacht, außerdem wollte ich eine Aufteilung in Punkten statt Renditen, um den unteren Zweig mal genauer zu betrachten (mehr dazu später):
Code:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#import csv
SYMBOL = '^IBEX'
"""
expects index daily data from Yahoo Finance in working directory
ignores capital adjustments (use only index data, e.g., "^NDX.csv")
plots intraday and overnight chart and sum of both
"""
df = pd.read_csv(SYMBOL+'.csv', sep=",", header=0,
parse_dates=['Date'],
index_col= 0, verbose=True, na_values=['null'],
usecols=["Date","Open","Close","Adj Close"])
intra_sum = 0
for index, row in df.iterrows():
intra = row['Close'] - row['Open']
if not np.isnan(intra): #skip empty cols
intra_sum += intra
row['Adj Close'] = intra_sum
plt.grid(which='both')
plt.plot(df.index, df["Close"], label=SYMBOL+' close')
plt.plot(df.index, df["Close"]-df["Adj Close"], label='overnight')
plt.plot(df.index, df["Adj Close"]-min(df["Adj Close"])+100, label='intraday') # avoid singularities when switching to log axis
plt.legend(loc='upper left')
plt.show()
Das csv file müsst ihr manuell von yahoo runterladen.
Die intraday Kurve musste ich anheben, um auch auf eine logarithmische Darstellung umschalten zu können (geht mit "L").