Dreiminütige Einführung in die Quantifizierung (1): Erfassung von Marktdaten und Zeichnen von Candlestick-Charts

Wie kann man schnell mit der Quantifizierung beginnen? Es gibt viele Lehrbücher zum quantitativen Lernen auf dem Markt, die zu kompliziert sind. Nachdem ich es eine Minute lang gelesen habe, möchte ich aufgeben. Gibt es einen einfachen und schnellen Weg?

Hallo, ich bin Edamame. Ich wurde eingeladen, ein Einführungs-Tutorial zur Quantifizierung zu erstellen, bei dem die einfachsten Codes und Fälle verwendet werden, um Ihnen einen schnellen Einstieg in die Quantifizierung zu ermöglichen. Der Inhalt jeder Ausgabe wird innerhalb von 3 Minuten kontrolliert und nur die trockensten Güter werden besprochen. Freunde, die Quantifizierung lernen möchten, aber nicht wissen, wie sie schnell damit beginnen können, schauen Sie hier!

Phase 1: Einführung in die Beschaffung von Finanzdaten und das Zeichnen von Candlestick-Diagrammen. Maodou wird diese Serie jedes Wochenende aktualisieren. Es wird empfohlen, sie zu sammeln, um das Lernen zu erleichtern.

1. Erhalten Sie historische Marktdaten

Die Datenerfassung ist der erste und wesentliche Schritt jeder weiteren Datenanalyse!

1. Datenquelle

Hier wird die Tushare-Datenbank verwendet. Tushare ist ein kostenloses Open-Source-Python-Finanzdatenschnittstellenpaket. Python, Pandas und lxml müssen vor der Verwendung installiert werden.

lxml-Installationsanleitung: pip install lxml

Dann installieren Sie tushare über den pip-Befehl: pip install tushare

Wenn Sie nicht wissen, wie man installiert, können Sie auch die offizielle Dokumentation lesen: http://tushare.org/

2. Erhalten Sie die historischen Marktdaten der Aktie

tushare bietet zwei Schnittstellen, get_hist_data und get_k_data, um historische Marktpreise zu erhalten.

get_k_data gibt nur Eröffnungskurs, Schlusskurs, niedrigsten Preis, höchsten Preis und Volumendaten zurück;

Auf der Grundlage des oben Gesagten gibt get_hist_data auch Preisänderungen, Anstieg und Rückgang, den 5./10./20. Durchschnittspreis und das 5./10./20. Durchschnittsvolumen zurück.

Nehmen Sie als Beispiel Cambridge Technology (603083) und verwenden Sie get_k_data, um historische Marktdaten seit diesem Jahr zu erhalten:

df=ts.get_k_data('603083',start='2023-01-01',end='2023-05-12')
df.tail()

gibt wie folgt zurück:

Verwenden Sie get_hist_data, um historische Marktdaten seit diesem Jahr abzurufen:​​​​​​

df=ts.get_hist_data('603083',start='2023-01-01',end='2023-05-12')
df.head()

gibt wie folgt zurück:

3. Erhalten Sie die historischen Marktdaten des Index

Die Indexdaten werden auf die gleiche Weise ermittelt, die Fluktuationsrate wird jedoch nicht zurückgegeben.

Verwenden Sie get_k_data, um die historischen Marktdaten des Shanghai Composite Index für dieses Jahr abzurufen:

df=ts.get_k_data('sh',start='2023-01-01',end='2023-05-12')
df.tail()

gibt wie folgt zurück:

Verwenden Sie get_hist_data, um die historischen Marktdaten des Shanghai Composite Index für dieses Jahr zu erhalten:

df=ts.get_hist_data('sh',start='2023-01-01',end='2023-05-12')
df.head()

gibt wie folgt zurück:

Hier wird die Marktdatenerfassung vorgestellt. Da die Tushare-Datenbank auf die Tushare-Pro-Version aktualisiert wurde, müssen Sie das Tushare-Pro-Konto verwenden, wenn Sie mehr Datenschnittstellen verwenden möchten. Maodou wird es Ihnen später vorstellen.

2. Zeichnen Sie das K-Linien-Diagramm

Die Methode Candlestick_ochl im Paket mpl_finance wird hauptsächlich zum Zeichnen des Candlestick-Diagramms verwendet. Wenn das Paket mpl_finance nicht installiert ist, wird es auch zuerst über den Befehl pip installiert. Import nach der Installation:​​​​​​​​

import mpl_finance as mpf
import datetime
import tushare as ts
import matplotlib.pyplot as plt
from matplotlib.pylab import date2num
import numpy as np

Wenn wir beispielsweise dieses Jahr das K-Linien-Diagramm von Cambridge Technology und Shanghai Stock Exchange Index zeichnen möchten, verwenden Sie zunächst die Schnittstelle get_k_data, um die K-Linien-Daten abzurufen:

df1=ts.get_k_data('sh',start='2023-01-01',end='2023-05-12')#上证指数
df2=ts.get_k_data('603083',start='2023-01-01',end='2023-05-12')#剑桥科技

Dann konvertieren Sie das Datum in das Zeitstempelformat:

#首先把date列转化为时间戳,保留原date为date1,后面还要用
df1['date1']=df1.date
df2['date1']=df2.date
df1.date=df1.date.apply(lambda x:datetime.datetime.strptime(x,'%Y-%m-%d'))
df1.date=df1.date.apply(lambda x:date2num(x))
df2.date=df2.date.apply(lambda x:datetime.datetime.strptime(x,'%Y-%m-%d'))
df2.date=df2.date.apply(lambda x:date2num(x))
#然后按顺序取date,open,close,high,low,volume,并转化为数据矩阵的格式
df1_mat=np.array(df1[['date','open','close','high','low','volume']])
df2_mat=np.array(df2[['date','open','close','high','low','volume']])

Lösen Sie das Problem verstümmelter chinesischer Zeichen beim Zeichnen:

#解决中文乱码
#plt.rcParams['font.sans-serif']=['Arial Unicode MS']#用于mac
plt.rcParams['font.sans-serif']=['SimHei']#用于windows
plt.rcParams['axes.unicode_minus'] = False

Der letzte Schritt, Plotten:

#画在1张图上,分2个子图
plt.figure(figsize=(14,10))
plt.subplots_adjust(hspace=0.45)#调整子图间距
ax1=plt.subplot(2,1,1)
ax1.grid(True)
ax1.xaxis_date()
mpf.candlestick_ochl(ax1,df1_mat,colordown='#53c156', colorup='#ff1717',width=0.3,alpha=1)
plt.ylabel("日期",size=20)
plt.xlabel("价格",size=20)
plt.title("上证指数k线图",size=20)
ax2=plt.subplot(2,1,2)
mpf.candlestick_ochl(ax2,df2_mat,colordown='#53c156', colorup='#ff1717',width=0.3,alpha=1)
ax2.grid(True)
ax2.xaxis_date()
plt.ylabel("日期",size=20)
plt.xlabel("价格",size=20)
plt.title("剑桥科技k线图",size=20)
plt.show()

Die Ergebnisse werden wie folgt angezeigt:

Das Obige ist der gesamte Inhalt zum Teilen für heute. Ist das nicht ganz einfach? Maodou wird diese Serie am Wochenende aktualisieren. Natürlich wird sie weiterhin an jedem Handelstag die reale Situation quantitativer Strategien teilen. Denken Sie daran, Maodou weiterhin Aufmerksamkeit zu schenken.

Link zur Wirbelwind-Angriffsstrategie:

Backtest: Beschreibung der Whirlwind Charge-Strategie

Festes Angebot: Strategische Datenwerbung und häufig gestellte Fragen im April

Supongo que te gusta

Origin blog.csdn.net/weixin_37475278/article/details/130661058
Recomendado
Clasificación