Dalam strategi lindung nilai, terdapat pelbagai jenis lindung nilai: lindung nilai rentas pasaran, lindung nilai rentas tempoh, dan lain-lain. Hari ini kita akan bercakap mengenai lindung nilai rentas mata wang, yang tepatnya adalah strategi lindung nilai rentas mata wang dalam perdagangan kuantitatif aset blockchain. Secara amnya, subjek transaksi lindung nilai adalah sama, sementara lindung nilai rentas mata wang melibatkan pembelian dan penjualan subjek yang berbeza. Apabila lindung nilai pelbagai yang sama, kita boleh menggunakan perbezaan harga sebagai harga beli dan jual dalam transaksi lindung nilai. Untuk lindung nilai rentas pasaran yang paling mudah dari pelbagai yang sama, perbezaan harga berfluktuasi berulang kali dalam julat tertentu. Perbezaan harga tidak dapat digunakan sebagai harga beli dan jual untuk lindung nilai rentas mata wang, kerana perbezaan harga mata wang yang berbeza tidak sangat intuitif untuk diperhatikan, dan nisbah harga biasanya digunakan sebagai harga beli dan jual.
Sebagai contoh: Pasangan dagangan A: LTC_USDT Pasangan dagangan B: ETH_USDT
Mengedarkan kedudukan pembukaan mengikut nilai nisbah hargaPrice of Trading pair A/Price of Trading pair B
. Semakin besar perkadaran, semakin banyak kita akan menjual A dan membeli B. Jika perkadaran menurun, beli A dan jual B. Jumlah USDT setara setiap lindung nilai sebenarnya adalah strategi untuk perdagangan grid berdasarkan harga relatif LTC / ETH. Idea strategi tidak rumit. Walau bagaimanapun, perlu diperhatikan bahawa portfolio lindung nilai jenis ini sebenarnya menggunakan ETH sebagai mata wang harga jangkar untuk harga LTC. Harga jangkar kemungkinan akan keluar dari trend sepihak. Walaupun kebanyakan masa mungkin merupakan trend yang tidak menentu, risiko ini perlu dipertimbangkan dan diperhatikan.
Ia mudah untuk menulis prototaip strategi dengan menggunakan platform FMZ Quant Trading:
Apabila kod strategi dijalankan, ia perlu merujuk kepadadan
/*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
// parameters
var numPoint = 100 // Number of nodes
var distance = 0.08 // Proportional distance
var amountPoint = 100 // Node amount in 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("Hedging, price ratio", 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("hedge, price ratio", 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)
}
}
Gunakan tetapan backtesting lalai:
Ia boleh dilihat bahawa hanya beberapa lusin baris kod yang digunakan untuk membina strategi idea anda sendiri. Sangat mudah untuk melaksanakan prototaip idea di platform FMZ Quant Trading. Menurut angka di atas, nisbah harga ini turun naik kebanyakan masa, tetapi akan ada trend tertentu. Arah pengoptimuman boleh menjadi kawalan kedudukan semasa lindung nilai atau menambah pengenalan trend tertentu. Dari segi kawalan kedudukan, anda boleh meningkatkan jumlah lindung nilai setiap nod lindung nilai.
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, // 8% of amountPoint per increment
isHold : false,
}
arrHedgeList.push(point)
}
isFirst = false
}
Dengan cara ini, kedudukan yang agak berat boleh tertumpu pada kedudukan dengan nisbah harga yang tinggi, untuk mengelakkan kedudukan besar yang diduduki apabila nisbah harga rendah. Sudah tentu, lindung nilai silang mata wang adalah sangat berisiko. Jika harga satu mata wang terus meningkat berbanding harga mata wang lain, kerugian terapung akan berlaku. Oleh itu, lindung nilai silang mata wang memerlukan korelasi yang lebih kuat antara kedua-dua mata wang.
Strategi ini hanya DEMO awal, yang boleh ditingkatkan dan dioptimumkan.