Zeitreihendatenanalyse und Tick-Datenrücksicht

Schriftsteller:Gutes, Erstellt: 2019-08-08 10:05:45, Aktualisiert: 2023-10-20 20:11:54

img

Zeitreihenfolge

Eine Zeitreihe ist eine Datenreihe, die in gleichbleibenden Zeiträumen erfasst wird. Bei quantitative Investitionen zeigt sich diese Daten hauptsächlich in der Bewegung von Preisen und der Bewegung von Datenpunkten, an denen die Investitionsmarke verfolgt wird. Zum Beispiel bei einem Aktienpreis, bei dem die Zeitreihe regelmäßig in einem bestimmten Zeitraum aufgezeichnet wird.

img

Man sieht, dass das Datum auf der x-Achse und der Preis auf der y-Achse angezeigt wird. In diesem Fall bedeutet ein stetiger Zeitintervall von 14 Tagen auf der x-Achse: Beachten Sie die Differenz zwischen dem 7. März 2005 und dem nächsten Punkt, dem 31. März 2005, dem 5. April 2005 und dem 19. April 2005.

Wenn Sie jedoch Zeitreihendaten verwenden, werden Sie häufig mehr sehen, als nur diese Daten, die nur zwei Zeilen mit Datum und Preis enthalten. In den meisten Fällen werden Sie Daten verwenden, die fünf Säulen enthalten: Datumszyklus, Öffnungspreis, Höchstpreis, Mindestpreis und Schließpreis. Dies bedeutet, dass, wenn Sie Ihre Datumszyklus auf die Tagesstrahlstufe einstellen, sich die Veränderungen der Preise für den Tag in dieser Zeitreihendaten widerspiegeln.

Was ist Tick-Daten?

Tick-Daten sind die umfassendste Transaktionsdatenstruktur auf einer Börse. Sie sind auch eine erweiterte Form der oben genannten Zeitreihendaten, einschließlich: Öffnungspreis, Höchstpreis, Mindestpreis, neuester Preis, Transaktionsvolumen, Transaktionsvolumen. Wenn man die Transaktionsdaten als einen Fluss vergleicht, sind Tick-Daten die Daten, die der Fluss in einem bestimmten Querschnitt hat.

img

Wie in der Abbildung oben gezeigt, wird jede Bewegung der nationalen Forex-Börsen in Echtzeit in den Markt getrieben. Die inländischen Börsen werden zweimal pro Sekunde überprüft und erzeugen eine Schnappschuss, wenn innerhalb dieses Zeitraums eine Bewegung stattfindet. Im Vergleich dazu kann die Menge an Daten, die mit dem Push-Fall versehen werden, nur als OnTime und nicht als OnTick bezeichnet werden.

Alle Codes und Zeitreihen-Daten dieses Tutorials werden auf der Quantifizierungsplattform der Erfinder erfasst.

Tick-Daten, die von den Erfindern quantifiziert wurden

Obwohl die nationalen Tick-Daten nicht wirklich Tick sind, können mit diesen Daten zumindest unendlich nah und reduziert auf die Realität zurückgeprüft werden. Jeder Tick zeigt die wichtigsten Parameter für das Produkt auf dem Markt zu dieser Zeit und zeigt unseren Code auf der realen Scheibe, der die Theorie 2 Mal pro Sekunde folgt.

img

Darüber hinaus kann die Datenkorrektur in der Quantifizierung der Erfinder auch dann angepasst werden, wenn die Daten für einen 1-Stunden-Zyklus geladen werden, z. B. wenn die Datenkorrektur auf 1 Minute angepasst wird. Zu diesem Zeitpunkt besteht die 1-Stunden-K-Linie aus 1-Minuten-Daten. Natürlich ist die kleinere Größe der Präzision höher.

img

Jetzt haben Sie die grundlegenden Konzepte, die Sie zum Abschluss dieses Tutorials benötigen. Diese Konzepte werden bald wiederkommen und Sie werden später in diesem Tutorial mehr über diese Konzepte erfahren.

Wenn Sie Interesse an diesem Teil haben, wenden Sie sich bitte an:https://www.fmz.com/bbs-topic/1651Weitere Informationen

Arbeitsumfeld einrichten

Die Idee der Trustee, die Sie als Programmierer kennen, ist ein offiziell verpacktes Docker-System, das die öffentlichen API-Interfaces für die verschiedenen Mainstream-Börsen und die technischen Details für die Schlüsselbereiche für die Erstellung und Wiederholung von Strategien umfasst. Die ursprüngliche Absicht des Systems ist es, Quantifizierungs-Händlern zu ermöglichen, sich beim Einsatz der Quantifizierungsplattform von Inventor auf die Erstellung und Gestaltung von Strategien zu konzentrieren, die den Strategieautoren in verpackter Form präsentiert werden, um ihnen viel Zeit und Mühe zu sparen.

  • Einführung eines Hostsystems für die Erfinder-Quantifizierungsplattform

Es gibt zwei Arten, wie Trustees eingesetzt werden können.

A-Methode: Benutzer mieten oder kaufen Server selbst, die auf den großen Cloud-Plattformen wie AWS, Ali Cloud, Digital Ocean und Google Cloud bereitgestellt werden. Der Vorteil ist, dass sowohl die strategische als auch die Systemsicherheit gewährleistet sind.

Der Autor schreibt: "Die meisten Menschen, die in den USA leben, sind nicht in der Lage, sich selbst zu bewegen.https://www.fmz.com/bbs-topic/2848

Methode B: öffentliche Server-Deploymente, die die Quantifizierungsplattform des Erfinders verwenden. Die Plattform bietet drei Standorte in Hongkong, London und Hangzhou, die Benutzer können nach dem Prinzip der Nähe nach dem Standort der Börse, an der sie handeln möchten, bereitgestellt werden.

img

Für Anfänger wird in diesem Artikel Methode B verwendet.

Die spezifische Funktion:登陆FMZ.COMKlicken Sie auf Control Center, Administrator und auf der Administratorseite klicken Sie auf Vermieter.

Ein Passwort eingegeben, erfolgreich eingesetzt, wie in der folgenden Abbildung gezeigt:

img

  • Das Konzept eines Robotersystems und die Beziehung zwischen Trustee

Wie bereits erwähnt, ist ein Host wie ein Docker-System, ein Docker-System wie ein Standard, und wir haben diesen Standard bereitgestellt, und als nächstes müssen wir eine Instanz für diesen Standard erzeugen, die ein Roboter ist.

Es ist ganz einfach, einen Roboter zu erstellen. Nach der Bereitstellung des guten Hosts klicken Sie auf den Bot-Fenster auf der linken Seite, klicken Sie auf den Roboter erstellen, füllen Sie einen Namen in den Namen des Tags ein und wählen Sie aus dem Host den guten Host aus, den Sie gerade bereitgestellt haben.

img

Wir haben unsere Arbeitsumgebung soweit aufgebaut, wie Sie sehen können, sehr einfach und effektiv, mit verschiedenen Funktionen; als nächstes beginnen wir mit der Quantifizierung der Strategie.

Ein einfaches Mittelstrecken-Strategium in Python

Wir haben oben die Konzepte von Zeitreihen-Daten und Tick-Daten erwähnt, und wir verknüpfen die beiden Konzepte mit einer einfachen Mittelstreckenstrategie.

  • Grundsätze für eine einheitliche Strategie

Durch eine langsame Periodisch-Gleichlinie, wie eine 7-tägige, und eine schnelle Periodisch-Gleichlinie, wie eine 3-tägige, zieht man sie auf die gleiche K-Liniengrafik und nennt sie Goldfork, wenn sie über eine schnelle Periodisch-Gleichlinie verläuft. Wenn sie über eine schnelle Periodisch-Gleichlinie verläuft, nennt man sie Todfork.

Die Basis für die Eröffnung der Börse ist, dass Gold-Fork-Key mehr als eine, Toten-Fork-Key mehr als eine und dasselbe ist.

让我们打开FMZ.COMIn der oberen linken Ecke wählen Sie Python. Hier ist der Code für die Strategie, jede Zeile hat eine sehr detaillierte Anmerkung, bitte die Leser langsam zu erkennen.

import types # 导入Types模块库,这是为了应对代码中将要用到的各种数据类型

def main(): # 主函数,策略逻辑从这里开始
    STATE_IDLE = -1 # 标记持仓状态变量
    state = STATE_IDLE # 标记当前持仓状态
    initAccount = ext.GetAccount() #这里用到了现货数字货币交易类库(python版),编写策略时记得勾选上,作用是获得账户初始信息
    while True: # 进入循环
        if state == STATE_IDLE : # 这里开始开仓逻辑
            n = ext.Cross(FastPeriod,SlowPeriod) # 这里用到了指标交叉函数,详情请查看https://www.fmz.com/strategy/21104
            if abs(n) >= EnterPeriod : # 如果n大于等于入市观察期,这里的入市观察期是为了防止一开盘就胡乱开仓。
                opAmount = _N(initAccount.Stocks * PositionRatio,3) # 开仓量,关于_N的用法,请查看官方API文档
                Dict = ext.Buy(opAmount) if n > 0 else ext.Sell(opAmount) # 建立一个变量,用于存储开仓状态,并执行开仓操作
                if Dict :  # 查看dict变量的情况,为下面的日志输出做准备
                    opAmount = Dict['amount']
                    state = PD_LONG if n > 0 else PD_SHORT # PD_LONG和PD_SHORT均为全局常量,分别用来表示多头和空头仓位。
                    Log("开仓详情",Dict,"交叉周期",n) # 日志信息
        else: # 这里开始平仓逻辑
            n = ext.Cross(ExitFastPeriod,ExitSlowPeriod) # 指标交叉函数,
            if abs(n) >= ExitPeriod and ((state == PD_LONG and n < 0) or (state == PD_SHORT and n > 0)) : # 如果经过了离市观察期且当前账户状态为持仓状态,进而判断金叉或者死叉
                nowAccount = ext.GetAccount() # 再次刷新和获取账户信息
                Dict2 = ext.Sell(nowAccount.Stocks - initAccount.Stocks) if state == PD_LONG else ext.Buy(initAccount.Stocks - nowAccount.Stocks) # 平仓逻辑,是多头就平多头,是空头就平空头。
                state = STATE_IDLE # 标记平仓后持仓状态。
                nowAccount = ext.GetAccount() # 再次刷新和获取账户信息
                LogProfit(nowAccount.Balance - initAccount.Balance,'钱:',nowAccount.Balance,'币:',nowAccount.Stocks,'平仓详情:',Dict2,'交叉周期:',n) # 日志信息
        Sleep(Interval * 1000) # 循环暂停一秒,防止API访问频率过快导致账户被限制。

  • Überprüfung der Gleichlinienstrategie

Auf der Strategie-Editing-Seite haben wir die Strategie fertig geschrieben, und als nächstes werden wir die Strategie analysieren, um zu sehen, wie sie sich in der historischen Branche entwickelt hat. Die Analyse spielt eine wichtige Rolle bei der Entwicklung einer quantitativen Strategie, kann aber auch nur als wichtige Referenz dienen. Die Analyse ist keine Gewinngarantie, da der Markt sich ständig verändert.

Klicken Sie auf die Analogie-Rückprüfung, und Sie sehen, dass es viele parametrische Anpassungen gibt, die direkt darin geändert werden können. Für spätere Strategien, die immer komplexer und mehr und mehr Parameter sind, können diese Modifikationen dem Benutzer helfen, sich nicht mehr auf einzelne Änderungen im Code zu konzentrieren.

img

Die Optimierungsoptionen im Hintergrund optimieren die eingestellten Parameter automatisch, und das System versucht verschiedene optimale Parameter, um den Strategieentwicklern zu helfen, die beste Wahl zu finden.

Aus den oben genannten Beispielen können wir sehen, dass die Quantifizierung von Transaktionen auf der Grundlage der Analyse von Zeitreihen-Daten und der Wechselwirkung zwischen Tick-Daten und komplexer Logik beruht. Die Unterschiede sind jedoch nur dimensionale Unterschiede. Zum Beispiel bei Hochfrequenz-Transaktionen werden detailliertere Datenschnitte und reichere Zeitreihen-Daten benötigt.


Verwandt

Mehr