Type/to search
8
Follow
1364
Followers
Mengubah API Niaga Hadapan Deribit untuk disesuaikan dengan perdagangan kuantitatif pilihan
Original
Created 2019-10-29 14:57:54  Updated 2024-12-16 11:24:47
 0
 3119

img

Terdapat banyak pertukaran niaga hadapan mata wang digital, tetapi sebagai derivatif niaga hadapan, perdagangan opsyen mata wang digital, tidak terdapat banyak pertukaran di pasaran Bursa yang menyokong perdagangan opsyen termasuk Deribit dan BitMEX. Dalam bidang perdagangan kuantitatif, terdapat juga banyak strategi untuk perdagangan pilihan, seperti strategi pilihan yang disebutkan dalam beberapa bahan yang dicari:

taip
Strategi arah:Membeli pilihan panggilanMenjual opsyen jualSebaran Panggilan LembuHamparan Lembu Lembu
--Beli Opsyen LetakMenjual pilihan panggilanSebaran Panggilan BearBeruang Letakkan Spread
Strategi turun naik:Jual StraddleJual Wide StraddleBeli StraddleBeli Wide Straddle
Strategi lindung nilai:Panggilan BerbumbungLetak BertutupPanggilan PerlindunganLetak Pelindung
--Had Berganda PanjangHad berganda kedudukan pendek----

Dipetik daripadamenyambung

Untuk menulis strategi perdagangan pilihan, anda masih perlu meletakkan asas yang kukuh terlebih dahulu dan biasa dengan operasi asas seperti membuat pesanan, mendapatkan maklumat pasaran, membatalkan pesanan, dan mendapatkan kedudukan. Penulisan strategi masih menggunakan Platform Dagangan Kuantitatif Pencipta, walaupun Platform Dagangan Kuantitatif Pencipta pada masa ini menyokong dagangan mata wang kepada mata wang, dagangan kontrak dan dagangan berleveraj dalam bidang perdagangan kuantitatif mata wang digital. Tidak banyak maklumat yang berkaitan dengan perdagangan pilihan Di bawah, kami akan mengambil pertukaran "Deribit" sebagai contoh untuk memperkenalkan cara menggunakan Platform Dagangan Kuantitatif Inventor untuk bermain perdagangan pilihan mata wang digital.

Maklumat berkaitan Deribit

Dokumentasi API: https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument
Cakera simulasi: https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument

Anda boleh mendaftar akaun di tapak web platform simulasi, dayakan API KEY dan dapatkan API KEY. Mengkonfigurasi pada Platform Dagangan Kuantitatif Pencipta adalah sama seperti mengkonfigurasi akaun sebenar.
img

Terdapat 4 konsep asas yang anda perlu fahami untuk perdagangan pilihan:
img

  • Tarikh pelaksanaan: Tarikh di mana pihak panjang dan pendek opsyen melengkapkan penghantaran kontrak opsyen.
  • Harga mogok: Pada tarikh pelaksanaan, pihak panjang dan pendek bagi opsyen melengkapkan penghantaran kontrak opsyen pada harga pelaksanaan.
  • Premium: Ini ialah harga opsyen Seperti niaga hadapan spot, sebut harga termasuk harga beli dan harga jual.
    Perlu diingat bahawa memandangkan kecairan opsyen pada umumnya lebih teruk daripada niaga hadapan dan spot, spread bid-ask mungkin besar, jadi perhatian khusus harus diberikan di sini! Selepas urus niaga selesai, harga urus niaga ialah kos pilihan panjang Pada masa ini, kedudukan panjang memperoleh hak (hak untuk melaksanakan pilihan itu, sebagai pihak yang menerima premium , mempunyai kewajipan tambahan Setelah kedudukan panjang meminta untuk melaksanakan hak, kedudukan pendek mesti bekerjasama.
  • Pilihan panggilan dan letak:
    Opsyen panggilan ialah hak yang pemegang opsyen panjang perlu meminta pemegang opsyen pendek membeli sejumlah Bitcoin pada harga pelaksanaan tertentu pada tarikh pelaksanaan tertentu, dan pemegang opsyen pendek mempunyai kewajipan untuk bekerjasama dengan pilihan panjang pemegang. Opsyen letak ialah hak yang pemegang opsyen panjang perlu meminta pemegang opsyen pendek untuk membeli sejumlah Bitcoin pada harga pelaksanaan tertentu pada tarikh pelaksanaan tertentu, penjual pendek dikehendaki menjual bitcoin yang diberikan pada harga pelaksanaan tertentu, dan penjual pendek mempunyai kewajipan untuk bekerjasama dengan penjual panjang.

Maklumat Pasaran

Menurut dokumentasi API Deribit Exchange, antara muka pasaran Deribit hanya menghantar data untuk mengakses maklumat pasaran niaga hadapan atau pilihan.instrument_nameParameter adalah berbeza (instrument_name ditetapkan oleh fungsi SetContractType), jadi pada asasnya anda boleh menggunakan antara muka untuk mendapatkan maklumat pasaran.GetTickerDapatkan sebut harga untuk pilihan.

Sudah tentu, pakej lalai Platform Dagangan Kuantitatif Pencipta ialah pasaran sebenar Deribit Exchange Kita mesti beralih kepada pasaran simulasi dan menggunakan kod berikut:

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

Kemudian kami sedang menyediakan kontrak opsyenBTC-27DEC19-7000-P
Ini ialah opsyen jual dengan tarikh latihan: 27DEC19 dan harga pelaksanaan: 7000

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

Kemudian dapatkannya Kami menulisnya bersama-sama, menjalankan kod dan menguji untuk mendapatkan maklumat pasaran kontrak opsyen ini.

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

Menggunakan alat penyahpepijatan boleh menjadi sangat mudah untuk diuji:
img
Anda boleh melihat bahawa harga adalah konsisten dengan itu pada cakera simulasi.
img

Kaedah panggilan antara muka pasaran lain adalah sama dan tidak akan diulang di sini.
Perdagangan opsyen tidak begitu aktif Kadang-kadang tidak akan ada pesanan beli atau pesanan jual Pada masa ini, lapisan bawah Platform Dagangan Kuantitatif Pencipta akan mengesan nilai 0 dan melaporkan ralatSetErrorFilter("Invalid ticker")Abaikan ralat ini dan gunakanGetRawJSONFungsi mendapatkan maklumat asal pasaran dan merangkum data Di sini saya menulis contoh untuk mencapai fungsi yang serupa:

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 }

Apabila memanggil, tulis:Log($.GetTicker(exchange))

Buat pesanan

Operasi penempatan pesanan adalah sangat mudah Berbanding dengan perdagangan niaga hadapan, hanya terdapat dua arah: beli dan jual. Juga gunakanSell,BuyPerintah fungsi.

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

Pesanan yang baru dibuat juga muncul pada papan dagangan simulasi.
img

danexchange.GetOrder(id)Anda boleh bertanya maklumat pesanan.

Batalkan Pesanan

Kaedah yang sama digunakan untuk pembatalan pesanan.CancelOrderFungsi, sama seperti membatalkan pesanan dalam perdagangan niaga hadapan.
img

Dapatkan aset yang tersedia dalam akaun

Mendapatkan aset yang tersedia dalam akaun adalah sama seperti dalam perdagangan niaga hadapan TerusGetAccountFungsi.

Paparkan pada halaman pertukaran simulasi
img

Jalankan kod untuk mendapatkan:
img

Dapatkan maklumat jawatan

Untuk memegang jawatan, anda tidak boleh terus menggunakan pakejGetPositionfungsi, kerana secara lalai urus niaga Deribit ialah urus niaga hadapan, bukan urus niaga opsyen, dan hanya fungsi ini boleh digunakan untuk mendapatkan kedudukan niaga hadapan.
Oleh itu, kita mesti merangkum fungsi mendapatkan kedudukan pilihan oleh diri kita sendiri.

Antara muka fungsi untuk mendapatkan kedudukan dalam dokumentasi 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 }

PanggilLog($.GetPosition(exchange))Anda boleh mencetak maklumat jawatan.
img
img

Dengan cara ini, operasi asas boleh dicapai, dan selebihnya adalah untuk mengkaji strategi perdagangan pilihan.

Related Recommendations
Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)