
In letzter Zeit gab es viele Neuigkeiten aus der Welt der Kryptowährungen und auch Nachrichten über Börsen machen die Runde. Eine Zeit lang gerieten alle Kryptowährungs-Enthusiasten in Panik und sorgten sich um die Sicherheit ihrer Blockchain-Vermögenswerte. In verschiedenen Kryptowährungsgruppen gibt es viele kleine Anzeigen, die 10 % oder 20 % Rabatt auf ungenutzte gebrauchte Münzen anbieten. Es gibt viele Menschen, die verschiedene Strategien ausprobieren, um „einen stetigen Geldverlust und gleichzeitig einen stetigen Gewinn anzustreben“. Viele Münzfreunde scherzten auch: „Wenn es einen stabilen Weg gibt, Geld zu verdienen, warum brauchen wir dann einen stabilen Weg, Geld zu verlieren?“
Tatsächlich sind Dinge, die stetig Geld einbringen und stetig Geld verlieren,money printer, und es ist nicht leicht zu finden.
Verzeihen Sie mein schlechtes Englisch.
Allerdings besteht weiterhin Instabilität, da beispielsweise durch die Absicherung von Kontrakten gleichzeitig Verluste und Gewinne erzielt werden können.
DEMO-Strategie
/*backtest
start: 2020-09-30 00:00:00
end: 2020-10-19 00:00:00
period: 1d
basePeriod: 1m
exchanges: [{"eid":"Futures_OKCoin","currency":"BTC_USD"},{"eid":"Futures_HuobiDM","currency":"BTC_USD"}]
*/
var step = 20 // 加仓价格步长
function main() {
var pos1 = []
var pos2 = []
var ct = "quarter" // 例如用季度合约
exchanges[0].SetContractType(ct)
exchanges[1].SetContractType(ct)
var diff = 0
while (true) {
var r1 = exchanges[0].Go("GetDepth") // A交易所
var r2 = exchanges[1].Go("GetDepth") // B交易所
var depth1 = r1.wait()
var depth2 = r2.wait()
if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff) {
if(pos1.length == 0 && pos2.length == 0) {
var info1 = $.OpenShort(exchanges[0], ct, 10)
var info2 = $.OpenLong(exchanges[1], ct, 10)
pos1 = _C(exchanges[0].GetPosition)
pos2 = _C(exchanges[1].GetPosition)
diff = depth1.Bids[0].Price - depth2.Asks[0].Price
} else if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff + step) {
var info1 = $.OpenShort(exchanges[0], ct, 10)
var info2 = $.OpenLong(exchanges[1], ct, 10)
pos1 = _C(exchanges[0].GetPosition)
pos2 = _C(exchanges[1].GetPosition)
diff = depth1.Bids[0].Price - depth2.Asks[0].Price
}
}
if(pos1.length != 0 && pos1[0].Profit < -0.001) {
var info1 = $.CoverShort(exchanges[0], ct, pos1[0].Amount)
var info2 = $.CoverLong(exchanges[1], ct, pos2[0].Amount)
pos1 = _C(exchanges[0].GetPosition)
pos2 = _C(exchanges[1].GetPosition)
diff = 0
}
LogStatus(_D(), diff)
Sleep(500)
}
}


Strategielogik: Die Strategie beginnt mit der Initialisierung der Positionsvariablen pos1 und pos2 als leere Arrays. Die Strategie tritt in die Hauptschleife ein und erhält zu Beginn jeder Schleife die Tiefendaten (Orderbuchdaten) der Kontrakte der beiden Börsen und berechnet die Preisdifferenz. Wenn sich die Preisdifferenz weiter vergrößert und über „die letzte Preisdifferenz plus einen Schritt“ hinausgeht, sichern Sie Ihre Positionen weiter ab und erhöhen Sie sie. Wenn beim Halten einer Position der Verlust der ersten Börsenposition einen bestimmten Wert überschreitet (zum Beispiel: -0,001), wird die Position geschlossen. Dieser Vorgang wird vielfach wiederholt.
Das Prinzip ist eigentlich ganz einfach: Ist die Preisdifferenz groß, spricht sich eine Absicherung dagegen aus. Warten Sie, bis die Börse, bei der Sie Verluste erwarten, einen Verlust hält, und schließen Sie dann die Position. Wenn sich der Spread weiter vergrößert, erhöhen Sie die Position zur Absicherung weiter, bis die Börse, bei der Sie Verluste erwarten, einen Verlust hält. Die wichtigeren Parameter sind: Wie hoch ist der Verlust, um eine Position zu schließen, die Schrittweite der Preisdifferenz zum Hinzufügen von Positionen und der Absicherungsbetrag.
Die Strategie ist relativ einfach und dient lediglich zur Überprüfung der Idee. Sie ist im realen Handel nicht anwendbar. Es gibt noch viele Aspekte, die im realen Handel berücksichtigt werden müssen, z. B. ob der zu handelnde Kontrakt auf Währung oder U basiert, ob die Multiplikatoren verschiedener Kontrakte an den Börsen A und B gleich sind usw.
Auf diese Weise wird, wenn eine Börse Geld verliert, der Verlust ungefähr dem Gewinn einer anderen Börse entsprechen (aufgrund der Preisdifferenz kann es zu Absicherungsverlusten kommen, d. h. der Verlust ist größer als der Gewinn). Die Strategie verwendet eine Bibliothek für den Futures-Handel.$.CoverShort,$.OpenShortDies sind die Schnittstellenfunktionen der Vorlage. Um die obige DEMO zu testen und auszuführen, müssen Sie auf diese Klassenbibliothek verweisen.
Der obige Strategieprototyp ist nur die einfachste Untersuchung. Im tatsächlichen Betrieb müssen möglicherweise weitere Details berücksichtigt werden. Beispielsweise kann die Höhe der Positionserhöhung inkrementell gestaltet werden. Dies ist nur ein Ausgangspunkt. Ähnliche Strategien sollten noch weiter optimiert werden können. Experten sind herzlich eingeladen, Vorschläge zu machen.