حالیہ برسوں میں بہت سے تبادلے نے ڈیجیٹل کرنسی کے اختیارات کے اس مشتق کی تجارت کی خصوصیات کو کھول دیا ہے، اور روایتی اختیارات کی طرح، اختیارات کی تجارت اور مستقبل کی تجارت وغیرہ کے ساتھ مل کر، بہت سے تجارتی حکمت عملی، تجارتی طریقوں کو یکجا کیا جا سکتا ہے. اگرچہ مارکیٹ میں بہت سے کھلے ذرائع کی مقدار کی تجارت کے اوزار موجود ہیں، لیکن ان کے اوزار کو فریم ورک کی بنیادوں کو جاننے کی ضرورت ہوتی ہے، فریم ورک کی پروگرامنگ کی زبان کو لکھنے کے ساتھ واقف ہیں یا دستی طور پر پیچیدہ تعیناتی، ترتیب، ترمیم کرنے کی ضرورت ہوتی ہے.
发明者量化(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