حال ہی میں ، بہت سے تبادلے نے کامیابی کے ساتھ ڈیجیٹل کرنسی کے اختیارات کو مشتق کے طور پر تجارتی فنکشن کھول دیا ہے۔ روایتی اختیارات کی طرح ، اختیارات کی تجارت اور فیوچر ٹریڈنگ کو متعدد تجارتی حکمت عملیوں اور طریقوں کو تشکیل دینے کے لئے جوڑا جاسکتا ہے۔ اگرچہ مارکیٹ میں بہت سارے اوپن سورس مقداری تجارتی ٹولز موجود ہیں ، لیکن ان ٹولز کو اکثر بنیادی فریم ورک کو سمجھنے ، فریم ورک لکھنے کے لئے پروگرامنگ زبان سے واقف ہونے ، یا دستی طور پر پیچیدہ ڈیبگنگ ، تشکیل اور ترمیم انجام دینے کی ضرورت ہوتی ہے۔ یہ پروگرام ٹریڈنگ اور مقداری تجارت کے ابتدائی افراد کے لئے بہت آسان نہیں ہے۔ تجارتی حکمت عملیوں اور تجارتی خیالات کو بہت زیادہ وقت وقف کرنا چاہئے تھا اور پروگرام ڈیبگنگ اور پروگرامنگ زبان سیکھنے میں سرمایہ کاری کی گئی ہے۔
ابتدائی فن تعمیر کے ڈیزائن میں، FMZ Quant (FMZ.COMایف ایم زیڈ کے ساتھ تجارت کرنے والے صارفین کے لئے ، فیوچر ٹریڈنگ کا بنیادی طور پر ایک نیا انٹرفیس موجود نہیں ہے۔ ایف ایم زیڈ پلیٹ فارم سے واقف صارفین کو دیگر سیکھنے کے اخراجات میں اضافہ نہیں ہوگا۔ وہ صرف مارکیٹ کی معلومات حاصل کرنے ، آرڈرز دینے ، آرڈرز منسوخ کرنے ، پوزیشنوں کی استفسار کرنے ، وغیرہ کے لئے آپشن معاہدے کو فیوچر معاہدے کے طور پر ترتیب دے سکتے ہیں۔
آئیے مثال کے طور پر ڈیریبٹ ایکسچینج کے آپشن معاہدے کو لیتے ہیں۔ مثال کے طور پر ، ہمیں موجودہ آپشن معاہدے کی انڈیکس قیمت حاصل کرنے کی ضرورت ہے۔
گو زبان میں لاگو:
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"])
}
ہم نے اسے دو سادہ جملوں میں ایف ایم زیڈ پلیٹ فارم کا استعمال کرتے ہوئے ختم کیا۔
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
}
جیسا کہ ہم دیکھ سکتے ہیں، مطلوبہ ڈیٹا کو صرف چند لائنوں کے کوڈ میں حاصل کرنا بہت آسان ہے.
یہ صرف تبادلے کے غیر دستخط شدہ عوامی 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,
}
اس کے علاوہ ، اگر آپ کو بیک وقت ، مارکیٹ تک غیر متزلزل رسائی ، آرڈر آپریشنز ، اور کوڈ لائبریری کو غیر متزلزل سنبھالنے کے ل 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)
}
}
پلیٹ فارم کے ذریعہ فراہم کردہ ٹیمپلیٹ لائبریری
مزید افعال دریافت اور تیار کرنے کے لئے ہیں!
اگر یہ براہ راست گو زبان (یا پطرون، وغیرہ) میں مندرجہ بالا کی طرح لاگو کیا جاتا ہے تو، نئے طالب علموں کو براہ راست حوصلہ شکنی کی جا سکتی ہے>_< مثال کے طور پر، Deribit آپشن آپریشن کی حکمت عملی، دیکھیں:https://www.fmz.com/strategy/179475