حالیہ برسوں میں بہت سے تبادلے نے ڈیجیٹل کرنسی کے اختیارات کے اس مشتق کی تجارت کی خصوصیات کو کھول دیا ہے، اور روایتی اختیارات کی طرح، اختیارات کی تجارت اور مستقبل کی تجارت وغیرہ کے ساتھ مل کر، بہت سے تجارتی حکمت عملی، تجارتی طریقوں کو یکجا کیا جا سکتا ہے. اگرچہ مارکیٹ میں بہت سے کھلے ذرائع کی مقدار کی تجارت کے اوزار موجود ہیں، لیکن ان کے اوزار کو فریم ورک کی بنیادوں کو جاننے کی ضرورت ہوتی ہے، فریم ورک کی پروگرامنگ کی زبان کو لکھنے کے ساتھ واقف ہیں یا دستی طور پر پیچیدہ تعیناتی، ترتیب، ترمیم کرنے کی ضرورت ہوتی ہے.
ایجاد کنندہ کوانٹیمیٹڈFMZ.COMابتدائی آرکیٹیکچرز کے ڈیزائن میں، مختلف قسم کے مالیاتی مشتقوں کی مقدار سازی، پروگرام سازی کی تجارت کی حمایت کو مدنظر رکھتے ہوئے، اختیارات کی تجارت میں بہت تیزی سے رسائی حاصل کی گئی تھی۔ اختیارات کی تجارت بنیادی طور پر مستقبل کی تجارت کی طرح ہے، یا اس سے بھی زیادہ آسان ہے۔ اور نئے انٹرفیس شامل نہیں کیے گئے ہیں، FMZ کے استعمال سے واقف صارفین کو دیگر سیکھنے کے اخراجات میں اضافہ نہیں ہوتا ہے، صرف اختیارات کے معاہدے کو مستقبل کے معاہدے کی طرح ترتیب دے کر، اختیارات کے معاہدے پر عملدرآمد حاصل کرنے، نیچے کرنے، منسوخ کرنے، پوچھ گچھ کرنے، اسٹاک رکھنے وغیرہ کے لئے آپریشن کیا جا سکتا ہے۔
مثال کے طور پر، ہم ڈیربٹ ایکسچینج کے اختیارات کے معاہدے کا استعمال کرتے ہیں، مثال کے طور پر، ہم موجودہ کسی بھی اختیارات کے معاہدے کی اشاریہ قیمت حاصل کرنا چاہتے ہیں.
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"])
}
آپ دیکھ سکتے ہیں کہ صرف اس اعداد و شمار کو حاصل کرنے کے لئے، آپ کو N سے زیادہ کوڈ لکھنے کی ضرورت ہے۔
ہم نے 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) # 打印需要的数据,观察
}
جیسا کہ آپ دیکھ سکتے ہیں ، صرف چند لائنوں کے کوڈ کے ساتھ ، آپ کو مطلوبہ ڈیٹا حاصل کرنا بہت آسان ہے۔
یہ صرف تبادلے کے غیر دستخط شدہ عوامی 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,
}
اس کے علاوہ ، اگر آپ کو متوازی ، متضاد حصول ، ترتیب دینے والی کارروائیوں کی ضرورت ہے ، اور متضاد کوڈ بیس پر کام کرنے کے لئے استعمال کیا جاتا ہے تو ، آپ کو زیادہ پیچیدہ متضاد پروسیسنگ منطق لکھنے کی ضرورت ہوگی ، جس کی وجہ سے لاک ڈاؤن وغیرہ جیسے منطقی ڈیزائن کے مسائل پیدا ہوسکتے ہیں۔ اگر آپ کو چارٹ دکھانے کی ضرورت ہے تو ، پھر ایک بڑے ذخیرے کے استعمال کو سیکھنے کے ل even ، یہاں تک کہ ایک پروگرامنگ پر مبنی مقداری تاجر کو بھی سیکھنے میں کچھ وقت درکار ہوتا ہے۔ لیکن ایجاد کاروں کا استعمال کرنا بہت آسان ہے ، کیونکہ یہ تمام خصوصیات پہلے سے ہی نصب ہیں ، اور ڈیزائن کردہ کال انٹرفیس بہت آسان ہیں۔ آسان کوڈ کو ہر طرح کی ضروریات کو پورا کرنے کے لئے استعمال کیا جاسکتا ہے۔
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 لائن چارٹ تیار کیا جاسکے:
اس کے علاوہ بھی بہت سی خصوصیات ہیں جن کو دریافت کرنے اور ان کی ترقی کے لیے استعمال کیا جا سکتا ہے۔
اگر براہ راست اوپر کی طرح ایک گو زبان (یا پطرون وغیرہ) کے ساتھ لاگو کیا جاتا ہے تو ، ممکنہ طور پر نئے ساتھیوں کو ، براہ راست >_< سے دور کردیا جاتا ہے۔ ڈیربٹ کے اختیارات کے استعمال کے لئے مثال کی حکمت عملی کے بارے میں مزید معلومات حاصل کریں:https://www.fmz.com/strategy/179475