
Bei Absicherungsstrategien gibt es verschiedene Arten von Absicherungen. Cross-Market-Hedging, Cross-Perioden-Hedging usw. Heute sprechen wir über Cross-Product-Hedging oder genauer gesagt über Cross-Currency-Hedging-Strategien im quantitativen Handel mit Blockchain-Assets. Während bei herkömmlichen Absicherungsgeschäften die Basiswerte gleich sind, werden bei der Cross-Currency-Absicherung unterschiedliche Basiswerte gekauft und verkauft. Bei der Absicherung desselben Produkts können wir die Preisdifferenz als Kauf- und Verkaufspreis in der Absicherungstransaktion verwenden. Bei der einfachsten marktübergreifenden Absicherung desselben Produkts schwankt die Preisdifferenz wiederholt innerhalb eines bestimmten Bereichs. Bei der produktübergreifenden Absicherung können Preisunterschiede definitiv nicht als An- und Verkaufspreise verwendet werden, da die Preisunterschiede zwischen verschiedenen Produkten nicht sehr intuitiv zu beobachten sind. Normalerweise wird das Preisverhältnis als An- und Verkaufspreis verwendet.
Zum Beispiel: Ein Handelspaar: LTC_USDT Handelspaar B: ETH_USDT
entsprechendA交易对的价格/B交易对的价格Dieser Preisverhältniswert wird zur Streuung der Eröffnungspositionen verwendet. Je größer das Verhältnis, desto mehr müssen wir A verkaufen und B kaufen. Wenn das Verhältnis hingegen kleiner wird, kaufen Sie A und verkaufen Sie B. Die Absicherung eines jeweils gleichen USDT-Betrags ist eigentlich eine Grid-Trading-Strategie, die auf der relativen Preisstärke von LTC/ETH basiert. Die Strategie ist nicht kompliziert. Es ist jedoch zu beachten, dass diese Absicherungskombination tatsächlich ETH als Ankerpreiswährung zur Denominierung von LTC verwendet. Dieser verankerte Preis kann einen einseitigen Trend aufweisen, obwohl er die meiste Zeit schwanken kann. Dieses Risiko muss jedoch berücksichtigt und beachtet werden.
Mit der Inventor Quantitative Trading Platform ist es einfach, einen Strategieprototyp zu schreiben:
Wenn der Richtliniencode ausgeführt wird, muss er auf
und
verweisen.
„Bibliothek für Strichzeichnungen“: https://www.fmz.com/strategy/27293
„Bibliothek für den Spothandel mit Kryptowährungen“: Diese wird in der Vorlagenspalte bereitgestellt, wenn jeder Benutzer eine neue Strategie erstellt.
/*backtest
start: 2019-05-01 00:00:00
end: 2019-11-04 00:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"LTC_USDT","balance":100000,"stocks":30},{"eid":"OKEX","currency":"ETH_USDT","balance":100000,"stocks":30}]
*/
/*
A exchanges[0] : EOS_USDT
B exchanges[1] : ETH_USDT
*/
var Interval = 500
// 参数
var numPoint = 100 // 节点数
var distance = 0.08 // 比例间距
var amountPoint = 100 // 节点金额,单位USDT
var arrHedgeList = []
function main () {
var isFirst = true
while(true) {
var rA = exchanges[0].Go("GetTicker")
var rB = exchanges[1].Go("GetTicker")
var tickerA = rA.wait()
var tickerB = rB.wait()
if (tickerA && tickerB) {
var priceRatioSell = tickerB.Buy / tickerA.Sell // B sell , A buy
var priceRatioBuy = tickerB.Sell / tickerA.Buy // B buy , A sell
if (isFirst) {
for (var i = 0 ; i < numPoint ; i++) {
var point = {
priceRatio : priceRatioSell + (i + 1) * distance,
coverRatio : priceRatioSell + i * distance,
amount : (0.08 * i + 1) * amountPoint,
isHold : false,
}
arrHedgeList.push(point)
}
isFirst = false
}
for (var j = 0 ; j < arrHedgeList.length; j++) {
if (priceRatioSell > arrHedgeList[j].priceRatio && arrHedgeList[j].isHold == false) {
// B sell , A buy
Log("对冲,价格比", priceRatioSell, "#FF0000")
$.Buy(exchanges[0], arrHedgeList[j].amount / tickerA.Sell)
$.Sell(exchanges[1], arrHedgeList[j].amount / tickerB.Buy)
arrHedgeList[j].isHold = true
LogStatus(_D(), exchanges[0].GetAccount(), "\n", exchanges[1].GetAccount())
$.PlotLine("ratio", (priceRatioSell + priceRatioBuy) / 2)
break
}
if (priceRatioBuy < arrHedgeList[j].coverRatio && arrHedgeList[j].isHold == true) {
// B buy , A sell
Log("对冲,价格比", priceRatioBuy, "#32CD32")
$.Sell(exchanges[0], arrHedgeList[j].amount / tickerA.Buy)
$.Buy(exchanges[1], arrHedgeList[j].amount / tickerB.Sell)
arrHedgeList[j].isHold = false
LogStatus(_D(), exchanges[0].GetAccount(), "\n", exchanges[1].GetAccount())
$.PlotLine("ratio", (priceRatioSell + priceRatioBuy) / 2)
break
}
}
}
Sleep(Interval)
}
}
Verwenden der Standard-Backtest-Einstellungen:


Man erkennt, dass nur dutzende Zeilen Code nötig sind, um aus den eigenen Ideen eine Strategie zu konstruieren. Auf der Inventor Quantitative Trading Platform ist es sehr einfach, den Prototyp einer Idee zu realisieren. Aus dem obigen Diagramm können wir erkennen, dass dieses Preisverhältnis die meiste Zeit schwankt, aber es gibt einen gewissen Trend. Die Optimierungsrichtung kann eine Positionskontrolle während der Absicherung oder das Hinzufügen einer bestimmten Trendidentifikation sein.
Im Hinblick auf die Positionskontrolle kann der Absicherungsbetrag jedes Absicherungsknotens schrittweise erhöht werden, beispielsweise im folgenden Code:
if (isFirst) {
for (var i = 0 ; i < numPoint ; i++) {
var point = {
priceRatio : priceRatioSell + (i + 1) * distance,
coverRatio : priceRatioSell + i * distance,
amount : (0.08 * i + 1) * amountPoint, // 每次递增amountPoint的8%
isHold : false,
}
arrHedgeList.push(point)
}
isFirst = false
}
Dadurch können relativ größere Positionen an Standorten mit höheren Preisverhältnissen konzentriert werden, wodurch die Aufnahme zu großer Positionen bei niedrigeren Preisverhältnissen vermieden wird. Natürlich ist eine solche produktübergreifende Absicherung sehr riskant. Wenn der Preis einer Münze im Vergleich zu einer anderen Münze weiter steigt, kommt es zu schwebenden Verlusten. Daher erfordert die produktübergreifende Absicherung eine stärkere Korrelation zwischen den beiden Produkten.
Diese Strategie ist nur eine erste DEMO und kann weiter modifiziert und optimiert werden.