В процессе загрузки ресурсов... загрузка...

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

Автор:Изобретатели количественного измерения - мечты, Создано: 2019-11-04 11:44:15, Обновлено: 2023-10-17 21:25:35

img

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

В стратегии хеджирования существуют различные типы хеджирования; хеджирование между рынками, хеджирование между периодами и т. д. Сегодня мы поговорим о хеджировании между разновидностями, точнее, о хеджировании между валютами в объемных сделках с активами блокчейна. Обычно в хеджируемых сделках одинаковые товары, а хеджирование между валютами - товары, купленные и проданные по разным маркам.

Например: A - это LTC_USDT. Б-парь: ETH_USDT

СогласноA交易对的价格/B交易对的价格Это числовое соотношение цены, распределенное между двумя позициями. Чем больше это соотношение, тем больше мы продаем A, покупаем B. Чем больше это соотношение, тем больше мы покупаем A, продаем B. Каждый хеджируемый сумма USDT, находящаяся в равной величине, на самом деле является стратегией для проведения сетевой торговли с относительно сильной ценой LTC/ETH. Стратегический подход не сложен.

С помощью квантовой торговой платформы, разработанной изобретателями, можно легко написать прототип стратегии: При выполнении стратегического кода требуется ссылка.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

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

Мы можем проверить стратегические идеи на начальном этапе с помощью ретро-тестирования.

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

img

img

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

Позиционный контроль позволяет увеличивать сумму хеджирования каждого хеджируемого узла, например, в коде:

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
}

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

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


Связанные

Больше