डिजिटल मुद्रा विकल्पों के लिए एक अनबॉक्स क्वांटिफाइड ट्रेडिंग टूल

लेखक:छोटे सपने, बनाया गयाः 2019-12-27 17:35:30, अद्यतनः 2023-10-17 21:26:52

img

डिजिटल मुद्रा विकल्पों के लिए एक अनबॉक्स क्वांटिफाइड ट्रेडिंग टूल

1. डिजिटल मुद्राओं के विकल्पों की मात्रा, प्रक्रियागत लेनदेन

हाल ही में, कई एक्सचेंजों ने डिजिटल मुद्रा विकल्पों के इस व्युत्पन्न के लिए व्यापारिक सुविधाओं को खोला है, जो पारंपरिक विकल्पों के समान हैं, विकल्पों के व्यापार और वायदा व्यापार आदि के संयोजन में कई व्यापारिक रणनीतियों और व्यापारिक तरीकों को जोड़ सकते हैं। हालांकि बाजार में कई खुले स्रोत मात्रात्मक व्यापारिक उपकरण हैं, लेकिन इन उपकरणों को चलाने के लिए ढांचे के मूल को समझने की आवश्यकता होती है, फ्रेमवर्क को लिखने की प्रोग्रामिंग भाषा के साथ परिचित होना या स्वयं को जटिल तैनाती, विन्यास, संशोधन की आवश्यकता होती है। प्रक्रियात्मक व्यापार, मात्रात्मक व्यापार में प्रवेश करने वाले नौसिखियों के लिए यह बहुत सुविधाजनक नहीं है। बड़ी मात्रा में व्यापारिक रणनीतियों पर ध्यान केंद्रित किया जाना चाहिए, व्यापारिक विचारों का समय प्रोग्राम में निवेश किया जाता है, प्रोग्रामिंग भाषाओं को सीखा जाता है।

आविष्कारक मात्राFMZ.COM) प्रारम्भिक वास्तुकला डिजाइन में, विभिन्न प्रकार के वित्तीय व्युत्पन्नों के मात्रात्मककरण और प्रक्रियात्मक लेनदेन के समर्थन को ध्यान में रखते हुए, विकल्पों के व्यापार में बहुत तेज़ पहुंच प्रदान की गई। विकल्पों का व्यापार मूल रूप से वायदा व्यापार के समान है, या इससे भी सरल है। और बिना किसी नए इंटरफ़ेस को जोड़े, एफएमजेड के साथ परिचित उपयोगकर्ताओं के लिए अन्य सीखने की लागत नहीं बढ़ेगी, केवल विकल्प अनुबंध को वायदा अनुबंध के रूप में सेट करें, विकल्प अनुबंध पर लेनदेन प्राप्त, ऑर्डर, निकासी, पूछताछ, रखरखाव आदि के संचालन के लिए।

2। देशी प्रोग्रामिंग भाषा का उपयोग करके सीधे डेरबिट एक्सचेंज तक पहुंचें

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

यह Go भाषा का उपयोग करके किया जाता हैः

package main 

import "net/http"
import "io/ioutil"
import "fmt"
import "encoding/json"



func main() {
    // 获取行情, 访问接口:https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-27DEC19-7250-P

    resp, err := http.Get("https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-27DEC19-7250-P")
    if err != nil {
        panic(err)
    }

    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    ret := string(body)
    fmt.Println("这只是字符串数据ticker:", ret)
    fmt.Println("需要转换为JSON格式") 

    type js struct {
        data interface{}
    }

    ticker := new(js)

    json.Unmarshal([]byte(ret), &ticker.data)

    fmt.Println("ticker:", ticker) 
    fmt.Println("ticker 中的标记价格数据index_price:", ticker.data.(map[string]interface{})["result"].(map[string]interface{})["index_price"])
}

img

जैसा कि आप देख सकते हैं, केवल इस डेटा को प्राप्त करने के लिए, कोड का एक ढेर लिखा गया है।

3। आविष्कारक द्वारा क्वांटिफाइड एक्सचेंज प्लेटफॉर्म पैकेजिंग का उपयोग करके इंटरफ़ेस

हम FMZ का उपयोग करते हैं और दो सरल शब्दों में इसे हल करते हैं।

function main() {
    exchange.IO("base", "https://test.deribit.com")   # 切换为 交易所提供的模拟盘
    exchange.SetContractType("BTC-3JAN20-7250-P")     # 设置期权合约
    var ticker = exchange.GetTicker()                 # 获取期权行情
    Log(ticker.Info.result.index_price)               # 打印需要的数据,观察
}

img

जैसा कि आप देख सकते हैं, कोड की कुछ पंक्तियों के साथ, आवश्यक डेटा प्राप्त करना बहुत आसान है।

यह केवल एक्सचेंजों के गैर-हस्ताक्षरित सार्वजनिक एपीआई इंटरफेस का उपयोग करता है, जो कि हस्ताक्षरित निजी इंटरफेस का उपयोग करने के लिए अधिक जटिल है।

प्रत्येक इंटरफ़ेस को हस्ताक्षर, पैरामीटर आदि के ढेरों से निपटना पड़ता हैः

        strBody := ""
	strQuery := ""
	ts := toString(time.Now().UnixNano() / 1e6)
	nonce := toString(time.Now().UnixNano() / 1e6)
	uri := resource
	if httpMethod == "GET" {
		strQuery = encodeParams(params, false)
		uri = fmt.Sprintf("%s?%s", resource, strQuery)
	} else if httpMethod == "POST" {
		if len(raw) > 0 && len(raw[0]) > 0 {
			strBody = raw[0]
		} else {
			strBody = json_encode(params)
		}
	}

	strRequestDate := fmt.Sprintf("%s\n%s\n%s\n", httpMethod, uri, strBody)
	strToSign := fmt.Sprintf("%s\n%s\n%s", ts, nonce, strRequestDate)
	h := hmac.New(sha256.New, []byte(p.secretKey))
	h.Write([]byte(strToSign))
	strSign := hex.EncodeToString(h.Sum(nil))

	req := Request{
		Method:  httpMethod,
		Uri:     fmt.Sprintf("%s%s", p.apiBase, uri),
		Timeout: p.timeout,
		Body:    strBody,
	}

4. अधिक जटिल आवश्यकताएं, कार्य

इतना ही नहीं, यदि आप एक ही समय में, असिंक्रोनस प्राप्त करने के लिए, ऑर्डर करने के लिए, और असिंक्रोनस कोडबेस को संभालते हैं, तो आपको अधिक जटिल असिंक्रोनस प्रसंस्करण तर्क लिखने की आवश्यकता होगी, और एक अनजाने में लॉगिकल डिजाइन की समस्याएं हो सकती हैं। यदि आप चार्ट प्रदर्शित करने की आवश्यकता है, तो एक बड़े स्टैक के उपयोग को सीखने के लिए, यहां तक कि एक प्रोग्रामिंग आधारित मात्रात्मक व्यापारी के लिए भी सीखने में कुछ समय लगता है। लेकिन आविष्कारक का उपयोग करना आसान है क्योंकि ये सभी सुविधाएं पहले से ही स्थापित हैं और डिज़ाइन किए गए कॉल इंटरफ़ेस बहुत सरल हैं। बहुत सारे कोड विभिन्न आवश्यकताओं के लिए कार्य करते हैं।

function main(){
    exchange.IO("base", "https://test.deribit.com")
    exchange.SetContractType("BTC-27DEC19-7250-P")
    while(1){
        var records = exchange.GetRecords()
        Log(records)
        $.PlotRecords(records, "K")
        Sleep(1000)
    }
}

प्लेटफ़ॉर्म पर उपलब्ध टेम्पलेट लाइब्रेरी "ड्राइंग लाइन क्लास लाइब्रेरी" का उपयोग करके, K-लाइन चार्ट को सरल तरीके से बनाया जा सकता हैःimg

और भी बहुत सी सुविधाएँ हैं जिनकी खोज और विकास किया जा सकता है!

5 और बाद में

यदि सीधे ऊपर की तरह एक गो भाषा (या पायथन आदि) का उपयोग करके लागू किया जाता है, तो नए छात्रों को सीधे >_< से मना कर दिया जाता है। Deribit विकल्पों के संचालन के लिए उदाहरण रणनीतियों के बारे में अधिक जानकारी प्राप्त करेंःhttps://www.fmz.com/strategy/179475


संबंधित

अधिक