ブロックチェーンの資産量化取引における通貨間ヘッジ戦略

作者: リン・ハーン小さな夢, 作成日:2019年11月4日 11:44:15 更新日:2023年10月17日 21:25:35 更新日:2020年10月17日 21:25:35 更新日:2020年10月17日 21:25:35 更新日:2020年10月17日 21:25:35 更新日:2020年10月17日 21:25:35 更新日:2020年10月17日 21:25:35 更新日:2020年10月17日 21:25:35 更新日:2020年10月17日 21:25:35 更新日:2020年12月21日

img

ブロックチェーンの資産量化取引における通貨間ヘッジ戦略

ハードジング戦略には,様々な種類のヘッジがあります.クロスマーケット・ヘッジ,クロス期間のヘッジなど.今日,クロス・ヘッジについてお話します.正確に言うと,ブロックチェーン資産量化取引におけるクロス・通貨ヘッジ戦略です. 通常のヘッジ取引では,標識が同じものであり,クロス・通貨ヘッジは異なる標識で購入または販売されるものです.同じ種類のヘッジでは,価格差をヘッジ取引の買取価格として使用することができ,最も単純なクロス・マーケット・同種のヘッジでは,この価格は一定に範囲内で反復変動します.クロス・ヘッジでは,価格差を買取価格として使用することはできません.

例えば: A 取引対は:LTC_USDT B取引対は:ETH_USDT

フォローするA交易对的价格/B交易对的价格この価格比の数値,分散型開場. この比が大きいほど,私たちはAを売り,Bを買い,Bを買う. 逆の比のルールはAを買い,Bを売る. 負債を1回ごとに等価なUSDT額で,実際にはLTC/ETHの相対的な価格強弱でネット取引を行う戦略であり,戦略的な考え方は複雑ではありません. しかし,注意すべきは,この負債の組み合わせは,実際にはETHを固定価格通貨として,LTCの価格を計算することです. この外出価格は,一方的な傾向を持つ可能性があり,ほとんどの場合波動的な動きである可能性がありますが,このリスクは考慮し注意する必要があります.

発明者による量化取引プラットフォームを使って,戦略プロトタイプを簡単に書くことができます. 戦略コードを実行するときに引用が必要です.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
}

この方法により,比較的重度のポジションが価格比率が高いポジションに集中し,価格比率が低い時に,ポジションを過大に占めるのを避ける. もちろん,この種のクロスヘッジはリスクが高く,もし1つの通貨が他の通貨の価格に対して継続的に上昇すれば浮出損失が生じる.したがって,クロスヘッジには2つの品種の関連性が強い必要がある.

この戦略は,初期デモであり,改定や最適化も続けられます.


関連性

もっと