
В стратегиях хеджирования существуют различные виды хеджирования. Кросс-рыночное хеджирование, кросс-периодное хеджирование и т. д. Сегодня мы поговорим о кросс-продуктовом хеджировании или, точнее, о стратегиях кросс-валютного хеджирования в количественной торговле блокчейн-активами. Базовые активы в традиционных сделках хеджирования одни и те же, тогда как кросс-валютное хеджирование подразумевает покупку и продажу разных базовых активов. При хеджировании одного и того же продукта мы можем использовать разницу цен в качестве цены покупки и продажи в сделке хеджирования. Для простейшего кросс-рыночного хеджирования одного и того же продукта разница цен колеблется многократно в определенном диапазоне. Кросс-продуктовое хеджирование определенно не может использовать разницу в ценах в качестве цены покупки и продажи, поскольку разница в ценах между различными продуктами не очень интуитивно понятна для наблюдения. Обычно в качестве цены покупки и продажи используется соотношение цен.
Например: Торговая пара: LTC_USDT Торговая пара B: ETH_USDT
в соответствии сA交易对的价格/B交易对的价格Это значение соотношения цен используется для распределения открывающихся позиций. Чем больше это соотношение, тем больше нам нужно продать А и купить В. Напротив, если соотношение становится меньше, покупайте A и продавайте B. Хеджирование равной суммы USDT каждый раз на самом деле является стратегией торговли сеткой, основанной на относительной силе цены LTC/ETH. Стратегия не сложная. Однако следует отметить, что эта комбинация хеджирования фактически использует ETH в качестве базовой валюты цены для номинала LTC. Эта фиксированная цена может иметь односторонний тренд, хотя большую часть времени она может колебаться. Однако этот риск необходимо учитывать и обращать на него внимание.
Используя платформу количественной торговли Inventor, можно легко написать прототип стратегии:
Когда код политики запущен, он должен ссылаться на
и
「Библиотека рисования линий」: https://www.fmz.com/strategy/27293
«Библиотека спотовой торговли криптовалютами»: предоставляется в столбце шаблонов, когда каждый пользователь создает новую стратегию.
/*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)
}
}
Используя настройки бэктеста по умолчанию:


Видно, что для построения стратегии собственных идей используются всего лишь десятки строк кода. На платформе количественной торговли Inventor очень легко реализовать прототип идеи. Из приведенного выше графика мы видим, что это соотношение цен колеблется большую часть времени, но есть определенная тенденция. Направление оптимизации может быть контролем позиции во время хеджирования или добавлением определенной идентификации тренда.
С точки зрения управления позицией, сумма хеджирования каждого узла хеджирования может быть увеличена постепенно, например, в коде:
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
}
Это позволяет концентрировать относительно более крупные позиции в местах с более высоким соотношением цен и избегать занятия более крупных позиций, когда соотношение цен ниже. Конечно, такое кросс-продуктовое хеджирование очень рискованно. Если цена одной монеты продолжит расти относительно другой монеты, возникнут плавающие убытки. Поэтому кросс-продуктовое хеджирование требует более сильной корреляции между двумя продуктами.
Данная стратегия представляет собой лишь начальную ДЕМО-версию и может быть в дальнейшем модифицирована и оптимизирована.