
पहले से ही कई डिजिटल मुद्रा वायदा एक्सचेंज हैं, लेकिन वायदा व्युत्पन्न, डिजिटल मुद्रा विकल्प ट्रेडिंग के रूप में, बाजार पर बहुत सारे एक्सचेंज नहीं हैं। विकल्प ट्रेडिंग का समर्थन करने वाले एक्सचेंजों में डेरीबिट और बिटमेक्स शामिल हैं। मात्रात्मक व्यापार के क्षेत्र में, विकल्प व्यापार के लिए भी कई रणनीतियाँ हैं, जैसे कि कुछ खोजी गई सामग्रियों में उल्लिखित विकल्प रणनीतियाँ:
| प्रकार | |||||
|---|---|---|---|---|---|
| दिशात्मक रणनीति: | कॉल ऑप्शन खरीदना | पुट ऑप्शन बेचना | बुल कॉल स्प्रेड | बुल पुट स्प्रेड | |
| – | पुट ऑप्शन खरीदें | कॉल ऑप्शन बेचना | बियर कॉल स्प्रेड | बियर पुट स्प्रेड | |
| अस्थिरता रणनीतियाँ: | स्ट्रैडल बेचें | वाइड स्ट्रैडल बेचें | स्ट्रैडल खरीदें | वाइड स्ट्रैडल खरीदें | |
| हेजिंग रणनीतियाँ: | कवर्ड कॉल | कवर्ड पुट | सुरक्षात्मक कॉल | सुरक्षात्मक पुट | |
| – | लंबी डबल सीमा | शॉर्ट पोजीशन डबल लिमिट | – | – |
उद्धृत:जोड़ना
विकल्प ट्रेडिंग रणनीति लिखने के लिए, आपको पहले एक ठोस आधार तैयार करना होगा और बुनियादी कार्यों से परिचित होना होगा, जैसे ऑर्डर देना, बाजार की जानकारी प्राप्त करना, ऑर्डर रद्द करना और पोजीशन प्राप्त करना। रणनीति लेखन अभी भी इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफॉर्म का उपयोग करता है, हालांकि इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफॉर्म वर्तमान में मुख्य रूप से मुद्रा-से-मुद्रा व्यापार, अनुबंध व्यापार और डिजिटल मुद्रा मात्रात्मक व्यापार के क्षेत्र में लीवरेज्ड ट्रेडिंग का समर्थन करता है। ऑप्शन ट्रेडिंग से जुड़ी ज़्यादा जानकारी नहीं है। नीचे, हम “डेरिबिट” एक्सचेंज को एक उदाहरण के रूप में लेंगे, ताकि डिजिटल मुद्रा ऑप्शन ट्रेडिंग खेलने के लिए इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफ़ॉर्म का उपयोग करने का तरीका बताया जा सके।
API दस्तावेज़: https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument सिमुलेशन डिस्क: https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument
आप सिमुलेशन प्लेटफ़ॉर्म वेबसाइट पर एक खाता पंजीकृत कर सकते हैं, API कुंजी सक्षम कर सकते हैं और API कुंजी प्राप्त कर सकते हैं। इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफॉर्म पर कॉन्फ़िगरेशन करना वास्तविक खाते को कॉन्फ़िगर करने के समान ही है।

विकल्प ट्रेडिंग के लिए आपको 4 बुनियादी अवधारणाओं को समझने की आवश्यकता है:

डेरीबिट एक्सचेंज के एपीआई दस्तावेज के अनुसार, डेरीबिट का बाजार इंटरफेस केवल वायदा या विकल्प बाजार की जानकारी तक पहुंचने के लिए डेटा पास करता है।instrument_nameपैरामीटर अलग हैं (instrument_name को SetContractType फ़ंक्शन द्वारा सेट किया जाता है), इसलिए मूलतः आप बाज़ार की जानकारी प्राप्त करने के लिए इंटरफ़ेस का उपयोग कर सकते हैं।GetTickerविकल्पों के लिए उद्धरण प्राप्त करें.
बेशक, इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफ़ॉर्म का डिफ़ॉल्ट पैकेज डेरीबिट एक्सचेंज का वास्तविक बाज़ार है। हमें पहले सिमुलेशन मार्केट पर स्विच करना चाहिए और निम्नलिखित कोड का उपयोग करना चाहिए:
exchange.IO("base", "https://test.deribit.com")
फिर हमने वर्तमान में एक विकल्प अनुबंध स्थापित किया हैBTC-27DEC19-7000-P:
यह एक पुट ऑप्शन है जिसकी एक्सरसाइज तिथि: 27DEC19 और एक्सरसाइज मूल्य: 7000 है
exchange.SetContractType("BTC-27DEC19-7000-P")
फिर इसे प्राप्त करें। हम इसे एक साथ लिखते हैं, कोड चलाते हैं, और इस विकल्प अनुबंध की बाजार जानकारी प्राप्त करने के लिए परीक्षण करते हैं।
function main () {
exchange.IO("base", "https://test.deribit.com")
exchange.SetContractType("BTC-27DEC19-7000-P")
var ticker = exchange.GetTicker()
Log(ticker)
}
डिबगिंग टूल का उपयोग करके परीक्षण करना बहुत सुविधाजनक हो सकता है:
आप देख सकते हैं कि कीमत सिमुलेशन डिस्क पर दी गई कीमत के अनुरूप है।

अन्य मार्केट इंटरफेस की कॉलिंग विधियाँ समान हैं और उन्हें यहाँ दोहराया नहीं जाएगा। यह ध्यान दिया जाना चाहिए कि:
ऑप्शन ट्रेडिंग बहुत सक्रिय नहीं है। कभी-कभी बाजार में कोई खरीद आदेश या बिक्री आदेश नहीं होगा। इस समय, इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफ़ॉर्म की निचली परत 0 के मान का पता लगाएगी और एक त्रुटि की रिपोर्ट करेगी। आप उपयोग कर सकते हैंSetErrorFilter("Invalid ticker")इस त्रुटि को अनदेखा करें और उपयोग करेंGetRawJSONयह फ़ंक्शन बाज़ार की मूल जानकारी प्राप्त करता है और डेटा को समाहित करता है। यहाँ मैं समान फ़ंक्शन प्राप्त करने के लिए एक उदाहरण लिखता हूँ:
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
}
कॉल करते समय लिखें:Log($.GetTicker(exchange))
ऑर्डर प्लेसमेंट ऑपरेशन बहुत सरल है। वायदा कारोबार की तुलना में, केवल दो दिशाएँ हैं: खरीदें और बेचें। इसका भी प्रयोग करेंSell,Buyकार्य क्रम.
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))
}

अभी दिया गया ऑर्डर भी सिम्युलेटेड ट्रेडिंग बोर्ड पर दिखाई देता है।

औरexchange.GetOrder(id)आप ऑर्डर की जानकारी पूछ सकते हैं.
ऑर्डर रद्द करने के लिए भी यही विधि अपनाई जाती है।CancelOrderइसका कार्य, वायदा कारोबार में ऑर्डर रद्द करने जैसा है।

किसी खाते में उपलब्ध परिसंपत्तियों को प्राप्त करना ठीक वैसा ही है जैसा कि वायदा कारोबार में होता है।GetAccountसमारोह।
सिम्युलेटेड एक्सचेंज पेज पर प्रदर्शित करें

कोड चलाकर प्राप्त करें:

पदों को धारण करने के लिए, आप सीधे पैकेज्ड का उपयोग नहीं कर सकतेGetPositionफ़ंक्शन, क्योंकि डिफ़ॉल्ट रूप से डेरीबिट लेनदेन वायदा लेनदेन होते हैं, विकल्प लेनदेन नहीं, और केवल इस फ़ंक्शन का उपयोग वायदा स्थिति प्राप्त करने के लिए किया जा सकता है।
इसलिए, हमें विकल्प स्थितियां प्राप्त करने के कार्य को स्वयं ही समाहित करना होगा।
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
}
पुकारनाLog($.GetPosition(exchange))आप स्थिति की जानकारी प्रिंट कर सकते हैं.

इस तरह, बुनियादी परिचालन प्राप्त किया जा सकता है, और बाकी विकल्प ट्रेडिंग रणनीतियों का अध्ययन करना है।