Ursprung: FMZ Quantwww.fmz.com
Die "echte Sache" des quantitativen Handels ist der Ort, an dem man wirklich profitieren kann.
Nr. 1
Der Mentor von Warren Buffett, Benjamin Graham, erwähnte einmal in seinem Buch <
50% der in den Händen befindlichen Mittel werden in Aktienfonds und die restlichen 50% in Anleihenfonds investiert, d. h. Aktien und Anleihen machen jeweils die Hälfte aus.
Bei einer Neubalancierung der Vermögensposition, die auf festen Intervallen oder Marktveränderungen beruht, wird das Verhältnis von Aktienvermögen zu Anleihenvermögen wieder auf ein anfängliches 1:1 gesetzt.
Dies ist die ganze Logik der gesamten Strategie, einschließlich wann zu kaufen und zu verkaufen, und wie viel zu kaufen und zu verkaufen.
Nr. 2
Bei dieser Methode ist die Volatilität von Anleihenfonds tatsächlich sehr gering, weit unter der der Aktienvolatilität, so dass Anleihen hier als
Wenn der Aktienkurs steigt, wird der Marktwert der Aktie größer als der Marktwert der Anleihe sein. Wenn das Marktwertverhältnis dieser beiden einen Schwellenwert überschreitet, wird die Gesamtposition angepasst, die Aktie verkauft und die Anleihe gekauft, um den Aktienwert zum Anleihewertverhältnis wieder auf das ursprüngliche 1:1 zu bringen.
Wenn der Marktwertverhältnis der beiden überschreitet den Satz einer Schwelle, wird die Gesamtposition angepasst, die Aktie wird gekauft, und die Anleihe wird verkauft, um das Marktkapitalisierungsverhältnis des Anleihewerts zum Aktienwert auf den ursprünglichen 1:1 wiederherzustellen.Auf diese Weise reicht das Verhältnis zwischen dem dynamischen Gleichgewicht von Aktien und Anleihen aus, um den Gewinn des Aktienwachstums zu genießen und die Volatilität von Vermögenswerten zu reduzieren.
Da dies eine komplette und gegenseitige Strategie ist, warum benutzen wir sie nicht auf dem Kryptowährungsmarkt?
Nr. 3
Strategie für die dynamische Balance von Blockchain-Assets in BTC
Strategie Logik
Gemäß dem aktuellen Wert von BTC beträgt der Kontostand 6400 USD Bargeld und 1 BTC, d. h. das anfängliche Verhältnis von Bargeld zum Marktwert von BTC beträgt 1:1.
Wenn der Preis der BTC auf $7400 steigt, d.h. der BTC-Marktwert größer ist als der Kontostand, und die Differenz zwischen ihnen überschreitet die festgelegte Schwelle, dann werden (7400-6400)/7400/2 Münzen verkauft. Das bedeutet, dass BTC aufgestiegen ist und wir das Bargeld zurücktauschen müssen.
Wenn der Preis der BTC auf 5400 fällt, d.h. der BTC-Marktwert kleiner ist als der Kontostand und die Differenz zwischen ihnen den festgelegten Schwellenwert übersteigt, kaufen Sie (6400-5400) / 5400/2 Münzen.
Auf diese Weise werden, unabhängig davon, ob der BTC geschätzt oder abgewertet wird, der Kontostand und der Marktwert des BTC immer dynamisch gleich gehalten.
Nr. 4
Wie implementiert man es mit Programmiercode?
Ein Beispiel dafür ist die Quantitative Trading Plattform FMZ.
// strategy parameter
var threshold = 0.05; // Threshold
var LoopInterval = 60; // Polling interval(seconds)
var MinStock = 0.001; // Minimum transaction volume
var XPrecision = 4; // Quantity accuracy
var ZPrecision = 8; // Price accuracy
// Withdrawal order function
function CancelPendingOrders() {
}
// Placing Order function
function onTick() {
}
// Main function
function main() {
// Filter non-critical information
SetErrorFilter("GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout");
while (true) { // Polling mode
if (onTick()) { // Execute the onTick function
CancelPendingOrders(); // Cancel unexecuted pending orders
}
Sleep(LoopInterval * 1000); // Sleep
}
}
Der gesamte Strategie-Rahmen ist eigentlich sehr einfach, eine
Nr. 5
Auftragsmodul
// Placing Order function
function onTick() {
var acc = _C(exchange.GetAccount); // Get account information
var ticker = _C(exchange.GetTicker); // Get Tick data
var spread = ticker.Sell - ticker.Buy; // Get the bid-ask spread of Tick data
// 0.5 times the difference between the account balance and the current position value
var diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2;
var ratio = diffAsset / acc.Balance; // diffAsset / Account Balance
LogStatus('ratio:', ratio, _D()); // Print ratio and current time
if (Math.abs(ratio) < threshold) { // If the absolute value of ratio is less than the specified threshold
return false; // return false
}
if (ratio > 0) { // If ratio is greater than 0
var buyPrice = _N(ticker.Sell + spread, ZPrecision); // Calculate the order price
var buyAmount = _N(diffAsset / buyPrice, XPrecision); // Calculate the order quantity
if (buyAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
return false; // return false
}
exchange.Buy(buyPrice, buyAmount, diffAsset, ratio); // Buy order
} else {
var sellPrice = _N(ticker.Buy - spread, ZPrecision); // Calculate the order price
var sellAmount = _N(-diffAsset / sellPrice, XPrecision); // Calculate the order quantity
if (sellAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
return false; // return false
}
exchange.Sell(sellPrice, sellAmount, diffAsset, ratio); // Sell order
}
return true; // return true
}
Die Logik der Bestelltransaktion ist klar, und alle Kommentare wurden in den Code geschrieben.
Der Hauptprozess ist wie folgt:
Holen Sie sich Kontoinformationen.
Holen Sie die Tick-Daten.
Berechnen Sie den Tick-Daten-Bid-Ask-Spread.
Berechnen Sie den Kontostand und den BTC-Marktwertspread.
Berechnen Sie die Auslöserbedingungen für den Handel, den Auftragspreis und die Auftragsmenge.
Bestellen und zurückgeben.
Nr. 6
Modul für ausstehende Aufträge stornieren
// Withdrawal order function
function CancelPendingOrders() {
Sleep(1000); // Sleep 1 second
var ret = false;
while (true) {
var orders = null;
// Continue to get an array of unexecuted orders, if an exception is returned, continue to get
while (!(orders = exchange.GetOrders())) {
Sleep(1000); // Sleep 1 second
}
if (orders.length == 0) { // If the order array is empty
return ret; // Return to withdrawal status
}
for (var j = 0; j < orders.length; j++) { // Traversing the array of unexecuted orders
exchange.CancelOrder(orders[j].Id); // Cancel unexecuted orders one by one
ret = true;
if (j < (orders.length - 1)) {
Sleep(1000); // Sleep 1 second
}
}
}
}
Das Modul für die Stornierung von ausstehenden Aufträgen ist noch einfacher, die Schritte sind wie folgt:
Warten Sie eine Sekunde, bevor Sie den Auftrag zurückziehen, da einige Börsen Serververzögerungen haben können.
Sie erhalten weiterhin eine Reihe von nicht ausgeführten Befehlen, und wenn eine Ausnahme zurückgegeben wird, versuchen Sie es weiter, bis sie erfolgreich ist.
Wenn das nicht ausgeführte Auftragsmatrix leer ist, wird der Rücknahmestatus sofort zurückgegeben.
Bei nicht ausgeführten Aufträgen wird das gesamte Array durchsucht und der Auftrag nach der Auftrags-ID zurückgezogen.
Nr. 7
Diese Strategie enthält alle Programmierquellcodes. Auf der quantitativen Handelsplattform FMZ, mit nur 80 Zeilen Code, wurde eine vollständige Blockchain BTC Dynamic Balancing Strategie erfolgreich aufgebaut.
Nr. 8
Als nächstes testen wir diese einfache dynamische Balance-Strategie, um zu sehen, ob sie funktioniert.
Umgebung für BacktestsLeistung bei RückversuchenZurückversuchskurveEin weiterer, der gleiche Zeitraum BTC Preis-ChartIst das ein Schock für Sie?
Der BTC hat seinen achtmonatigen Rückgang fortgesetzt, und selbst der größte Rückgang hat 70% überschritten, was dazu geführt hat, dass viele Anleger das Vertrauen in Blockchain-Assets verlieren.
Die kumulierten Einnahmen dieser Strategie sind bis zu 160% und die jährliche Rendite-Risiko-Ratio übersteigt 5. Bei einer so einfachen Handelsstrategie übertrifft diese Rendite die Mehrheit der
Nr. 9
Diese Ausgleichsstrategie mit nur einem Kernparameter (Schwellenwert) ist eine sehr einfache Anlagemethode, bei der nicht übermäßige Renditen, sondern solide Gewinne angestrebt werden.
Im Gegensatz zur Trendstrategie ist die dynamische Balance-Strategie gegen den Trend. Diese Strategie besteht darin, die Position zu reduzieren und abzukühlen, wenn der Markt zu heiß ist. Wenn der Markt verlassen ist, wird er versteckt, was der makroökonomischen Regulierung ähnelt.
In der Tat basiert die Strategie der dynamischen Balance auf der Idee, dass der Preis unvorhersehbar ist und gleichzeitig die Kursschwankungen erfasst.
Angesichts der Länge des Artikels ist es unmöglich, dass ein Artikel alles umfassend beschreibt. Wie ein altes Sprichwort sagt
Der Aktienmarkt ist kein "Wagen" der den Wert genau misst. Im Gegenteil, es ist eine "Wahlmaschine". Die Entscheidungen, die unzählige Menschen treffen, sind ein rationaler und emotionaler Dopant. Es gibt viele Zeiten, in denen diese Entscheidungen getroffen werden. Es ist weit entfernt vom Werturteil der Vernunft. Das Geheimnis der Investition besteht darin, zu investieren, wenn die Preise viel niedriger sind als der innere Wert, und zu glauben, dass sich die Markttrends verbessern werden.
Für eine direkte Kopie des Quellcodes besuchen Sie bitte unseren Strategie-Bereich unter:https://www.fmz.com/strategy/110900
Es gibt viele Strategien, die man studieren, herunterladen, mieten oder kaufen kann.
NO.10
Über uns
Der Grund für den Betrieb dieser Website ist, den derzeitigen Status der quantitativen Handelswelt zu ändern, wo es an
Ihre Weiterleitung wird uns die treibende Kraft sein, um weiter
Kontaktieren Sie uns
Telegramm: FMZ Quant
E-Mail:henry@fmz.com
Website:www.fmz.com