Стратегии хеджирования с использованием кросс-валюты при количественной торговле блокчейн-активами

Автор:Лидия., Создано: 2022-12-27 10:11:48, Обновлено: 2023-09-20 10:02:24

img

Стратегии хеджирования с использованием кросс-валюты при количественной торговле блокчейн-активами

В стратегиях хеджирования существуют различные типы хеджирования: хеджирование на рынке, хеджирование на периоде и т. д. Сегодня мы поговорим о хеджировании на валюте, что именно является стратегией хеджирования на валюте в количественной торговле активами блокчейна. Как правило, предмет хеджирующей сделки одинаков, в то время как хеджирование на валюте включает покупку и продажу разных предметов. При хеджировании одного и того же сорта мы можем использовать разницу в цене как цену покупки и продажи в хеджирующей сделке. Для самого простого хеджирования на рынке одного и того же сорта разница в цене неоднократно колеблется в определенном диапазоне. Разницу в цене нельзя использовать в качестве цены покупки и продажи для хеджирования на валюте, потому что разница в цене разных валют не очень интуитивно наблюдать, и соотношение цен обычно используется как цена покупки и продажи.

Например: Торговая пара A: LTC_USDT Торговая пара B: ETH_USDT

Распределить открытые позиции в зависимости от значения коэффициента ценыPrice of Trading pair A/Price of Trading pair B. Чем больше соотношение, тем больше мы будем продавать A и покупать B. Если соотношение уменьшается, покупаем A и продаем B. Эквивалентная сумма USDT каждого хеджирования на самом деле является стратегией для сетевой торговли на основе относительной цены LTC/ETH. Идея стратегии не сложна. Однако следует отметить, что этот вид хеджирующего портфеля на самом деле использует ETH в качестве валюты якорной цены для ценообразования LTC.

Просто написать прототип стратегии с помощью платформы FMZ Quant Trading: Когда код стратегии запускается, он должен ссылаться наimgиimgБиблиотека сюжетов: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

// 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)
    }
}

С помощью обратного тестирования мы можем сначала проверить идеи стратегии

Используйте настройки обратного тестирования по умолчанию:

img img

Можно увидеть, что для построения стратегии собственных идей было использовано всего несколько десятков строк кода. Очень легко реализовать прототип идей на платформе FMZ Quant Trading. Согласно приведенному выше рисунку, эта пропорция цены колеблется большую часть времени, но будет определенная тенденция. Направлением оптимизации может быть контроль позиций во время хеджирования или добавление определенной идентификации тренда. С точки зрения контроля позиций, вы можете увеличить сумму хеджирования каждого хеджирующего узла.

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
}

Таким образом, относительно большие позиции могут быть сосредоточены на позиции с высокой ценовой пропорцией, чтобы избежать больших позиций, занятых при низкой ценовой пропорции. Конечно, такая кросс-валютная хеджировка очень рискованна. Если цена одной валюты продолжает расти относительно цены другой валюты, произойдут плавающие убытки. Поэтому кросс-валютная хеджировка требует более сильной корреляции между двумя валютами.

Эта стратегия является только начальной демонстрацией, которая может быть улучшена и оптимизирована.


Связанные

Больше