0
fokus pada
1
Pengikut

Memikirkan pergerakan aset melalui strategi lindung nilai kontrak

Dibuat di: 2020-10-20 16:48:32, diperbarui pada: 2023-09-26 20:59:29
comments   2
hits   2374

Memikirkan pergerakan aset melalui strategi lindung nilai kontrak

Memikirkan pergerakan aset melalui strategi lindung nilai kontrak

Ada banyak berita di dunia mata uang kripto akhir-akhir ini, dan berita tentang bursa juga bertebaran di mana-mana. Untuk sementara waktu, semua penggemar mata uang kripto panik, khawatir terhadap keamanan aset blockchain mereka. Ada banyak iklan kecil di berbagai grup mata uang kripto yang menawarkan diskon 10% atau 20% untuk koin bekas yang tidak terpakai. Ada banyak orang yang mencari berbagai strategi untuk “mencari kerugian uang yang stabil dan keuntungan yang stabil pada saat yang sama”. Banyak teman koin juga bercanda, “Jika ada cara yang stabil untuk menghasilkan uang, mengapa kita membutuhkan cara yang stabil untuk kehilangan uang!” Memang benar, hal yang menghasilkan uang terus menerus dan terus menerus merugi adalahmoney printer, dan tidak mudah untuk menemukannya. Maafkan bahasa Inggris saya yang buruk.

Namun demikian, masih terdapat ketidakstabilan, seperti melalui lindung nilai kontrak, ada kemungkinan memperoleh kerugian dan keuntungan pada saat yang bersamaan.

Strategi DEMO

/*backtest
start: 2020-09-30 00:00:00
end: 2020-10-19 00:00:00
period: 1d
basePeriod: 1m
exchanges: [{"eid":"Futures_OKCoin","currency":"BTC_USD"},{"eid":"Futures_HuobiDM","currency":"BTC_USD"}]
*/

var step = 20    // 加仓价格步长

function main() {
    var pos1 = []
    var pos2 = []
    var ct = "quarter"                         // 例如用季度合约
    exchanges[0].SetContractType(ct)
    exchanges[1].SetContractType(ct)
    var diff = 0

    while (true) {
        var r1 = exchanges[0].Go("GetDepth")   // A交易所
        var r2 = exchanges[1].Go("GetDepth")   // B交易所
        var depth1 = r1.wait()
        var depth2 = r2.wait()

        if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff) {
            if(pos1.length == 0 && pos2.length == 0) {
                var info1 = $.OpenShort(exchanges[0], ct, 10)
                var info2 = $.OpenLong(exchanges[1], ct, 10)
                pos1 = _C(exchanges[0].GetPosition)
                pos2 = _C(exchanges[1].GetPosition)
                diff = depth1.Bids[0].Price - depth2.Asks[0].Price
            } else if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff + step) {
                var info1 = $.OpenShort(exchanges[0], ct, 10)
                var info2 = $.OpenLong(exchanges[1], ct, 10)
                pos1 = _C(exchanges[0].GetPosition)
                pos2 = _C(exchanges[1].GetPosition)
                diff = depth1.Bids[0].Price - depth2.Asks[0].Price
            }
        }
        
        if(pos1.length != 0 && pos1[0].Profit < -0.001) {
            var info1 = $.CoverShort(exchanges[0], ct, pos1[0].Amount)
            var info2 = $.CoverLong(exchanges[1], ct, pos2[0].Amount)
            pos1 = _C(exchanges[0].GetPosition)
            pos2 = _C(exchanges[1].GetPosition)
            diff = 0
        }
        LogStatus(_D(), diff)
        Sleep(500)
    }
}

Memikirkan pergerakan aset melalui strategi lindung nilai kontrak

Memikirkan pergerakan aset melalui strategi lindung nilai kontrak

Logika strategi: Strategi dimulai dengan menginisialisasi variabel posisi pos1 dan pos2 sebagai array kosong. Strategi memasuki putaran utama, dan pada awal setiap putaran, ia memperoleh data kedalaman (data buku pesanan) dari kontrak dua bursa dan menghitung perbedaan harga. Jika perbedaan harga terus meluas melampaui “perbedaan harga terakhir ditambah satu langkah”, teruslah melakukan lindung nilai dan tingkatkan posisi. Saat memegang posisi, jika kerugian posisi pertukaran pertama melebihi nilai tertentu (misalnya: -0,001), posisi akan ditutup. Proses ini diulang berkali-kali.

Prinsipnya sebenarnya sangat sederhana, yakni jika perbedaan harga besar, maka hedging ditentang. Tunggu hingga bursa yang Anda perkirakan akan merugi mengalami kerugian, lalu tutup posisi. Jika spread terus melebar, terus tingkatkan posisi untuk melakukan lindung nilai hingga bursa yang Anda perkirakan akan merugi mengalami kerugian. Parameter yang lebih penting adalah: berapa banyak kerugian yang diperlukan untuk menutup posisi, ukuran langkah perbedaan harga untuk menambahkan posisi, dan jumlah lindung nilai.

Strategi ini relatif sederhana dan hanya digunakan untuk memverifikasi ide. Strategi ini tidak berlaku dalam perdagangan nyata. Masih banyak masalah yang perlu dipertimbangkan dalam perdagangan nyata, seperti apakah kontrak yang diperdagangkan berbasis mata uang atau U, apakah pengganda kontrak yang berbeda di bursa A dan B adalah sama, dll.

Dengan cara ini, jika satu bursa merugi, kerugian tersebut kira-kira akan menjadi keuntungan bursa lainnya (karena perbedaan harga, mungkin ada kerugian lindung nilai, yaitu kerugian lebih besar daripada keuntungan). Strategi ini menggunakan perpustakaan perdagangan berjangka.$.CoverShort,$.OpenShortBerikut ini adalah fungsi antarmuka dari templat. Untuk melakukan backtest dan menjalankan DEMO di atas, Anda perlu merujuk ke pustaka kelas ini.

Prototipe strategi di atas hanyalah eksplorasi yang paling sederhana. Mungkin ada lebih banyak detail yang perlu dipertimbangkan dalam operasi sebenarnya. Misalnya, jumlah peningkatan posisi dapat dirancang agar bersifat bertahap. Ini hanyalah titik awal. Strategi serupa seharusnya dapat lebih dioptimalkan. Para ahli dipersilakan memberikan saran.