ডিজিটাল মুদ্রা বিকল্প কৌশল ব্যাকটেস্টিং উপর প্রাথমিক গবেষণা
সম্প্রতি, এফএমজেড প্ল্যাটফর্ম ডিজিটাল মুদ্রা বিকল্পগুলির ব্যাকটেস্টিং সমর্থন করার জন্য ব্যাকটেস্টিং সিস্টেমটি আপগ্রেড করেছে। এই সময়, এটি ডেরিবিত এক্সচেঞ্জের কিছু বিকল্প ডেটা সমর্থন করে। সুতরাং আমাদের বিকল্প ট্রেডিং শেখার এবং কৌশল যাচাইয়ের জন্য আরও ভাল সরঞ্জাম রয়েছে।
ব্যাকটেস্ট সিস্টেমে সংজ্ঞায়িত ডেরিবিট বিকল্পটি ইউরোপীয় স্টাইলের, এবং একটি চুক্তির মান 1BTC। বিকল্প চুক্তির কোডটি হলঃ BTC-7AUG20-12750-C।
বিষয় | ব্যায়ামের তারিখ | ব্যায়াম মূল্য | (Call/Put) বিকল্প |
---|---|---|---|
বিটিসি | 7AUG20 | 12750 | সি |
বিটকয়েন | ৭ই আগস্ট ২০২০ তারিখে অনুশীলন | ব্যায়াম মূল্য 12750 | কল অপশন |
বিটিসি | 7AUG20 | 12750 | পি |
বিটকয়েন | ৭ই আগস্ট ২০২০ তারিখে অনুশীলন | ব্যায়াম মূল্য 12750 | পস বিকল্প |
ডিজিটাল মুদ্রার ফিউচারগুলির সাথে চুক্তি স্থাপন এবং অবস্থান অর্জনের মতো ক্রিয়াকলাপ একই।
সেট কন্ট্রাক্টঃ exchange.SetContractType ((
একটি বিকল্প চুক্তির মূল্য হল একটি বিকল্প চুক্তির প্রিমিয়াম, এবং বিকল্প ক্রেতাকে বিকল্প বিক্রেতার কাছে বিকল্প প্রিমিয়াম প্রদান করতে হবে। ক্রেতা ব্যায়াম করার অধিকার আছে, এবং বিক্রেতার ব্যায়াম করার বাধ্যবাধকতা আছে। বিকল্প চুক্তি ব্যায়াম করার আগে, এটি বাণিজ্য করা যেতে পারে (যেমন তরলকরণ, বাধ্যবাধকতা নিষ্পত্তি) ।
একটা ক্যাল অপশন বিক্রি করে একটা স্পট কিনুন।
/*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
যারা আগ্রহী তারা ব্যাকটেস্ট সিস্টেমে এটি অধ্যয়ন করতে পারেন।