Dalam strategi hedging, ada berbagai jenis hedging. Hedging lintas pasar, hedging jangka panjang, dll. Hari ini kita akan membahas hedging lintas varietas, tepatnya strategi hedging lintas mata uang dalam perdagangan aset kuantitatif blockchain. Barang yang ditandai dalam perdagangan hedging biasanya sama, sedangkan hedging lintas mata uang adalah barang yang dibeli dan dijual dengan tanda yang berbeda. Dalam hedging varietas yang sama, kita dapat menggunakan perbedaan harga sebagai harga jual dalam perdagangan hedging, dan dengan hedging lintas varietas yang paling sederhana, harga ini pasti bergeser berulang kali.
Misalnya: A adalah: LTC_USDT Pasangan B adalah: ETH_USDT
BerdasarkanA交易对的价格/B交易对的价格
Nilai rasio harga ini, posisi terbuka yang terdistribusi. Semakin besar rasio ini, semakin banyak kita akan menjual A, membeli B. Kebalikan rasio yang berubah adalah membeli A, menjual B. Setiap kali jumlah USDT yang sama dijaga, sebenarnya adalah strategi untuk melakukan perdagangan jaringan dengan harga relatif kuat dan lemah LTC/ETH. Strategi ini tidak rumit.
Dengan menggunakan inventor Quantum Trading Platform, Anda dapat dengan mudah menulis prototipe strategi: Kode strategi harus dikutip saat dijalankandan"Draw Line Class Library" (Kumpulan Kelas Garis Gambar):https://www.fmz.com/strategy/27293"Kelas Perdagangan Tangan Mata Uang Digital": Ini adalah template yang dibawa oleh setiap pengguna saat mereka membuat strategi baru.
/*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)
}
}
Menggunakan pengaturan retargeting default:
Seperti yang dapat dilihat, dengan hanya menggunakan beberapa lusin baris kode untuk menyusun strategi ide sendiri, prototipe ide adalah hal yang sangat mudah untuk diwujudkan. Dari grafik di atas terlihat bahwa rasio harga ini sebagian besar berada dalam goncangan, tetapi akan muncul arah tren tertentu, arah optimasi dapat menjadi untuk pengendalian posisi saat hedging atau bergabung dengan pengenalan tren tertentu.
Dalam hal pengendalian posisi, Anda dapat meningkatkan jumlah hedging untuk setiap node, misalnya dalam kode:
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
}
Hal ini memungkinkan posisi yang relatif lebih berat untuk berkonsentrasi pada posisi dengan rasio harga yang lebih tinggi, dan menghindari posisi yang terlalu besar ketika rasio harga lebih rendah. Tentu saja, penyelamatan cross-varietas ini berisiko, dan jika satu mata uang terus naik dibandingkan dengan mata uang lain, maka akan menimbulkan kerugian, sehingga penyelamatan cross-varietas membutuhkan korelasi dua varietas yang lebih kuat.
Strategi ini hanya demo awal, dan dapat terus diubah dan dioptimalkan.