Mengubah API futures Deribit untuk menyesuaikan perdagangan kuantitatif opsi

Penulis:Mimpi kecil, Dibuat: 2019-10-29 14:57:54, Diperbarui: 2023-10-17 21:20:50

img

Bursa opsi mata uang digital saat ini sudah banyak, tetapi sebagai derivatif futures, perdagangan opsi mata uang digital, saat ini tidak banyak yang ada di pasar, yang mendukung perdagangan opsi adalah Deribit, BitMEX. Dalam bidang perdagangan kuantitatif, perdagangan opsi juga memiliki berbagai strategi, seperti strategi opsi yang disebutkan dalam beberapa informasi pencarian:

Jenis
Strategi yang ditargetkan: Membeli opsi biner Menjual opsi penurunan Pasar sapi melihat harga jagung buruk Pasar Banteng Menurun
Membeli opsi penurunan Menjual opsi biner Pasar beruang melihat harga alumunium yang buruk Harga Bursa Berkurang
Strategi fluktuasi: Menjual Transformasi Jual lebar Membeli Transformasi Membeli broadband
Strategi Hedging: Bersiaplah untuk melihat Perhatian turun Perlindungan terhadap burung hantu Perlindungan yang menurun
Kecil Benda kosong

Dikutip dariHubungan

Menulis strategi perdagangan opsi masih membutuhkan dasar yang kuat, dasar pemesanan, pemesanan pasar, penarikan pesanan, pemesanan kepemilikan, dan lain-lain. Menggunakan platform perdagangan kuantitatif penemu, meskipun penemu platform perdagangan kuantitatif saat ini mendukung bidang perdagangan kuantitatif mata uang digital adalah perdagangan mata uang, perdagangan kontrak, perdagangan leverage.

Informasi terkait Deribit

Ini adalah salah satu yang paling populer di Indonesia.https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrumentPerangkat lunak yang digunakan adalah:https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument

Anda dapat mendaftarkan akun di situs web piringan analog, membuka API KEY, dan mengakses API KEY. Konfigurasi di platform perdagangan kuantitatif penemu, seperti konfigurasi piringan nyata.img

Ada empat konsep dasar yang perlu dipahami dalam perdagangan opsi:img

  • Tanggal Eksekusi: Pihak yang memiliki opsi lebih banyak ruang pada tanggal itu menyelesaikan pengiriman kontrak opsi.
  • Harga hak pilih: Pada hari hak pilih, kedua belah pihak yang memiliki ruang opsi menyelesaikan kontrak opsi dengan harga hak pilih.
  • Harga hak: yaitu harga opsi, seperti opsi berjangka, dengan penawaran harga beli dan harga jual. Perlu dicatat bahwa karena likuiditas opsi umumnya lebih rendah daripada opsi futures dan spot, maka perbedaan harga jual dan beli mungkin sangat besar, perlu diperhatikan di sini! Setelah transaksi, harga transaksi adalah biaya opsi multi-head, di mana multi-head memperoleh hak (menggunakan hak opsi); sedangkan option blank sebagai pihak yang menerima hak, menambahkan kewajiban, begitu multi-head meminta hak untuk digunakan, blank harus bekerja sama.
  • Opsi put (mengajak) dan put (mengajak) Opsi beli adalah opsi multi-pemain yang memiliki hak untuk membeli Bitcoin yang ditetapkan pada hari tertentu, dengan harga tertentu, dan memiliki kewajiban untuk membeli Bitcoin yang ditetapkan pada hari tertentu, dengan harga tertentu.

Pengadaan

Dengan melihat dokumen API dari Deribit, Anda dapat melihat bahwa antarmuka pasar Deribit hanya digunakan untuk mengakses pasar futures atau opsi.instrument_nameJika parameternya berbeda (instrument_name disetel melalui fungsi SetContractType), maka Anda dapat menggunakan antarmuka untuk mendapatkan pasar.GetTicker"Saya tidak tahu apa yang akan terjadi", katanya.

Tentu saja, oleh default, penemu Quantitative Trading Platform yang dibungkus adalah Deribit, dan kita harus beralih ke analog dengan menggunakan kode berikut:

exchange.IO("base", "https://test.deribit.com")

Kemudian kita mengaturnya sebagai kontrak opsi saat ini.BTC-27DEC19-7000-PSaya tidak tahu. Ini adalah tanggal jual: 27 DEC 19, harga jual: 7000 opsi jual.

exchange.SetContractType("BTC-27DEC19-7000-P")

Setelah itu kita menulis kode untuk menjalankan dan menguji bagaimana mendapatkan kontrak opsi ini.

function main () {
    exchange.IO("base", "https://test.deribit.com")
    exchange.SetContractType("BTC-27DEC19-7000-P")
    var ticker = exchange.GetTicker()
    Log(ticker)
}

Dengan menggunakan alat debugging, Anda dapat melakukan tes yang mudah:imgSeperti yang bisa dilihat, harga yang ditawarkan sama dengan harga yang ditawarkan pada piringan analog.img

Di sini, kita tidak akan membahas secara rinci tentang cara panggilan antarmuka industri lainnya, tetapi perlu dicatat bahwa: Perdagangan opsi tidak terlalu aktif, dan kadang-kadang tidak ada pembayaran atau tidak ada surat jual, saat ini, penemu mendeteksi angka 0 di bagian bawah platform perdagangan kuantitatif, yang akan memberikan kesalahan, yang dapat digunakan untuk mengidentifikasi nilai 0 di bagian bawah platform perdagangan.SetErrorFilter("Invalid ticker")Dia mengatakan, "Saya tidak tahu apa yang terjadi.GetRawJSONFungsi ini dapat mengambil data yang terbungkus dengan informasi mentah dari pasar, dan di sini saya menulis contoh untuk melakukan hal yang sama:

function init() {
    SetErrorFilter("Invalid ticker")
}

$.GetTicker = function(e) {
    var ticker = e.GetTicker()
    if (!ticker) {
        try {
            var ret = JSON.parse(e.GetRawJSON())
            return {
                Info : ret,
                High : ret.result.stats.high,
                Low : ret.result.stats.low, 
                Buy : ret.result.best_bid_price,
                Sell : ret.result.best_ask_price,
                Last : ret.result.last_price, 
                Volume : ret.result.stats.volume,
                OpenInterest : 0,
                Time : new Date().getTime()
            }
        } catch (err) {
            Log(err)
        }
    }
    
    return ticker
}

Dia menulis di telepon:Log($.GetTicker(exchange))

Berikut daftarnya

Operasi di bawah ini sangat sederhana, dibandingkan dengan perdagangan futures, hanya membeli dan menjual dua arah.Sell,BuyFungsi yang tercantum.

function main () {
    exchange.IO("base", "https://test.deribit.com")
    exchange.SetContractType("BTC-27DEC19-7000-P")
    
    var id = exchange.Buy(0.017, 1)
    Log(exchange.GetOrder(id))
}

img

Pada saat yang sama, para pengguna Facebook juga dapat melihat pesan yang baru saja dikirim di piringan analog.img

danexchange.GetOrder(id)Anda dapat mencari informasi tentang pesanan Anda.

Penarikan

Penghapusan juga digunakan untuk:CancelOrderFungsi ini sama seperti penarikan uang saat berdagang futures.img

Mendapatkan aset yang tersedia

Dapatkan aset yang tersedia di akun dengan cara yang sama seperti saat berdagang futures.GetAccountFungsi tersebut adalah.

Tampilan pada halaman bursa simulasiimg

Kode untuk menjalankan:img

Mendapatkan informasi tentang saham

Anda tidak bisa menggunakan barang yang sudah dikemas secara langsung untuk penyimpanan.GetPositionFungsi ini tidak berfungsi karena secara default transaksi Deribit adalah perdagangan futures, bukan perdagangan opsi, dan hanya dapat digunakan untuk mendapatkan saham futures. Jadi, ini adalah fungsi yang harus kita lakukan sendiri untuk mendapatkan saham opsi.

Interface fungsi untuk mendapatkan penyimpanan pada dokumen API:img

$.GetPosition = function(e) {
    // /private/get_positions
    // currency  , kind 
    
    var positions = [] 
    var currency = e.GetCurrency()
    var arr = currency.split("_")
    var baseCurrency = arr[0]
    
    try {
        var ret = e.IO("api", "GET", "/api/v2/private/get_positions", "currency=" + baseCurrency + "&kind=option")
        for (var i in ret.result) {
            if (ret.result[i].size == 0 || ret.result[i].direction == "zero") {
                continue    
            } 
            
            var pos = {
                Info : ret.result[i], 
                Amount : ret.result[i].size,
                FrozenAmount : 0,
                Price : ret.result[i].average_price,
                Profit : ret.result[i].floating_profit_loss,
                MarginLevel : 0,
                Margin : 0,
                ContractType : ret.result[i].instrument_name,
                Type : ret.result[i].direction == "buy" ? ORDER_TYPE_BUY : ORDER_TYPE_SELL,
            }
            
            positions.push(pos)
        }
    } catch (err) {
        Log(err)
        positions = null
    }
    
    return positions
}

PanggilanLog($.GetPosition(exchange))Anda dapat mencetak informasi tentang saham Anda.img img

Dengan cara ini, operasi dasar dapat dilakukan, dan sisanya dapat dilakukan dengan mempelajari strategi perdagangan opsi.


Berkaitan

Lebih banyak