ڈیجیٹل کرنسی کے اختیارات کے لئے شیلف سے باہر مقداری تجارتی آلہ

مصنف:لیدیہ, تخلیق: 2022-12-23 22:12:54, تازہ کاری: 2023-09-20 10:41:08

img

ڈیجیٹل کرنسی کے اختیارات کے لئے شیلف سے باہر مقداری تجارتی آلہ

ڈیجیٹل کرنسی کے اختیارات کی مقداری اور پروگرام ٹریڈنگ

حال ہی میں ، بہت سے تبادلے نے کامیابی کے ساتھ ڈیجیٹل کرنسی کے اختیارات کو مشتق کے طور پر تجارتی فنکشن کھول دیا ہے۔ روایتی اختیارات کی طرح ، اختیارات کی تجارت اور فیوچر ٹریڈنگ کو متعدد تجارتی حکمت عملیوں اور طریقوں کو تشکیل دینے کے لئے جوڑا جاسکتا ہے۔ اگرچہ مارکیٹ میں بہت سارے اوپن سورس مقداری تجارتی ٹولز موجود ہیں ، لیکن ان ٹولز کو اکثر بنیادی فریم ورک کو سمجھنے ، فریم ورک لکھنے کے لئے پروگرامنگ زبان سے واقف ہونے ، یا دستی طور پر پیچیدہ ڈیبگنگ ، تشکیل اور ترمیم انجام دینے کی ضرورت ہوتی ہے۔ یہ پروگرام ٹریڈنگ اور مقداری تجارت کے ابتدائی افراد کے لئے بہت آسان نہیں ہے۔ تجارتی حکمت عملیوں اور تجارتی خیالات کو بہت زیادہ وقت وقف کرنا چاہئے تھا اور پروگرام ڈیبگنگ اور پروگرامنگ زبان سیکھنے میں سرمایہ کاری کی گئی ہے۔

ابتدائی فن تعمیر کے ڈیزائن میں، FMZ Quant (FMZ.COMایف ایم زیڈ کے ساتھ تجارت کرنے والے صارفین کے لئے ، فیوچر ٹریڈنگ کا بنیادی طور پر ایک نیا انٹرفیس موجود نہیں ہے۔ ایف ایم زیڈ پلیٹ فارم سے واقف صارفین کو دیگر سیکھنے کے اخراجات میں اضافہ نہیں ہوگا۔ وہ صرف مارکیٹ کی معلومات حاصل کرنے ، آرڈرز دینے ، آرڈرز منسوخ کرنے ، پوزیشنوں کی استفسار کرنے ، وغیرہ کے لئے آپشن معاہدے کو فیوچر معاہدے کے طور پر ترتیب دے سکتے ہیں۔

2. مقامی پروگرامنگ زبان کا استعمال کرتے ہوئے براہ راست Deribit تبادلے تک رسائی حاصل کریں

آئیے مثال کے طور پر ڈیریبٹ ایکسچینج کے آپشن معاہدے کو لیتے ہیں۔ مثال کے طور پر ، ہمیں موجودہ آپشن معاہدے کی انڈیکس قیمت حاصل کرنے کی ضرورت ہے۔

گو زبان میں لاگو:

package main 

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



func main() {
    // Get ticker, access interface: 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("This is just string data ticker:", ret)
    fmt.Println("Need to convert to JSON format") 

    type js struct {
        data interface{}
    }

    ticker := new(js)

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

    fmt.Println("ticker:", ticker) 
    fmt.Println("index_price, marked price data in ticker:", ticker.data.(map[string]interface{})["result"].(map[string]interface{})["index_price"])
}

3۔ ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کے ذریعہ احاطہ کردہ انٹرفیس کا استعمال کرتے ہوئے

ہم نے اسے دو سادہ جملوں میں ایف ایم زیڈ پلیٹ فارم کا استعمال کرتے ہوئے ختم کیا۔

function main() {
    exchange.IO("base", "https://test.deribit.com")   # Switch to the demo offered by the exchange
    exchange.SetContractType("BTC-3JAN20-7250-P")     # Set up options contracts
    var ticker = exchange.GetTicker()                 # Get options ticker
    Log(ticker.Info.result.index_price)               # Print the required data and observe
}

img img

جیسا کہ ہم دیکھ سکتے ہیں، مطلوبہ ڈیٹا کو صرف چند لائنوں کے کوڈ میں حاصل کرنا بہت آسان ہے.

یہ صرف تبادلے کے غیر دستخط شدہ عوامی API انٹرفیس تک رسائی حاصل کر رہا ہے۔ دستخط شدہ نجی انٹرفیس تک رسائی حاصل کرنا زیادہ پیچیدہ ہوگا۔

ہر انٹرفیس کو بہت سی دستخط، پیرامیٹر پروسیسنگ وغیرہ کرنا پڑتا ہے.

        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۔ زیادہ پیچیدہ تقاضے اور افعال

اس کے علاوہ ، اگر آپ کو بیک وقت ، مارکیٹ تک غیر متزلزل رسائی ، آرڈر آپریشنز ، اور کوڈ لائبریری کو غیر متزلزل سنبھالنے کے ل use استعمال کرنے کی ضرورت ہے تو ، آپ کو زیادہ پیچیدہ غیر متزلزل پروسیسنگ منطق لکھنے کی ضرورت ہے۔ غفلت سے لاک جیسے منطقی ڈیزائن کے مسائل بھی پیدا ہوسکتے ہیں۔ اگر آپ کو چارٹ ڈسپلے کو دوبارہ استعمال کرنے کی ضرورت ہے تو ، پھر آپ کو بہت ساری لائبریریوں کا استعمال کرنا سیکھنے کی ضرورت ہے۔ پروگرامنگ کی بنیاد رکھنے والے مقداری تاجر کو بھی سیکھنے کے لئے کچھ وقت درکار ہے۔ تاہم ، ایف ایم زیڈ کوانٹ پلیٹ فارم کا استعمال کرنا بہت آسان ہے ، کیونکہ یہ افعال انکیپسول ہوچکے ہیں ، اور ڈیزائن کردہ کال انٹرفیس بہت آسان اور استعمال میں آسان ہیں۔ آپ مختلف ضروریات کے افعال کو نافذ کرنے کے لئے بہت کم کوڈ استعمال کرسکتے ہیں۔

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

مزید افعال دریافت اور تیار کرنے کے لئے ہیں!

۵. پوسٹ اسکرپٹ

اگر یہ براہ راست گو زبان (یا پطرون، وغیرہ) میں مندرجہ بالا کی طرح لاگو کیا جاتا ہے تو، نئے طالب علموں کو براہ راست حوصلہ شکنی کی جا سکتی ہے>_< مثال کے طور پر، Deribit آپشن آپریشن کی حکمت عملی، دیکھیں:https://www.fmz.com/strategy/179475


متعلقہ

مزید