Pada masa ini, terdapat banyak bursa niaga hadapan mata wang digital. Walau bagaimanapun, sebagai derivatif niaga hadapan, terdapat beberapa bursa di pasaran untuk perdagangan pilihan mata wang digital. Deribit dan BitMEX menyokong perdagangan pilihan. Dalam bidang perdagangan kuantitatif, perdagangan pilihan juga mempunyai pelbagai strategi, seperti strategi pilihan yang disebutkan dalam beberapa bahan yang dicari:
Jenis |
---|
Strategi Arah: |
– |
Strategi turun naik: |
Strategi lindung nilai: |
– |
Dikutip daripadapautan
Untuk menyediakan strategi perdagangan opsyen, anda perlu meletakkan asas yang kukuh terlebih dahulu, dan biasa dengan operasi asas seperti meletakkan pesanan, mendapatkan ticker, membatalkan pesanan, dan mendapatkan kedudukan. Penulisan strategi masih menggunakan platform FMZ Quant Trading, walaupun platform FMZ Quant Trading kini menyokong perdagangan mata wang, perdagangan kontrak dan perdagangan leverage dalam bidang perdagangan kuantitatif mata wang digital. Tidak banyak maklumat mengenai perdagangan opsyen.
Dokumen API:https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrumentBot simulasi:https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument
Anda boleh mendaftarkan akaun di laman web bot simulasi, membuka API KEY, dan mendapatkan API KEY. Mengkonfigurasi di platform FMZ Quant Trading adalah sama dengan mengkonfigurasi bot sebenar.
Terdapat empat konsep asas untuk difahami mengenai perdagangan opsyen:
-Tanggal pelaksanaan: pihak panjang dan pendek pilihan menyelesaikan penghantaran kontrak pilihan pada tarikh ini. - Harga pelaksanaan: Pada tarikh pelaksanaan, pihak panjang dan pendek opsyen menyelesaikan penghantaran kontrak opsyen pada harga pelaksanaan. -Premium: iaitu harga opsyen. Seperti spot dan niaga hadapan, ia disenaraikan pada harga tawaran dan harga permintaan. Perlu diperhatikan bahawa kerana kecairan opsyen umumnya lebih rendah daripada niaga hadapan dan spot, perbezaan harga antara tawaran dan meminta mungkin besar, jadi banyak perhatian harus diberikan di sini! Selepas transaksi, harga urus niaga adalah kos kedudukan panjang opsyen, di mana kedudukan panjang mendapat hak (hak untuk menggunakan opsyen); Pilihan pendek, sebagai pihak yang menerima premium, menambah kewajipan. Setelah pilihan panjang meminta untuk menggunakan haknya, pilihan pendek mesti bekerjasama. - Pilihan jual beli: Pilihan panggilan yang dipanggil bermaksud bahawa kedudukan panjang pilihan mempunyai hak untuk meminta kedudukan pendek pilihan untuk membeli Bitcoin tertentu pada harga pelaksanaan pada tarikh pelaksanaan tertentu, dan kedudukan pendek mempunyai kewajipan untuk bekerjasama dengan kedudukan panjang; Pilihan put yang dipanggil bermaksud bahawa sisi panjang pilihan mempunyai hak untuk meminta sisi pendek untuk menjual Bitcoin tertentu pada harga pelaksanaan pada tarikh pelaksanaan tertentu, dan sisi pendek mempunyai kewajiban untuk bekerjasama dengan sisi panjang.
Selepas membaca dokumen API Deribit Exchange, kita dapat melihat bahawa antara muka ticker Deribit untuk mengakses niaga hadapan atau pilihan ticker adalah hanya masalah lulus dalam yang berbezainstrument_name
parameter (instrument_name ditetapkan oleh fungsi SetContractType), jadi pada dasarnya, anda boleh mengikuti antara mukaGetTicker
untuk mendapatkan pilihan pilihan.
Sudah tentu, platform FMZ Quant Trading merangkum bot sebenar Deribit Exchange secara lalai.
exchange.IO("base", "https://test.deribit.com")
Kemudian kita menubuhkan kontrak opsyenBTC-27DEC19-7000-P
pada masa ini.
Ini adalah opsyen jual dengan tarikh pelaksanaan: 27DEC19 dan harga pelaksanaan: 7000.
exchange.SetContractType("BTC-27DEC19-7000-P")
Kemudian mendapatkan, mari kita tulis bersama-sama dan biarkan kod menjalankan untuk menguji mendapatkan ticker untuk kontrak opsyen ini.
function main () {
exchange.IO("base", "https://test.deribit.com")
exchange.SetContractType("BTC-27DEC19-7000-P")
var ticker = exchange.GetTicker()
Log(ticker)
}
Ia mudah untuk menguji dengan menggunakan alat debugging:
Ia boleh dilihat bahawa harga adalah konsisten dengan yang pada bot simulasi.
Antara muka ticker lain dipanggil dengan cara yang sama, yang tidak akan diulangi di sini.
Perdagangan opsyen tidak terlalu aktif. Kadang-kadang tidak ada pesanan untuk membeli atau menjual. Pada masa ini, platform Perdagangan Kuantum FMZ akan mengesan nilai 0 di bahagian bawah, dan ia akan melaporkan ralat. Anda boleh menggunakanSetErrorFilter("Invalid ticker")
untuk mengabaikan kesilapan ini, dan menggunakan fungsiGetRawJSON
Di sini saya menulis contoh untuk mencapai fungsi 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
}
Apabila dipanggil, kami menulis:Log($.GetTicker(exchange))
Operasi meletakkan pesanan adalah sangat mudah, berbanding dengan perdagangan niaga hadapan, terdapat hanya dua arah membeli dan menjual.
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))
}
Perintah yang baru sahaja diletakkan juga muncul pada bot simulasi.
Dan...exchange.GetOrder(id)
boleh mencari maklumat pesanan.
Sama sahaja.CancelOrder
fungsi digunakan untuk pembatalan pesanan, sama seperti pembatalan pesanan untuk perdagangan niaga hadapan.
Mendapatkan akaun aset yang tersedia adalah sama seperti perdagangan niaga hadapan, hanya memanggilGetAccount
berfungsi secara langsung.
Meniru paparan pada halaman pertukaran:
Jalankan kod untuk mendapatkan.
Kita tidak boleh menggunakan yang terkaparGetPosition
fungsi secara langsung untuk kedudukan, kerana urus niaga Deribit lalai adalah urus niaga hadapan, bukan urus niaga opsyen, kita hanya boleh menggunakan fungsi ini untuk mendapatkan kedudukan niaga hadapan.
Jadi ini perlu menjadi fungsi yang terpendek untuk mendapatkan kedudukan pilihan.
Antara muka fungsi untuk mendapatkan kedudukan dalam dokumen API:
$.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))
untuk mencetak maklumat kedudukan.
Oleh itu, operasi asas boleh dilaksanakan, dan selebihnya boleh dikaji untuk strategi perdagangan opsyen.