
সম্প্রতি, ইনভেন্টর কোয়ান্টিটেটিভ ট্রেডিং প্ল্যাটফর্ম ডিজিটাল মুদ্রা বিকল্প ব্যাকটেস্টিং সমর্থন করার জন্য তার ব্যাকটেস্টিং সিস্টেম আপগ্রেড করেছে।Deribitএক্সচেঞ্জ থেকে কিছু বিকল্প ডেটা। অতএব, বিকল্প ট্রেডিং শেখার এবং কৌশল যাচাই করার জন্য আমাদের কাছে আরও ভাল সরঞ্জাম রয়েছে।
ব্যাকটেস্টিং সিস্টেমে সংজ্ঞায়িতDeribitবিকল্পগুলি ইউরোপীয় শৈলী, এবং একটি চুক্তির মূল্য 1 BTC। বিকল্প চুক্তি কোড হল:BTC-7AUG20-12750-C。
| বিষয়বস্তু | ব্যায়াম তারিখ | ব্যায়াম মূল্য | (কল/পুট) বিকল্প |
|---|---|---|---|
| BTC | 7AUG20 | 12750 | C |
| বিটকয়েন | 7 আগস্ট, 2020 এ অনুশীলন করা হয়েছে | ব্যায়াম মূল্য 12750 | কল বিকল্প |
| BTC | 7AUG20 | 12750 | P |
| বিটকয়েন | 7 আগস্ট, 2020 এ অনুশীলন করা হয়েছে | ব্যায়াম মূল্য 12750 | বিকল্প রাখুন |
চুক্তি স্থাপন এবং অবস্থান প্রাপ্তির মতো কাজগুলি ডিজিটাল মুদ্রার ফিউচারের মতোই।
চুক্তি সেট আপ করুন:exchange.SetContractType("BTC-7AUG20-12750-C")
অবস্থান পান:var pos = exchange.GetPosition()
একটি বিকল্প চুক্তির মূল্য হল একটি বিকল্প চুক্তির প্রিমিয়াম, এবং বিকল্প ক্রেতাকে বিকল্প বিক্রেতাকে বিকল্প প্রিমিয়াম দিতে হবে। ক্রেতা অধিকার প্রয়োগের অধিকার পায় এবং বিক্রেতার অধিকার প্রয়োগের বাধ্যবাধকতা রয়েছে। ব্যায়ামের আগে বিকল্প চুক্তিগুলি লেনদেন করা যেতে পারে (যেমন অবস্থান বন্ধ করা এবং বাধ্যবাধকতা নিষ্পত্তি করা)।
কল অপশন বিক্রি করুন এবং স্পট কিনুন।
/*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("现货", spotProfit)
$.PlotLine("期权", 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("期货", futuresProfit)
$.PlotLine("期权", optionProfit)
Sleep(500)
}
}
ব্যাকটেস্ট চিত্রে দেখানো হয়েছে:

ফিউচার স্পট থেকে কম তহবিল দখল করতে পারে, তবে স্পট থেকে ঝুঁকি বেশি।
এছাড়াও, অন্যান্য অনেক বিকল্প ট্রেডিং সমন্বয় আছে:
যারা আগ্রহী তারা ব্যাকটেস্টিং সিস্টেমে এটি অধ্যয়ন করতে পারেন।