Die Momentum-Handelsstrategie analysiert den Vergleich von Long- und Short-Positionskräften durch die Beziehung zwischen dem Eröffnungspreis, dem höchsten Preis und dem niedrigsten Preis über einen bestimmten Zeitraum, was uns indirekt ermöglicht, die aktuelle Verteilung von Long- und Short-Kräften auf dem Markt zu verstehen.
Die Preisdynamikanalyse wurde in traditionellen manuellen spekulativen Aufträgen weit verbreitet, insbesondere bei der Bestimmung des einseitigen Trends des Tages. Das alte Klischee, was ist, um die Situation zu nutzen. Die beste Quantifizierung der Situation ist die Quantifizierung des Stärkevergleiches zwischen den Long- und Short-Positionsseiten. Die Preisdynamikanalyse ist einer der besten Indikatoren.
Dieses Papier wird diese Strategie nutzen, um ein automatisiertes Spot-Trading-Programm für digitale Währungen auf demWeiß nicht..
AR = [Summe aller (hoch-offene) für N Tage / Summe aller (offene) für N Tage] * 100
Dazu gehören:
N: Das statistische Fenster des täglichen Zeitzyklus beträgt standardmäßig in der Regel 30 Tage, da der effektive Handelstag eines Monats etwa 30 Tage beträgt (Transaktionen mit digitaler Währung rund um die Uhr, was konservativ sein kann)
Hoch: der höchste Preis an einem Tag
Offener: Eröffnungspreis eines einzelnen Tages
Niedrig: der niedrigste Preis an einem Tag
Der Kursmomentus spiegelt die Position des Eröffnungspreises zwischen dem höchsten und dem niedrigsten Preis für einen bestimmten Zeitraum wider.
Anmerkung: Die obigen Zahlen sind alle Standardwerte und sind keine Wahrheitsformeln. Im Prozess des realen Handels sollten wir diesen Bereich anpassen, um sich an den aktuellen Marktzustand anzupassen, wenn sich der Markt ändert.
Wie üblich öffnen wir.FMZ.COM, melden Sie sich bei unserem Konto an, klicken Sie auf Dashboard, und setzen Sie den Docker und den Roboter ein.
Bitte beachten Sie meinen vorherigen Artikel über die Bereitstellung eines Dockers und eines Roboters:https://www.fmz.com/bbs-topic/9864.
Leser, die ihren eigenen Cloud-Computing-Server kaufen möchten, um Dockers zu implementieren, können sich auf diesen Artikel beziehen:https://www.fmz.com/digest-topic/5711.
Als nächstes klicken wir auf die Strategie-Bibliothek in der linken Spalte und klicken auf Strategie hinzufügen.
Denken Sie daran, die Programmiersprache als Python in der oberen rechten Ecke der Strategiebearbeitungsseite auszuwählen, wie in der Abbildung gezeigt:
Als nächstes schreiben wir den Python-Code in die Codebearbeitungsseite. Der folgende Code enthält sehr detaillierte Zeilenkommentare, die Leser können sich Zeit nehmen zu verstehen. Noch wichtiger ist, obwohl diese Strategie auf Basis des Spottrades geschrieben wurde, berücksichtigt die Erweiterbarkeit des folgenden Codes auch den Futures-Trading. Interessierte Leser können versuchen, den folgenden Code in den Futures-Trading umzuschreiben. Die Logik der Strategie selbst ist universell. Auf der FMZ Quant-Plattform haben wir die API-Schnittstellen der wichtigsten Spot-Futures und Börsen für Sie vorbereitet, so dass das Umschreiben sehr einfach und bequem sein wird.
Wir werden den Bitcoin-Spot von Huobi als Handelsziel nutzen und mit der Umsetzung dieser Strategie beginnen:
import types # Import the Types module library, which is designed to handle the various data types that will be used in the code.
def main(): # The main function, where the strategy logic begins.
IDLE = 0 # It is used to mark the position status, which can be understood as 0, that is, idle status, i.e. short position status.
LONG = 1 # Long positions
SHORT = 2 # Short position. Note that this strategy is applied to the spot market, so there is no short opening or position. This is written here to facilitate understanding of the strategy and future expansion (such as extending to the futures market).
state = IDLE # Variables that mark the status of a position
while True: # Enter the loop
r = exchange.GetRecords() # GetRecords is the official API of the FMZ Quant Platform, for detailed usage please refer to: https://www.fmz.com/api.
if len(r) <= 1: # Judge whether the K-line is larger than one, that is, whether it is currently in the open state, or it may enter an endless loop. Here, it is also convenient for readers to expand, and the trend state of a larger K-line period is more stable.
Log("The number of bars is not enough, wait for the next bar...") # Output logs
continue # Python loop control statement, continuing with the next part of the loop.
# Begin quantitative analysis of price momentum
ar = sum(r.High - r.Open) / sum(r.Open - r.Low) * 100 # Calculation formula
account = _C(exchange.GetAccount) # Get account information, _C is also the official API of the FMZ Quant platform, for usage, please refer to: https://www.fmz.com/api.
if ar < 95 and (state == IDLE or state == SHORT) : # If the AR value is less than the oversold line and the account has funds, then buy all positions.
if account["Balance"] > 50:
exchange.Buy(-1, account["Balance"] * 0.9) # Buy all positions of the market order
state = LONG # Change the position status to LONG
elif ar > 80 and (state == IDLE or state == LONG): # If the AR value is greater than the overbought line and the account has a position, sell the whole position.
if account["Stocks"] > 0.01:
exchange.Sell(-1, account["Stocks"] * 0.9) # Sell all positions market order
state = SHORT # Change the position status to SHORT
LogStatus(_D(), exchange.GetAccount() , state) # Update log information
Nachdem wir die Strategie geschrieben haben, müssen wir sie zuerst testen, um zu sehen, wie sie sich in den historischen Daten verhält. Bitte beachten Sie jedoch, dass das Ergebnis des Backtests nicht der Vorhersage der Zukunft entspricht. Der Backtest kann nur als Referenz verwendet werden, um die Wirksamkeit unserer Strategie zu prüfen. Sobald sich der Markt ändert und die Strategie große Verluste verursacht, sollten wir das Problem rechtzeitig finden und dann die Strategie ändern, um sich an die neue Marktumgebung anzupassen, z. B. an die oben genannte Schwelle. Wenn die Strategie einen Verlust von mehr als 10% hat, sollten wir den Betrieb der Strategie sofort stoppen und dann das Problem finden. Wir können mit der Anpassung der Schwelle beginnen.
Klicken Sie auf Backtest auf der Strategiebearbeitungsseite. Auf der Backtestseite kann die Anpassung von Parametern bequem und schnell nach verschiedenen Bedürfnissen durchgeführt werden. Besonders für die Strategie mit komplexer Logik und vielen Parametern ist es nicht notwendig, zur Quellcode-Seite zurückzukehren und sie einzeln zu modifizieren.
Die Backtestzeit ist der letzte Monat. Klicken Sie, um die Huobi-Spotbörse und das BTC-Handelsziel hinzuzufügen.
Ergebnisse der Backtests:
Wir können sehen, dass die Strategie im Backtest dieses Monats gut ablief.
Vorteile Im Vergleich zu einigen anderen traditionellen technischen Indikatoren besteht der Vorteil des Kursmomentums darin, dass er keinen einzigen Eröffnungs- oder Schlusskurs verwendet, sondern die höchsten und niedrigsten Preise einführt. Sie werden dynamisch verglichen, wodurch die Marktinformationen durch Intraday-Kursschwankungen umfassender, reaktionsschneller und makrospezifischer werden.
Nachteile Der Preismomentum-Wert kann unabhängig voneinander verwendet werden, um zu beurteilen, ob der Preis zu hoch oder zu niedrig ist, ob der Preis lang/kurz ist, ob er früh in einer Welle großer Trends aussteigen oder früh in einer Welle großer Abwärtstrends nach unten fischen wird.
Die Schwellenwerte der Strategie müssen auch nach den Merkmalen des Handelsobjekts festgelegt werden. Die Preisschwankungen des digitalen Währungsmarktes sind relativ groß und das Handelsvolumen ist enorm, insbesondere bei den Mainstream-Währungen wie Bitcoin, und es gibt keine Grenze für den Anstieg und Fall, so dass der Schwellenwert höher ist als der der traditionellen Börse. Die Überverkaufslinie von 80 ist in der Regel schwer zu berühren und es gibt nur wenige Kaufsignale; Während die Überkauflinie von 170 oft unter der Schwelle liegt, wird das Verkaufssignal häufig ausgelöst. Dies wird dazu führen, dass die Strategie die meiste Zeit in der Short-Position ist und die Fondsnutzung sehr niedrig wird. Zum Beispiel ist der Preis von Bitcoin seit Januar dieses Jahres in einer Bullenwelle von 3500 auf fast 13000 gestiegen. Der Schwellenwert hat die 170-Linie sehr früh überschritten und ist seitdem sehr hoch. Wenn wir nach der traditionellen Überkauflinie von 170 verkaufen und nur einen kleinen Teil des Gewinns erzielen, wird es nach der Öff
Daher gab es nie eine heilige Gral-Handelsstrategie auf dem Markt. Sie können nicht immer ohne Backtesting und Debugging Gewinne erzielen. Wie subjektive Trader enden wir quantitative Trader auf unterschiedliche Weise mit dem gleichen Ziel. Wir müssen uns den lokalen Bedingungen anpassen, entsprechend den Veränderungen des Marktes und auf die Veränderungen des Marktes reagieren. Wenn die Strategie ineffektiv ist, müssen wir sie rechtzeitig anpassen.
Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen:https://www.fmz.com/bbs, ob es sich um die Strategie oder die Technologie der Plattform handelt, hat die FMZ Quant-Plattform Fachleute, die bereit sind, Ihre Fragen zu beantworten.