डिजिटल मुद्रा विकल्प रणनीति के बैकटेस्टिंग पर प्रारंभिक अध्ययन
हाल ही में, एफएमजेड प्लेटफॉर्म ने डिजिटल मुद्रा विकल्पों के बैकटेस्टिंग का समर्थन करने के लिए बैकटेस्टिंग प्रणाली को अपग्रेड किया है। इस बार, यह डेरिबिट एक्सचेंज के कुछ विकल्प डेटा का समर्थन करता है। इसलिए हमारे पास विकल्प व्यापार सीखने और रणनीति सत्यापन के लिए बेहतर उपकरण हैं।
बैकटेस्ट प्रणाली में परिभाषित डेरिबिट विकल्प यूरोपीय शैली का है, और एक अनुबंध का मूल्य 1BTC है। विकल्प अनुबंध कोड हैः BTC-7AUG20-12750-C।
विषय | अभ्यास की तिथि | अभ्यास मूल्य | (कॉल/पॉट) विकल्प |
---|---|---|---|
बीटीसी | 7AUG20 | 12750 | सी |
बिटकॉइन | 7 अगस्त, 2020 को अभ्यास | अभ्यास मूल्य 12750 | कॉल विकल्प |
बीटीसी | 7AUG20 | 12750 | पी |
बिटकॉइन | 7 अगस्त, 2020 को अभ्यास | अभ्यास मूल्य 12750 | विकल्प डालें |
अनुबंध स्थापित करने और पद प्राप्त करने जैसे कार्य डिजिटल मुद्रा वायदा के समान हैं।
सेट कॉन्ट्रैक्टः एक्सचेंज.सेट कॉन्ट्रैक्ट प्रकार ((
एक विकल्प अनुबंध की कीमत एक विकल्प अनुबंध का प्रीमियम है, और विकल्प खरीदार को विकल्प विक्रेता को विकल्प प्रीमियम का भुगतान करने की आवश्यकता है। खरीदार को अभ्यास करने का अधिकार है, और विक्रेता को अभ्यास करने का दायित्व है। विकल्प अनुबंध का अभ्यास करने से पहले, इसका व्यापार किया जा सकता है (जैसे परिसमापन, दायित्वों का निपटान) ।
एक कॉल ऑप्शन बेचें और एक स्पॉट खरीदें।
/*backtest
start: 2020-07-27 00:00:00
end: 2020-08-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Deribit","currency":"BTC_USD"},{"eid":"OKEX","currency":"BTC_USDT","balance":100000}]
*/
function main() {
exchanges[0].SetContractType('BTC-7AUG20-12750-C');
var initSpotAcc = _C(exchanges[1].GetAccount)
var isFirst = true
while(true) {
var optionTicker = exchanges[0].GetTicker()
var spotTicker = exchanges[1].GetTicker()
if(isFirst) {
exchanges[0].SetDirection("sell")
exchanges[0].Sell(optionTicker.Buy, 1)
exchanges[1].Buy(spotTicker.Sell, 1)
isFirst = false
}
var optionPos = _C(exchanges[0].GetPosition)
var nowSpotAcc = _C(exchanges[1].GetAccount)
var diffStocks = (nowSpotAcc.Stocks - initSpotAcc.Stocks)
var diffBalance = (nowSpotAcc.Balance - initSpotAcc.Balance)
var spotProfit = diffBalance + diffStocks * spotTicker.Last
var optionProfit = optionPos[0].Profit * spotTicker.Last
LogProfit(spotProfit + optionProfit)
$.PlotLine("Spots", spotProfit)
$.PlotLine("Options", optionProfit)
Sleep(500)
}
}
विकल्प स्पॉट में खरीदी गई परिसंपत्तियों के लिए एक निश्चित स्तर की हेजिंग सुरक्षा प्रदान कर सकते हैं। आम तौर पर स्पॉट के बारे में आशावादी होने और स्पॉट को रखने के इच्छुक होने पर उपयोग किया जाता है। जोखिम स्पॉट की कीमतों में गिरावट में निहित है। हालांकि एक निश्चित हद तक, विकल्प एक निश्चित स्पॉट नुकसान की भरपाई कर सकते हैं, लेकिन नुकसान के विकल्प प्रीमियम से अधिक होने के बाद, एक शुद्ध नुकसान होगा।
इसके अतिरिक्त डिजिटल मुद्रा विकल्प बाजार की तरलता औसत है, और कभी-कभी कोई प्रतिपक्ष नहीं पाया जाता है। यह भी एक मुद्दा है जिस पर विचार करने की आवश्यकता है।
इसी तरह, हम वायदा के साथ स्पॉट बदल सकते हैं, कोड इस प्रकार हैः
/*backtest
start: 2020-07-27 00:00:00
end: 2020-08-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Deribit","currency":"BTC_USD"},{"eid":"Futures_OKCoin","currency":"BTC_USD"}]
*/
function main() {
exchanges[0].SetContractType('BTC-7AUG20-12750-C');
exchanges[1].SetContractType("quarter")
var isFirst = true
while(true) {
var optionTicker = exchanges[0].GetTicker()
var futuresTicker = exchanges[1].GetTicker()
if(isFirst) {
exchanges[0].SetDirection("sell")
exchanges[0].Sell(optionTicker.Buy, 1)
exchanges[1].SetDirection("buy")
exchanges[1].Buy(futuresTicker.Sell, _N(1 * futuresTicker.Sell / 100, 0))
isFirst = false
}
var optionPos = _C(exchanges[0].GetPosition)
var futuresPos = _C(exchanges[1].GetPosition)
var futuresProfit = futuresPos[0].Profit
var optionProfit = optionPos[0].Profit
LogProfit(futuresProfit + optionProfit)
$.PlotLine("Futures", futuresProfit)
$.PlotLine("Options", optionProfit)
Sleep(500)
}
}
फ्यूचर्स स्पॉट की तुलना में कब्जा की गई पूंजी को कम कर सकते हैं, लेकिन जोखिम स्पॉट की तुलना में अधिक है।
इसके अतिरिक्त, कई अन्य विकल्प व्यापार संयोजन हैंः
bull call spread
Bear Put Spread
जो लोग रुचि रखते हैं, वे बैकटेस्ट सिस्टम में इसका अध्ययन कर सकते हैं।