پی پی
خالی اہم ((() {
تبادلے[0].IO(
The ZB exchange is special. There are two addresses: one is the market data interface address, and the other is the trading interface address. Switch the address:
```js
function main() {
// The second parameter of exchange.IO is the trading interface address, and the third parameter is the market interface address, which is switched to an address that can be accessed domestically
exchange.IO("base", "https://trade.zb.plus", "http://api.zb.plus")
// Print the account information
Log(exchange.GetAccount())
}
def main():
exchange.IO("base", "https://trade.zb.plus", "http://api.zb.plus")
Log(exchange.GetAccount())
void main() {
exchange.IO("base", "https://trade.zb.plus", "http://api.zb.plus");
Log(exchange.GetAccount());
}
مارکیٹ موڈ تبدیل کریں فی الحال تعاون یافتہ تبادلے:
تبادلہ | تبصرے |
---|---|
ہوبی اسپاٹ | WebSocket پروٹوکول کی حمایت کے بعد، کوڈexchange.IO( |
exchange.IO("websocket")
مارکیٹ مواصلات پروٹوکول کو تبدیل کریںwebsocket
(ڈیفالٹ آرام ہے) ، مارکیٹ کوٹس حاصل کرنے کا طریقہ سوئچنگ کے بعد تبدیل ہو جائے گا.exchange.GetTicker()
اورexchange.GetDepth()
پر تبدیل کیا جائے گاwebsocket
پروٹوکول کو اپ ڈیٹ کرنے کے لئے ، خام فعال مارکیٹ کے اعداد و شمار کے حصول سے لے کر مارکیٹ کے اعداد و شمار کے غیر فعال حصول تک ، فی الحال صرف ہووبی ایکسچینج کی حمایت کی جاتی ہے۔
جب مارکیٹ موڈ دھکا میکانزم ہے، آپ کو مقرر کرنے کے لئے مندرجہ ذیل تقریب کو کال کر سکتے ہیں:
exchange.IO("mode", 0)
فوری واپسی کا موڈ۔ اگر موجودہ مارکیٹ کے اعداد و شمار کو تبادلے سے موصول نہیں کیا گیا ہے تو ، پرانے مارکیٹ کے اعداد و شمار کو فوری طور پر واپس کردیا جائے گا۔ اگر نیا ڈیٹا موجود ہے تو ، نیا ڈیٹا واپس کردیا جائے گا۔
exchange.IO("mode", 1)
کیش موڈ (ڈیفالٹ موڈ) ۔ اگر ایکسچینج کے تازہ ترین مارکیٹ کے اعداد و شمار موصول نہیں ہوئے ہیں (پچھلے انٹرفیس سے حاصل کردہ اعداد و شمار کے مقابلے میں) ، وصول کرنے کا انتظار کریں اور پھر واپس آجائیں۔ اگر اس فنکشن کو کال کرنے سے پہلے تازہ ترین مارکیٹ کے اعداد و شمار موصول ہوئے ہیں تو ، تازہ ترین اعداد و شمار فوری طور پر واپس آجائیں گے۔
exchange.IO("mode", 2)
جبری اپ ڈیٹ موڈ۔ درج کریں اور انتظار کریں جب تک کہ تبادلے کا اگلا تازہ ترین پش ڈیٹا موصول نہ ہو اور پھر واپس آجائیں۔
اگر آپ پہلی بار میں تازہ ترین مارکیٹ کی معلومات حاصل کرنا چاہتے ہیں تو، آپ کو تبدیل کر سکتے ہیںwebsocket
اور نہ پکاروSleep
آپریشن، اور فوری طور پر اعداد و شمار کی جانچ.exchange.GetTicker()
اورexchange.GetDepth()
افعال کیش موڈ میں کام کرتے ہیں، جیسے:
function main () {
exchange.IO("websocket")
while (true) {
Log(exchange.GetTicker())
}
}
def main():
exchange.IO("websocket")
while True:
Log(exchange.GetTicker())
void main() {
exchange.IO("websocket");
while(true) {
Log(exchange.GetTicker());
}
}
ایکسچینج لیوریج اکاؤنٹ موڈ
استعمالexchange.IO("trade_margin")
لیوریج اکاؤنٹ موڈ میں تبدیل کرنے کے لئے ، آرڈر دینے اور اکاؤنٹ کے اثاثوں تک رسائی حاصل کرنے کے لئے ایکسچینج کے لیوریج انٹرفیس کا استعمال کریں گے۔
استعمالexchange.IO("trade_normal")
عام اکاؤنٹ موڈ پر واپس سوئچ کرنے کے لئے.
معاون تبادلہ:
تبادلہ | خصوصی تبصرے |
---|---|
OKX | لیوریج اکاؤنٹ موڈ کے تجارتی جوڑے عام لوگوں سے مختلف ہیں ، اور کچھ تجارتی جوڑے دستیاب نہیں ہوسکتے ہیں۔exchange.IO("cross", true) لیورجڈ اکاؤنٹ کی مکمل پوزیشن پر سوئچ کرنے کے لئے اورexchange.IO("cross", false) الگ تھلگ پوزیشن پر سوئچ کرنے کے لئے. |
ہوبی | لیوریج اکاؤنٹ موڈ کے تجارتی جوڑے عام لوگوں سے مختلف ہیں ، اور کچھ تجارتی جوڑے دستیاب نہیں ہوسکتے ہیں۔ ہووبی لیوریج اکاؤنٹ کو کراس پوزیشن اور الگ تھلگ پوزیشن میں تقسیم کیا گیا ہے۔ استعمال کریںtrade_margin لیوریج اکاؤنٹ میں الگ تھلگ پوزیشن پر سوئچ کرنے کے لئے؛trade_super_margin لیوریج اکاؤنٹ پر کراس پوزیشن پر سوئچ کرنے کے لئے؛trade_normal ایک عام کرنسی موڈ پر سوئچ کرنے کے لئے |
ZB | فنڈز کو صرف کیو سی میں منتقل کیا جاسکتا ہے۔ لیوریج ٹریڈنگ سیکٹر میں ، مختلف ٹریڈنگ جوڑوں کے مابین فنڈز آزاد ہیں ، یعنی ETH_QC ٹریڈنگ جوڑی کے تحت کیو سی سکے کی تعداد BTC_QC میں نظر نہیں آتی ہے۔ |
بائننس | لیوریج اکاؤنٹس کو کراس پوزیشن اور الگ تھلگ پوزیشن میں تقسیم کیا گیا ہے۔trade_margin الگ تھلگ پوزیشن میں سوئچ کرنے کے لئے؛ استعمالtrade_super_margin کراس پوزیشن پر سوئچ کرنے کے لئے؛ استعمالtrade_normal ایک عام کرنسی موڈ پر سوئچ کرنے کے لئے |
دروازہ | لیوریج اکاؤنٹس کو کراس پوزیشن اور الگ تھلگ پوزیشن میں تقسیم کیا گیا ہے۔trade_margin الگ تھلگ پوزیشن میں سوئچ کرنے کے لئے؛ استعمالtrade_super_margin کراس پوزیشن پر سوئچ کرنے کے لئے؛ استعمالtrade_normal ایک عام کرنسی موڈ پر سوئچ کرنے کے لئے |
AscendEx | استعمالexchange.IO("trade_margin") لیوریج اکاؤنٹ موڈ پر سوئچ کرنے اور استعمال کرنے کے لئےexchange.IO("trade_normal") عام اکاؤنٹ موڈ پر واپس سوئچ کرنے کے لئے. |
exchange.Log(LogType, Price, Amount)
جب بلایا جاتا ہے تو کوئی آرڈر نہیں دیتا، اور یہ صرف تبادلہ لاگ کی معلومات کو آؤٹ پٹ کرنے کے لئے ٹریڈنگ کی معلومات ریکارڈ کرتا ہے۔
نوٹ:
exchange
اشیاء، جس میں عالمی تقریب سے مختلف ہےLog()
.LogType
لے سکتے ہیںLOG_TYPE_BUY
, LOG_TYPE_SELL
, LOG_TYPE_CANCEL
اورPrice
قیمت کے طور پر، اورAmount
مقدار کے طور پر.LogType
ہےLOG_TYPE_CANCEL
, Price
پیرامیٹر آرڈر ID ہے.استعمالexchange.Log(LogType, Price, Amount)
لائیو ٹریڈنگ کے بعد کی جانچ کرنا، آرڈر کی مشابہت کرنا اور آرڈرز کی ریکارڈنگ میں مدد کرنا۔
استعمال کا سب سے عام معاملہ یہ ہے:exchange.IO
تاہم، مشروط احکامات رکھنے کے لئے تبادلے کے تخلیق مشروط آرڈر انٹرفیس تک رسائی حاصل کرنے کے لئے.exchange.IO
فنکشن بوٹ لاگ ریکارڈنگ میں تبادلہ لاگ کی معلومات کو آؤٹ پٹ نہیں کرے گا. اس طرح آپ استعمال کر سکتے ہیںexchange.Log(LogType, Price, Amount)
لاگ آؤٹ پٹ کو مکمل کرنے کے لئے تاکہ آرڈر دینے کی معلومات کو ریکارڈ کیا جاسکے۔
var id = 123
function main() {
// Order type: buy; price: 999; quantity: 0.1
exchange.Log(LOG_TYPE_BUY, 999, 0.1)
// Cancel the order
exchange.Log(LOG_TYPE_CANCEL, id)
}
id = 123
def main():
exchange.Log(LOG_TYPE_BUY, 999, 0.1)
exchange.Log(LOG_TYPE_CANCEL, id)
void main() {
auto id = 123;
exchange.Log(LOG_TYPE_BUY, 999, 0.1);
exchange.Log(LOG_TYPE_CANCEL, id);
}
exchange.HMAC(Algo, OutputAlgo, Data, Key)
کی حمایت کرتا ہےHMACکی خفیہ کاری کا حسابایم ڈی 5/sha256/sha512/ش1، اور صرف لائیو ٹریڈنگ چلانے کی حمایت کی جاتی ہے.
exchange.HMAC("sha256", "hex", "xxxxx", "{{secretkey}}")
نقل کرنے کے لئےaccessKey
، استعمال"{{accesskey}}"
.
نقل کرنے کے لئےsecretKey
، استعمال"{{secretkey}}"
؛ یا آپ سادہ متن استعمال کر سکتے ہیں"abc-123-xxxx"
. "{{accessKey}}","{{secretkey}}"
صرف اس وقت درست ہے جب یہ فنکشن استعمال کیا جاتا ہے۔OutputAlgo
حمایت:
Push BitMEX پوزیشن تبدیلیاں (wss پروٹوکول)
function main() {
var APIKEY = "your Access Key(Bitmex API ID)"
var expires = parseInt(Date.now() / 1000) + 10
var signature = exchange.HMAC("sha256", "hex", "GET/realtime" + expires, "{{secretkey}}")
var client = Dial("wss://www.bitmex.com/realtime", 60)
var auth = JSON.stringify({args: [APIKEY, expires, signature], op: "authKeyExpires"})
var pos = 0
client.write(auth)
client.write('{"op": "subscribe", "args": "position"}')
while (true) {
bitmexData = client.read()
if(bitmexData.table == 'position' && pos != parseInt(bitmexData.data[0].currentQty)){
Log('position change', pos, parseInt(bitmexData.data[0].currentQty), '@')
pos = parseInt(bitmexData.data[0].currentQty)
}
}
}
import time
def main():
APIKEY = "your Access Key(Bitmex API ID)"
expires = int(time.time() + 10)
signature = exchange.HMAC("sha256", "hex", "GET/realtime" + str(expires), "{{secretkey}}")
client = Dial("wss://www.bitmex.com/realtime", 60)
auth = json.dumps({"args": [APIKEY, expires, signature], "op": "authKeyExpires"})
pos = 0
client.write(auth)
client.write('{"op": "subscribe", "args": "position"}')
while True:
bitmexData = json.loads(client.read())
if "table" in bitmexData and bitmexData["table"] == "position" and len(bitmexData["data"]) != 0 and pos != bitmexData["data"][0]["currentQty"]:
Log("position change", pos, bitmexData["data"][0]["currentQty"], "@")
pos = bitmexData["data"][0]["currentQty"]
void main() {
auto APIKEY = "your Access Key(Bitmex API ID)";
auto expires = Unix() + 10;
auto signature = exchange.HMAC("sha256", "hex", format("GET/realtime%d", expires), "{{secretkey}}");
auto client = Dial("wss://www.bitmex.com/realtime", 60);
json auth = R"({"args": [], "op": "authKeyExpires"})"_json;
auth["args"].push_back(APIKEY);
auth["args"].push_back(expires);
auth["args"].push_back(signature);
auto pos = 0;
client.write(auth.dump());
client.write("{\"op\": \"subscribe\", \"args\": \"position\"}");
while(true) {
auto bitmexData = json::parse(client.read());
if(bitmexData["table"] == "position" && bitmexData["data"][0].find("currentQty") != bitmexData["data"][0].end() && pos != bitmexData["data"][0]["currentQty"]) {
Log("Test");
Log("position change", pos, bitmexData["data"][0]["currentQty"], "@");
pos = bitmexData["data"][0]["currentQty"];
}
}
}
exchange.Go(Method, Args...)
ایک ملٹی تھریڈڈ غیر متزلزل معاون فنکشن ہے ، جو تمام معاون افعال کے آپریشن کو غیر متزلزل بیک وقت (جو صرف کریپٹوکرنسی تبادلے کی حمایت کرتا ہے) میں تبدیل کرسکتا ہے۔ پیرامیٹر ویلیو:Method
، تار کی قسم، یعنی فنکشن کا نام بیک وقت بلایا.
نوٹ:
exchange.Go
تقریب ایک اعتراض واپس،wait
فنکشن کو کال کیا جاتا ہے تاکہ موضوع کے ذریعے موضوع کے ذریعہ واپس آنے والے ڈیٹا کو بازیافت کیا جاسکے۔ موضوع کو کال کرکے ڈیٹا حصول کے بعد خود بخود جاری کردیا جائے گا۔wait
مکمل ہو گیا ہے.wait
، اگر ٹائم آؤٹ بھی ہوتا ہے تو تھریڈ جاری نہیں ہوگا؛ اس طرح ، تھریڈ کو صرف تھریڈ کا نتیجہ حاصل کرکے خود بخود جاری کیا جائے گا (اس سے کوئی فرق نہیں پڑتا ہے کہ بیک وقت رسائی حاصل کردہ انٹرفیس کو کامیابی کے ساتھ بلایا گیا ہے یا ناکام رہا ہے) ۔wait
تقریب، اور موضوع کے ذریعہ لاگو موضوع وسائلexchange.Go
فنکشن ڈاکر کی طرف سے خود کار طریقے سے جاری کیا جاتا ہے.wait
فنکشن آخر میں حاصل نہیں کیا جاتا ہے، موضوع وسائل خود کار طریقے سے جاری نہیں کیا جائے گا، جس میں لاگو موضوعات کے جمع ہونے کا سبب بنے گا؛ اگر موضوعات کی تعداد 2000 سے زیادہ ہے تو ایک غلطی کی اطلاع دی جائے گی:"too many routine wait, max is 2000"
.معاون افعال:GetTicker
, GetDepth
, GetTrades
, GetRecords
, GetAccount
, GetOrders
, GetOrder
, CancelOrder
, Buy
, Sell
, GetPosition
اورIO
.
function main(){
// The following four operations are executed concurrently and asynchronously by multiple threads, without time-consuming, but with immediate return.
var a = exchange.Go("GetTicker")
var b = exchange.Go("GetDepth")
var c = exchange.Go("Buy", 1000, 0.1)
var d = exchange.Go("GetRecords", PERIOD_H1)
// Call the "wait" method, to wait for the return of the asynchronously obtained "ticker" result
var ticker = a.wait()
// Return the depth; it is possible to return null, if the acquisition fails
var depth = b.wait()
// Return the order number; limit the timeout in 1 second; the timeout returns "undefined"; this object can continue to call "wait" to wait if the last "wait" is timeout
var orderId = c.wait(1000)
if(typeof(orderId) == "undefined") {
// Timeout, reacquire
orderId = c.wait()
}
var records = d.wait()
}
def main():
a = exchange.Go("GetTicker")
b = exchange.Go("GetDepth")
c = exchange.Go("Buy", 1000, 0.1)
d = exchange.Go("GetRecords", PERIOD_H1)
ticker, ok = a.wait()
depth, ok = b.wait()
orderId, ok = c.wait(1000)
if ok == False:
orderId, ok = c.wait()
records, ok = d.wait()
void main() {
auto a = exchange.Go("GetTicker");
auto b = exchange.Go("GetDepth");
auto c = exchange.Go("Buy", 1000, 0.1);
auto d = exchange.Go("GetRecords", PERIOD_H1);
Ticker ticker;
Depth depth;
Records records;
TId orderId;
a.wait(ticker);
b.wait(depth);
if(!c.wait(orderId, 300)) {
c.wait(orderId);
}
d.wait(records);
}
نوٹ:
undefined
، استعمالtypeof(xx)==="undefined"
، کیونکہnull == undefined
جاوا اسکرپٹ میں دستیاب ہے۔function main() {
var d = exchange.Go("GetRecords", PERIOD_H1)
// Wait for K-line result
var records = d.wait()
// Here we wait for an asynchronous operation that has been waited and ended; it will return null, and record the error
var ret = d.wait()
}
def main():
d = exchange.Go("GetRecords", PERIOD_H1)
records, ok = d.wait()
ret, ok = d.wait()
void main() {
auto d = exchange.Go("GetRecords", PERIOD_H1);
Records records;
d.wait(records);
Records ret;
d.wait(ret);
}
کے درمیان فرقPython
اورJavaScript
کیا یہPython
ہےwait
فنکشن دو پیرامیٹرز لوٹاتا ہے: پہلا نتیجہ ہے جو غیر متزلزل API کی طرف سے لوٹایا جاتا ہے؛ دوسرا اشارہ کرتا ہے کہ آیا غیر متزلزل کال مکمل ہوگئی ہے.
Python
مثال:
def main():
d = exchange.Go("GetRecords", PERIOD_D1)
# "ok" must return "True", unless the strategy is stopped
ret, ok = d.wait()
# If the waiting times out, or "wait" for an ended instance, "ok" returns "False"
ret, ok = d.wait(100)
ret, ok = d.wait(100)
بیک وقت متعدد تبادلے کی قیمتیں حاصل کریں:
function main() {
while(true) {
var beginTS = new Date().getTime()
var arrRoutine = []
var arrTicker = []
var arrName = []
for(var i = 0; i < exchanges.length; i++) {
arrRoutine.push(exchanges[i].Go("GetTicker"))
arrName.push(exchanges[i].GetName())
}
for(var i = 0; i < arrRoutine.length; i++) {
arrTicker.push(arrRoutine[i].wait())
}
var endTS = new Date().getTime()
var tbl = {
type: "table",
title: "Market Quotes",
cols: ["Index", "Name", "Latest Executed Price"],
rows: []
}
for(var i = 0; i < arrTicker.length; i++) {
tbl.rows.push([i, arrName[i], arrTicker[i].Last])
}
LogStatus(_D(), "The total time to acquire multiple platforms concurrently is:", endTS - beginTS, "millisecond", "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(500)
}
}
import time
import json
def main():
while True:
beginTS = time.time()
arrRoutine = []
arrTicker = []
arrName = []
for i in range(len(exchanges)):
arrRoutine.append(exchanges[i].Go("GetTicker"))
arrName.append(exchanges[i].GetName())
for i in range(len(exchanges)):
ticker, ok = arrRoutine[i].wait()
arrTicker.append(ticker)
endTS = time.time()
tbl = {
"type": "table",
"title": "Market Quote",
"cols": ["Index", "Name", "Latest Executed Price"],
"rows": []
}
for i in range(len(arrTicker)):
tbl["rows"].append([i, arrName[i], arrTicker[i]["Last"]])
LogStatus(_D(), "The total time to acquire multiple platforms concurrently is:", endTS - beginTS, "second", "\n", "`" + json.dumps(tbl) + "`")
Sleep(500)
void main() {
while(true) {
int length = exchanges.size();
auto beginTS = UnixNano() / 1000000;
Ticker arrTicker[length] = {};
string arrName[length] = {};
// Note that to add a few exchange objects, here we need to execute the "exchanges[n].Go" function several times. In this example, we need to add four exchange objects, which can be modified in details
auto r0 = exchanges[0].Go("GetTicker");
auto r1 = exchanges[1].Go("GetTicker");
auto r2 = exchanges[2].Go("GetTicker");
auto r3 = exchanges[3].Go("GetTicker");
GoObj *arrRoutine[length] = {&r0, &r1, &r2, &r3};
for(int i = 0; i < length; i++) {
arrName[i] = exchanges[i].GetName();
}
for(int i = 0; i < length; i++) {
Ticker ticker;
arrRoutine[i]->wait(ticker);
arrTicker[i] = ticker;
}
auto endTS = UnixNano() / 1000000;
json tbl = R"({
"type": "table",
"title": "Market Quote",
"cols": ["Index", "Name", "Latest Executed Price"],
"rows": []
})"_json;
for(int i = 0; i < length; i++) {
json arr = R"(["", "", ""])"_json;
arr[0] = format("%d", i);
arr[1] = arrName[i];
arr[2] = format("%f", arrTicker[i].Last);
tbl["rows"].push_back(arr);
}
LogStatus(_D(), "The total time to acquire multiple platforms concurrently is:", format("%d", endTS - beginTS), "millisecond", "\n", "`" + tbl.dump() + "`");
Sleep(500);
}
}
کے لئے بیک وقت کالیںexchange.IO("api", ...)
فنکشن:
function main() {
/*
Use the OKX placing order interface to test
POST /api/v5/trade/order
*/
var beginTS = new Date().getTime()
var param = {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"}
var ret1 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", JSON.stringify(param))
var ret2 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", JSON.stringify(param))
var ret3 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", JSON.stringify(param))
var id1 = ret1.wait()
var id2 = ret2.wait()
var id3 = ret3.wait()
var endTS = new Date().getTime()
Log("id1:", id1)
Log("id2:", id2)
Log("id3:", id3)
Log("Time for placing orders concurrently:", endTS - beginTS, "millisecond")
}
import time
import json
def main():
beginTS = time.time()
param = {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"}
ret1 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", json.dumps(param))
ret2 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", json.dumps(param))
ret3 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", json.dumps(param))
id1, ok1 = ret1.wait()
id2, ok2 = ret2.wait()
id3, ok3 = ret3.wait()
endTS = time.time()
Log("id1:", id1)
Log("id2:", id2)
Log("id3:", id3)
Log("Time for placing orders concurrently:", endTS - beginTS, "second")
void main() {
auto beginTS = UnixNano() / 1000000;
json param = R"({"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"})"_json;
auto ret1 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", param.dump());
auto ret2 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", param.dump());
auto ret3 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", param.dump());
json id1 = R"({})"_json;
json id2 = R"({})"_json;
json id3 = R"({})"_json;
ret1.wait(id1);
ret2.wait(id2);
ret3.wait(id3);
auto endTS = UnixNano() / 1000000;
Log("id1:", id1);
Log("id2:", id2);
Log("id3:", id3);
Log("Time for placing orders concurrently:", endTS - beginTS, "millisecond");
}
exchange.GetAccount()
تبادلہ اکاؤنٹ کی معلومات واپس کرتا ہے۔ واپسی کی قیمت:Account
structure.
Account
ساختfunction main(){
var account = exchange.GetAccount()
Log("Account information, Balance:", account.Balance, "FrozenBalance:", account.FrozenBalance, "Stocks:",
account.Stocks, "FrozenStocks:", account.FrozenStocks)
}
def main():
account = exchange.GetAccount()
Log("Account information, Balance", account["Balance"], "FrozenBalance:", account["FrozenBalance"], "Stocks:",
account["Stocks"], "FrozenStocks:", account["FrozenStocks"])
void main() {
auto account = exchange.GetAccount();
Log("Account information, Balance", account.Balance, "FrozenBalance:", account.FrozenBalance, "Stocks:",
account.Stocks, "FrozenStocks:", account.FrozenStocks);
}
اگر تبادلے کا مقصد ایک cryptocurrency فیوچر ایکسچینج پر مقرر کیا جاتا ہے اور ایک معاہدے پر تبدیل کر دیا جاتا ہےUSDT
کے طور پر مارجن (دیکھیںexchange.SetContractType
فنکشن کو تبدیل کرنے کا طریقہ جاننے کے لئے) ، اثاثے لےUSDT
مارجن کے طور پر، جس کی خصوصیت میں ریکارڈ کیا جاتا ہےBalance
اورFrozenBalance
.
function main(){
// Switch the trading pair
exchange.IO("currency", "BTC_USDT")
// Take OKX futures as an example; set the contract as the contract of the week, and the current trading pair is BTC_USDT, so the current contract is BTC USDT-margined contract of this week
exchange.SetContractType("this_week")
// Acquire the data of the current account assets
var account = exchange.GetAccount()
// The available balance of USDT as margin
Log(account.Balance)
// The frozen amount of USDT as margin
Log(account.FrozenBalance)
}
def main():
exchange.IO("currency", "BTC_USDT")
exchange.SetContractType("this_week")
account = exchange.GetAccount()
Log(account["Balance"])
Log(account["FrozenBalance"])
void main() {
exchange.IO("currency", "BTC_USDT");
exchange.SetContractType("this_week");
auto account = exchange.GetAccount();
Log(account.Balance);
Log(account.FrozenBalance);
}
exchange.GetName()
تبادلہ کا نام لوٹاتا ہے۔ واپسی کی قیمت: تار کی قسم۔ عام طور پر اس کا استعمال تبادلہ نام کا تعین کرنے کے لئے کیا جاتا ہے۔exchange
یاexchanges[n]
حکمت عملی کوڈ میں اشیاء.
function main() {
Log("Determine the exchange object to be OKX:", exchange.GetName() == "OKEX")
}
def main():
Log("Determine the exchange object to be OKX:", exchange.GetName() == "OKEX")
void main() {
Log("Determine the exchange object to be OKX:", exchange.GetName() == "OKEX");
}
ڈوکر کے لائن ورژن کو کمانڈ کرنے کے لئے، آپ کو استعمال کر سکتے ہیں-1
تبادلہ ناموں کی ایک فہرست پرنٹ کرنے کا حکم.
exchange.GetLabel()
تبادلہ کا اپنی مرضی کے مطابق لیبل لوٹاتا ہے۔ واپسی کی قیمت: تار کی قسم۔
کےexchange
یاexchanges[n]
حکمت عملی کوڈز میں اشیاء عام طور پر تبادلہ اشیاء کی تشکیل کے دوران مقرر کردہ لیبلز کی طرف سے مقرر کیا جاتا ہے.
exchange.GetCurrency()
تبادلہ کی طرف سے آپریٹ کرنسی کے جوڑے کا نام لوٹاتا ہے، اور cryptocurrency پلیٹ فارم ایک تار لوٹاتا ہے، جیسےLTC_BTC
واپسی کی قیمت: تار کی قسم.
کےexchange.SetCurrency(Symbol)
تبادلہ اعتراض کی موجودہ ٹریڈنگ جوڑی سوئچ کرنے کے لئے استعمال کیا جاتا ہے.exchange.IO ("currency","BTC_USDT")
یہ بیک ٹسٹنگ سسٹم میں ٹریڈنگ جوڑے سوئچنگ کی حمایت کرتا ہے، اور ٹریڈنگ کے جوڑے کا نامpricing currency
backtesting کے نظام میں ٹریڈنگ کے جوڑوں کو تبدیل کرتے وقت تبدیل نہیں کیا جا سکتا (مثال کے طور پر،BTC_USDT
پر تبدیل کیا جا سکتا ہےLTC_USDT
، لیکن اسے تبدیل نہیں کیا جا سکتاLTC_BTC
) ایک ٹریڈنگ جوڑی پر سوئچ کرنے کے بعد ابتدائی طور پر غیر بیک ٹسٹنگ صفحے پر مقرر کیا گیا تھا،trading coins
0 ہے (مثال کے طور پر بیک ٹسٹ کے دوران، بیک ٹسٹ پیج پر ٹریڈنگ جوڑی کی ابتدائی قیمت ہےBTC_USDT
، بی ٹی سی کی تعداد 3 ہے اور USDT کی تعداد 10000 ہے۔ اگر آپ فوری طور پر سوئچ کریںLTC_USDT
، کی تعدادtrading coins
سوئچنگ کے بعد 0 ہو جائے گا، جس کا مطلب اکاؤنٹ میں LTC کی تعداد 0 ہے، لیکن سوئچنگ ٹریڈنگ جوڑوں کی مشترکہ USDT رقم اب بھی 10000 ہے).
function main() {
var ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
// Switch trading pairs, and pay attention to changes in market quote data and account information after switching
Log("Switch LTC_USDT: ", exchange.SetCurrency("LTC_USDT"))
ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
}
def main():
ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
Log(" Switch LTC_USDT: ", exchange.SetCurrency("LTC_USDT"))
ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
void main() {
auto ticker = exchange.GetTicker();
Log(ticker);
Log(exchange.GetAccount());
exchange.SetCurrency("LTC_USDT");
Log(" Switch LTC_USDT: ");
ticker = exchange.GetTicker();
Log(ticker);
Log(exchange.GetAccount());
}
بیک ٹسٹ آپریشن کا نتیجہ:
exchange.GetQuoteCurrency()
تبادلہ کی طرف سے آپریٹ کی بنیاد کرنسی کا نام لوٹاتا ہے. مثال کے طور پر،BTC_CNY
واپسیCNY
، اورETH_BTC
واپسیBTC
واپسی کی قیمت: تار کی قسم.
کریپٹوکرنسی فیوچر ایکسچینج اشیاء کے لئے معاہدے کا کوڈ اس کے کال کرنے سے پہلے مخصوص کیا جانا چاہئےبازار, حکماور دیگر انٹرفیس، اورexchange.SetContractType
موجودہ معاہدے کا کوڈ مقرر کرنے کے لئے فنکشن استعمال کرنے کی ضرورت ہے. تبادلے کے اعتراض کی موجودہ ٹریڈنگ جوڑی سوئچ کرتے وقت، آپ کو کال کرنے کی ضرورت ہےexchange.SetContractType
معاہدہ کوڈ کو ری سیٹ کرنے کی تقریب۔ پلیٹ فارم کے ذریعہ تعاون یافتہ ڈیجیٹل کرنسی تبادلہ معاہدے کے کوڈز کے لئے ، براہ کرم ملاحظہ کریںexchange.SetContractType
function.
exchange.GetPosition()
موجودہ پوزیشن کی معلومات حاصل کرتا ہے۔ واپسی کا قدر:position
اگر کوئی پوزیشن نہیں ہے تو، یہ ایک خالی صف واپس کرتا ہے، یعنی[]
.
Position
ساختعام طور پر ، کریپٹوکرنسی فیوچر معاہدوں کو دو اقسام میں تقسیم کیا جاتا ہے:
فراہمی کا معاہدہ
جب ایک معاہدہ ایک ترسیل کے معاہدے پر مقرر کیا جاتا ہے،exchange.GetPosition()
فنکشن، اور موجودہ ٹریڈنگ جوڑی کے تحت ترسیل کے معاہدے میں تمام پوزیشنوں کو واپس کیا جائے گا.
دائمی معاہدہ
جب ایک معاہدہ ایک دائمی معاہدے پر مقرر کیا جاتا ہے، کال کریںexchange.GetPosition()
فنکشن، اور موجودہ ٹریڈنگ جوڑی کے تحت دائمی معاہدے میں تمام پوزیشنوں کو واپس کیا جائے گا.
/*
Note: if there is no position, it will returns an empty array, so you should judge whether the data returned by the interface is a null array, before you use the returned data
For example:
When the exchange is set to OKX futures, if the contract is set to be a delivery contract, when the position data of the current week, the next week, and the quarter is obtained, the data type will be an array of position structure.
When the exchange is set to OKX futures, if the contract is set to a perpetual contract, the array of position structure containing the position data of the perpetual contract will be obtained.
*/
function main(){
exchange.SetContractType("this_week")
exchange.SetMarginLevel(10)
exchange.SetDirection("buy")
exchange.Buy(10000, 2)
var position = exchange.GetPosition()
if(position.length > 0){
Log("Amount:", position[0].Amount, "FrozenAmount:", position[0].FrozenAmount, "Price:",
position[0].Price, "Profit:", position[0].Profit, "Type:", position[0].Type,
"ContractType:", position[0].ContractType)
}
}
def main():
exchange.SetContractType("this_week")
exchange.SetMarginLevel(10)
exchange.SetDirection("buy")
exchange.Buy(10000, 2)
position = exchange.GetPosition()
if len(position) > 0:
Log("Amount:", position[0]["Amount"], "FrozenAmount:", position[0]["FrozenAmount"], "Price:",
position[0]["Price"], "Profit:", position[0]["Profit"], "Type:", position[0]["Type"],
"ContractType:", position[0]["ContractType"])
void main() {
exchange.SetContractType("this_week");
exchange.SetMarginLevel(10);
exchange.SetDirection("buy");
exchange.Buy(10000, 2);
auto position = exchange.GetPosition();
if(position.size() > 0) {
Log("Amount:", position[0].Amount, "FrozenAmount:", position[0].FrozenAmount, "Price:",
position[0].Price, "Profit:", position[0].Profit, "Type:", position[0].Type,
"ContractType:", position[0].ContractType);
}
}
exchange.SetMarginLevel(MarginLevel)
لیوریج کا سائز مقرر کرتا ہے۔ پیرامیٹر ویلیو: عددی قسم۔
کریپٹوکرنسی فیوچر آرڈرز رکھنے کے لئے لیوریج کا سائز مقرر کریں، مثال کے طور پر:
function main() {
exchange.SetMarginLevel(10)
}
def main():
exchange.SetMarginLevel(10)
void main() {
exchange.SetMarginLevel(10);
}
کریپٹوکرنسی فیوچر کے لئے ، کریپٹوکرنسی فیوچر ایکسچینجز کے بیعانہ کے طریقہ کار یکساں نہیں ہیں۔ کچھ تبادلے پر ، فیوچر کی بیعانہ کی قیمت آرڈر دینے کے انٹرفیس میں ایک پیرامیٹر ہے۔ اس معاملے میں ،SetMarginLevel
فنکشن نیٹ ورک کی درخواست پیدا نہیں کرسکتا ہے ، لیکن صرف نیچے کی پرت میں بیعانہ متغیر طے کرتا ہے (جس کا استعمال آرڈر دینے کے انٹرفیس میں پیرامیٹرز کو منتقل کرنے کے لئے کیا جاتا ہے) ۔ کچھ تبادلے کا فیوچر بیعانہ تبادلے کی ترتیب ہے ، جسے تبادلے کی ویب سائٹ کے صفحے پر یا API انٹرفیس کا استعمال کرتے ہوئے طے کرنے کی ضرورت ہے۔ اس مقام پر ،SetMarginLevel
فنکشن نیٹ ورک کی درخواست پیدا کرے گا ، اور یہ مختلف وجوہات کی بناء پر فائدہ اٹھانے کی ترتیب میں ناکام ہوسکتا ہے۔ مثال کے طور پر: اگر موجودہ پوزیشنز اور زیر التواء آرڈرز موجود ہیں تو ، اس تجارتی جوڑی اور بنیادی اعتراض کے لئے فائدہ اٹھانے کی قیمت مقرر نہیں کی جاسکتی ہے۔
حکمت عملی کے ڈیزائن میں فائدہ اٹھانے کی ترتیب کے لئے نوٹ:
exchange.SetDirection(Direction)
سیٹexchange.Buy
یاexchange.Sell
مستقبل کے احکامات کی جگہ کے لئے ہدایات بنانے کے لئے. پیرامیٹر کی قیمت: تار کی قسم.
کےSetDirection
فنکشن فیوچر ٹریڈنگ کی سمت اور آرڈر رکھنے کی فنکشن کے درمیان مطابقت طے کرتا ہے:
آرڈر دینے کا فنکشن | تبصرے | |
---|---|---|
exchange.Buy | کھلی لمبی پوزیشن خریدنا | |
exchange.Buy | مختصر پوزیشن بند کرنا | |
exchange.Sell | کھلی مختصر پوزیشن بیچنا | |
exchange.Sell | طویل پوزیشن بند کرنا |
پیرامیٹرDirection
چار پیرامیٹرز لے سکتے ہیں، بشمولbuy
, closebuy
, sell
اورclosesell
.
function main(){
// Make an example for setting OKX futures weekly contract
exchange.SetContractType("this_week")
// Set 5 times of leverage
exchange.SetMarginLevel(5)
// Set the order placing type into placing long order
exchange.SetDirection("buy")
// Place an order with the contract quantity of 2, at the price of 10,000
exchange.Buy(10000, 2)
exchange.SetMarginLevel(5)
exchange.SetDirection("closebuy")
exchange.Sell(1000, 2)
}
def main():
exchange.SetContractType("this_week")
exchange.SetMarginLevel(5)
exchange.SetDirection("buy")
exchange.Buy(10000, 2)
exchange.SetMarginLevel(5)
exchange.SetDirection("closebuy")
exchange.Sell(1000, 2)
void main() {
exchange.SetContractType("this_week");
exchange.SetMarginLevel(5);
exchange.SetDirection("buy");
exchange.Buy(10000, 2);
exchange.SetMarginLevel(5);
exchange.SetDirection("closebuy");
exchange.Sell(1000, 2);
}
exchange.SetContractType(ContractType)
معاہدے کی قسم مقرر کریں۔ پیرامیٹر ویلیو: سٹرنگ ٹائپ۔ کریپٹوکرنسی کی حکمت عملیوں میں ، مثال کے طور پر exchange.SetCurrency("BTC_USDT")
یاexchange.IO("currency", "BTC_USDT")
، آپ کو استعمال کرنے کی ضرورت ہےexchange.SetContractType
نئے ٹریڈنگ جوڑی کے تحت کام کرنے کی ضرورت ہے کہ موجودہ معاہدے کا تعین کرنے کے لئے معاہدے کو ری سیٹ کرنے کی تقریب.currency-based contract
یا ایکU-based contract
کی بنیاد پرتجارتی جوڑامثال کے طور پر، جب ٹریڈنگ جوڑی کوBTC_ USDT
، استعمال کی تقریبexchange.SetContractType
معاہدے کا کوڈ مقرر کرنے کے لئےswap
، جو بی ٹی سی کے یو ایس ڈی ٹی پر مبنی دائمی معاہدے کے طور پر مقرر کیا گیا ہے۔BTC_ USD
، استعمال کی تقریبexchange.SetContractType
معاہدے کا کوڈ مقرر کرنے کے لئےswap
، جو بی ٹی سی کے کرنسی پر مبنی دائمی معاہدے کے طور پر مقرر کیا گیا ہے۔
جب تک کہ دوسری صورت میں بیان نہیں کیا جاتا،ترسیل کا معاہدہکریپٹوکرنسی فیوچر معاہدے میں عام طور پر درج ذیل کوڈ شامل ہیں:
this_week
: ہفتہ وار معاہدہnext_week
: اگلے ہفتے کا معاہدہquarter
: سہ ماہی معاہدہnext_quarter
: اگلی سہ ماہی کا معاہدہجب تک کہ دوسری صورت میں بیان نہیں کیا جاتا،دائمی معاہدہکریپٹوکرنسی فیوچر معاہدے میں عام طور پر درج ذیل کوڈ شامل ہیں:
swap
: دائمی معاہدہموجودہ معاہدے کو ہفتہ وار معاہدے میں سیٹ کریں:
function main() {
// Set to weekly contract
exchange.SetContractType("this_week")
}
def main():
exchange.SetContractType("this_week")
void main() {
exchange.SetContractType("this_week");
}
ہر سپورٹ شدہ کریپٹوکرنسی ایکسچینج کے معاہدے کے نام پر تفصیلی تفصیل مندرجہ ذیل ہے:
OKX
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
اس ہفتے کے معاہدے پر مقرر:exchange.SetContractType("this_week")
اگلے ہفتے کے معاہدے پر مقرر:exchange.SetContractType("next_week")
سہ ماہی معاہدے پر مقرر:exchange.SetContractType("quarter")
اگلے سہ ماہی کے معاہدے پر مقرر:exchange.SetContractType("next_quarter")
OKX USDT مارجن والے معاہدے کو موجودہ معاہدے سے مطابقت رکھنے والے USDT تصفیہ کا استعمال کرتے ہوئے معاہدے میں تبدیل کیا جاسکتا ہےtrading pair
(یا تبادلہ اشیاء کا اضافہ کرتے وقت اسے براہ راست مقرر کریں). مثال کے طور پر:
function main() {
// The default trading pair is BTC_USD, the contract is set to the weekly contract, and the contract is the crypto-margined contract
exchange.SetContractType("this_week")
Log("ticker:", exchange.GetTicker())
// Switch trading pairs, and then set a contract to a USDT-margined contract, which is different from the crypto-margined contract
exchange.IO("currency", "BTC_USDT")
exchange.SetContractType("swap")
Log("ticker:", exchange.GetTicker())
}
def main():
exchange.SetContractType("this_week")
Log("ticker:", exchange.GetTicker())
exchange.IO("currency", "BTC_USDT")
exchange.SetContractType("swap")
Log("ticker:", exchange.GetTicker())
void main() {
exchange.SetContractType("this_week");
Log("ticker:", exchange.GetTicker());
exchange.IO("currency", "BTC_USDT");
exchange.SetContractType("swap");
Log("ticker:", exchange.GetTicker());
}
مستقبل_HuobiDM
اس ہفتے کے معاہدے پر مقرر:exchange.SetContractType("this_week")
اگلے ہفتے کے معاہدے پر مقرر:exchange.SetContractType("next_week")
سہ ماہی معاہدے پر مقرر:exchange.SetContractType("quarter")
اگلے سہ ماہی کے معاہدے پر مقرر:exchange.SetContractType("next_quarter")
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
پلیٹ فارم USDT کے ساتھ مارجن والے معاہدوں کی حمایت کرتا ہے۔ مثال کے طور پر بی ٹی سی معاہدے کو لے لو۔ آپ صرف USDT کے ساتھ مارجن والے معاہدے میں تبدیل ہوسکتے ہیںexchange.SetCurrency("BTC_USDT")
، یا موجودہ ٹریڈنگ جوڑی کوBTC_USDT
براہ راست جب آپ بوٹ پیرامیٹرز کو ترتیب دیتے ہیں اور تبادلہ اشیاء شامل کرتے ہیں۔ تجارتی جوڑی کو تبدیل کرنے کے بعد ، آپ کو کال کرنے کی ضرورت ہےexchange.SetContractType
کام دوبارہ معاہدہ قائم کرنے کے لئے.
فیوچر_بٹ ایم ای ایکس
مستقل معاہدے پر مقرر:exchange.SetContractType("XBTUSD")
, exchange.SetContractType("APTUSDT")
.
معاہدہ کسی خاص وقت پر طے ہوتا ہے ، اور مزید تفصیلات کے ل each ہر معاہدے کا کوڈ چیک کرنے کے لئے بٹ ایم ای ایکس کی سرکاری ویب سائٹ پر لاگ ان کریں۔ مثال کے طور پر:exchange.SetContractType("XBTM19")
.
فیوچر_گیٹی او
اس ہفتے کے معاہدے پر مقرر:exchange.SetContractType("this_week")
.
اگلے ہفتے کے معاہدے پر مقرر:exchange.SetContractType("next_week")
.
سہ ماہی معاہدے پر مقرر:exchange.SetContractType("quarter")
.
اگلے سہ ماہی کے معاہدے پر مقرر:exchange.SetContractType("next_quarter")
.
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
.
ایکسچینج USDT کے ساتھ مارجن والے معاہدوں کی حمایت کرتا ہے۔ مثال کے طور پر بی ٹی سی معاہدے کو لے لو۔ آپ صرف USDT کے ساتھ مارجن والے معاہدے میں تبدیل کر سکتے ہیںexchange.SetCurrency("BTC_USDT")
، یا موجودہ ٹریڈنگ جوڑی کوBTC_USDT
براہ راست جب آپ لائیو ٹریڈنگ پیرامیٹرز کو ترتیب دیتے ہیں اور تبادلہ اشیاء شامل کرتے ہیں. ٹریڈنگ جوڑی سوئچ کرنے کے بعد، آپ کو کال کرنے کی ضرورت ہےexchange.SetContractType
کام دوبارہ معاہدہ قائم کرنے کے لئے.
فیوچر_ڈیریبیٹ
مستقل معاہدے پر مقرر:exchange.SetContractType("BTC-PERPETUAL")
Deribit USDC معاہدے کی حمایت؛ کالexchange.SetContractType("ADA_USDC-PERPETUAL")
اے ڈی اے یو ایس ڈی سی مارجن کے ساتھ مستقل معاہدہ قائم کرنے کے لئے.
معاہدہ کسی خاص وقت پر طے ہوتا ہے ، اور مزید تفصیلات کے ل each ہر معاہدے کے کوڈ کی جانچ پڑتال کرنے کے لئے ڈیریبٹ کی سرکاری ویب سائٹ پر لاگ ان کریں ، جیسے:exchange.SetContractType("BTC-27APR18")
.
فیوچر_کوکوئن
BTC_USD
، اور پھر معاہدے کا کوڈ مقرر کریں، جسے کریپٹو مارجنڈ معاہدہ کہا جاتا ہے۔
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
سہ ماہی معاہدے پر مقرر:exchange.SetContractType("quarter")
اگلے سہ ماہی کے معاہدے پر مقرر:exchange.SetContractType("next_quarter")
BTC_USDT
، اور پھر معاہدے کا کوڈ مقرر کریں ، جو USDT مارجنڈ معاہدہ ہے۔
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
.فیوچر_بائننس
بائننس فیوچر ڈیفالٹ کے مطابق کوئی معاہدہ کی حیثیت مقرر نہیں کرتا ہے، لہذا آپ کو پہلے معاہدہ مقرر کرنے کی ضرورت ہے۔
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
بائننس فیوچر کے دائمی معاہدے یو ایس ڈی ٹی مارجن والے معاہدے ہوسکتے ہیں۔ مثال کے طور پر ،BTC
یو ایس ڈی ٹی مارجنڈ معاہدہ، ٹریڈنگ جوڑی کوBTC_USDT
بائننس فیوچر کے دائمی معاہدوں میں کریپٹو مارجن والے معاہدے بھی شامل ہیں۔ مثال کے طور پر ، کریپٹو مارجن والے معاہدے میں ، ٹریڈنگ جوڑی کوBTC_USD
.
سہ ماہی معاہدے پر مقرر:exchange.SetContractType("quarter")
ترسیل کے معاہدوں میں کریپٹو مارجن والے معاہدے شامل ہیں (یعنی استعمال شدہ کرنسی کو مارجن کے طور پر لے کر) ۔ مثال کے طور پر ، کی سہ ماہی معاہدے میںBTC
، ٹریڈنگ جوڑی پر مقرر کیا جاتا ہےBTC_USD
، اور پھر معاہدے کا کوڈ مقررexchange.SetContractType("quarter")
، جو بی ٹی سی کریپٹو مارجنڈ سہ ماہی معاہدہ مقرر کر رہا ہے.
اگلے سہ ماہی کے معاہدے پر مقرر:exchange.SetContractType("next_quarter")
مثال کے طور پر، کی سہ ماہی crypto-مارجن معاہدے میںBTC
، ٹریڈنگ جوڑی پر مقرر کیا جاتا ہےBTC_USD
، اور پھر معاہدے کا کوڈ مقررexchange.SetContractType("next_quarter)
بائننس یو ایس ڈی ٹی مارجنڈ ترسیل معاہدوں کا حصہ سپورٹ کرتا ہے، جیسے بی ٹی سی ٹریڈنگ جوڑی کوBTC_USDT
، اور پھر معاہدے کا کوڈ مقرر کریں.
فیوچر_بی باکس
بی باکس مستقل معاہدے کا کوڈ:swap
.
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
.
مستقبل_AOFEX
AOFEX مستقل معاہدے کا کوڈ:swap
.
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
.
فیوچر_BFX
BFX مستقل معاہدہ کا کوڈ:swap
.
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
.
فیوچر_بیبٹ
بائی بٹ موجودہ ٹریڈنگ جوڑی کے مستقل معاہدے کے لئے ڈیفالٹ ہے۔ معاہدہ کا کوڈ:swap
.
سہ ماہی معاہدے کا کوڈ:quarter
.
اگلی سہ ماہی کے معاہدے کا کوڈ:next_quarter
.
فیوچر_کراکن
کرکن ڈیفالٹ طور پر معاہدہ کی حیثیت مقرر نہیں کرتا، لہذا آپ کو معاہدہ کا کوڈ مقرر کرنے کی ضرورت ہے. معاہدہ کا کوڈ:swap
: دائمی معاہدہ.month
: ماہانہ معاہدہquarter
: سہ ماہی معاہدہ.next_quarter
اگلی سہ ماہی کا معاہدہ.
فیوچر_بٹ فائنکس
Bitfinex موجودہ ٹریڈنگ جوڑی کے دائمی معاہدے کے لئے ڈیفالٹ کرتا ہے۔ معاہدے کا کوڈ:swap
.
فیوچر_بٹ گیٹ
Bitget موجودہ ٹریڈنگ جوڑی کے دائمی معاہدے کے لئے ڈیفالٹس. معاہدے کا کوڈ:swap
. ٹریڈنگ جوڑی پر مقرر کیا گیا ہےBTC_USD
، جس میں کریپٹو مارجن والے معاہدے کی نشاندہی کی گئی ہے۔BTC_USDT
، جس میں یو ایس ڈی ٹی مارجن والے معاہدے کی نشاندہی کی گئی ہے۔ نقلی معاہدوں میں تجارتی جوڑے کو درج ذیل میں ترتیب دیا جاسکتا ہے:SBTC_USD
اورBTC_SUSDT
.
فیوچر_ڈی آئی ڈی ایکس
dYdX مستقل معاہدے کا معاہدہ کوڈ:swap
.
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
. dYdX صرف USDT مارجن کے ساتھ معاہدوں ہے.
فیوچر_MEXC
MEXC مستقل معاہدے کا معاہدہ کوڈ:swap
.
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
. ٹریڈنگ جوڑی پر مقرر کیا گیا ہےBTC_USD
، جس میں کریپٹو مارجن والے معاہدے کی نشاندہی کی گئی ہے۔BTC_USDT
، جس میں USDT مارجن والے معاہدے کی نشاندہی کی گئی ہے۔
جب cryptocurrency حکمت عملی لکھنے، فونexchange.SetContractType(ContractType)
فنکشن اور معاہدے کے پیرامیٹر کے ذریعہ مقرر کردہ تفصیلی معاہدے کی معلوماتContractType
واپس کر دیا جائے گا.
مثال کے طور پر، تبادلہ اعتراض کے طور پر مقرر OKX معاہدے کی حکمت عملی کوڈ چلانے:
function main(){
// Set to weekly contract
var ret = exchange.SetContractType("this_week")
// Return the information of the weekly contract
Log(ret)
}
def main():
ret = exchange.SetContractType("this_week")
Log(ret)
void main() {
auto ret = exchange.SetContractType("this_week");
Log(ret);
}
میں حکمت عملی چلائیںJavaScript
زبان، اور پرنٹret
اعداد و شمار، یعنی تفصیلی معلوماتthis_week
معاہدہ:
{
"instrument":"BTC-USD-191101",
"InstrumentID":"BTC-USD-191101"
}
exchange.GetContractType()
تبادلہ آبجیکٹ کا فی الحال مقرر کردہ معاہدے کا کوڈ لوٹاتا ہے (exchange
), واپسی کی قیمت: تار.
function main () {
Log(exchange.SetContractType("this_week"))
Log(exchange.GetContractType())
}
def main():
Log(exchange.SetContractType("this_week"))
Log(exchange.GetContractType())
void main() {
Log(exchange.SetContractType("this_week"));
Log(exchange.GetContractType());
}
مندرجہ ذیل ٹیبل میں کریپٹوکرنسی فیوچر معاہدوں کے تبادلے کے اشیاء سے متعلق غلطی کی معلومات بیان کی گئی ہے۔
قدر | فنکشن ڈسپلے میں خرابی | ٹرگر فنکشن | تفصیل |
---|---|---|---|
0 | فیوچر_او پی 0 | exchange.SetMarginLevel | لیوریج فنکشن کو بلانے میں غلطی |
1 | فیوچر_او پی 1 | exchange.SetDirection | فیوچر ٹریڈنگ سمت فنکشن کی ترتیب میں غلطی |
2 | فیوچر_او پی 2 | exchange.SetContractType | معاہدہ فنکشن کی ترتیب میں غلطی |
3 | فیوچر_او پی 3 | exchange.GetPosition | پوزیشن فنکشن حاصل کرنے میں غلطی |
4 | فیوچر_او پی 4 | exchange.IO | IO فنکشن کو کال کرنے میں غلطی |
استعمالexchange.SetContractType
معاہدوں کو مقرر کرنے کے لئے فنکشن؛ مختلف تبادلے کے مختلف اختیارات معاہدے کے کوڈز ہیں.
ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کے ذریعہ تعاون یافتہ کریپٹوکرنسی آپشن ایکسچینجز
ڈیریبیٹ
Deribit تبادلے کے لئے، یہ صرف ضروری ہے کہexchange.SetContractType
ایک اختیارات کے معاہدے کے طور پر معاہدے کو قائم کرنے کے لئے تقریب. اختیارات کے معاہدے کی ترتیب کے بعد، جیسے مارکیٹ انٹرفیس کال کرتے وقتGetTicker
، اختیارات کے معاہدے کے تمام مارکیٹ کے اعداد و شمار حاصل کیا جاتا ہے.exchange.Sell
اورexchange.Buy
ایک آرڈر رکھنے کے لئے افعال، اور ایک آرڈر رکھنے کے دوران ٹریڈنگ سمت پر توجہ دینا، اور کی طرف سے ٹریڈنگ سمت مقررexchange.SetDirection
استعمال کریںexchange.Cancel
ایک آرڈر منسوخ کرنے کے لئے تقریب؛exchange.GetPosition
پوزیشنوں کو استفسار کرنے کے لئے تقریب.
حوالہ کے لئے حکمت عملی کا کوڈ:ڈیریبٹ آپشنز کی جانچ کی حکمت عملی
OKX
معاہدوں کا قیام ، احکامات کی جگہ ، احکامات کو منسوخ کرنا ، احکامات کی انکوائری کرنا ، اور مارکیٹ کی قیمتوں کا تعین کرنا ، وغیرہ اسی طرح کا عمل ہےDeribit
، اور معاہدہ کوڈ کی شکل ہےBTC-USD-200626-4500-C
. آپ انٹرفیس کے ذریعے معاہدے سے متعلق معلومات کی تلاش کر سکتے ہیںhttps://www.okx.com/api/v5/public/instruments
.
مثال کے طور پر بی ٹی سی آپشن معاہدوں کی معلومات کو تلاش کرنے کے لئے:
function main() {
Log(HttpQuery("https://www.okx.com/api/v5/public/instruments?instType=OPTION&uly=BTC-USD"))
}
import json
import urllib.request
def main():
ret = json.loads(urllib.request.urlopen("https://www.okx.com/api/v5/public/instruments?instType=OPTION&uly=BTC-USD").read().decode('utf-8'))
Log(ret)
void main() {
Log(HttpQuery("https://www.okx.com/api/v5/public/instruments?instType=OPTION&uly=BTC-USD"));
}
مستقبل_HuobiDM
مثال کے طور پر، Huobi اختیارات معاہدے کا کوڈ:BTC-USDT-201225-P-13000
؛ معاہدہ ایکBTC
معاہدہ؛ مشق کی تاریخ 25 دسمبر 2020 ہے۔ اختیارات پٹ آپشنز (پی یو ٹی) ہیں۔ ہڑتال کی قیمت 13،000 ڈالر ہے۔
کال آپشنز کے لئے خریدار کی طرف سے ادا کردہ پریمیم USDT ہے، جس سے پتہ چلتا ہے کہ اکاؤنٹ کے اثاثوں میں USDT استعمال کیا جاتا ہے۔ بیچنے والے کا مارجن کرنسی ہے، جو اثاثوں میں کرنسی کی ضمانت دی جاتی ہے۔
فروخت کے اختیارات کے لئے خریدار کی طرف سے ادا کردہ پریمیم USDT ہے، جس سے پتہ چلتا ہے کہ اکاؤنٹ کے اثاثوں میں USDT استعمال کیا جاتا ہے؛ بیچنے والے کا مارجن USDT ہے، جو اثاثوں میں USDT کی طرف سے ضمانت دی جاتی ہے.
فیوچر_بیبٹ
یہ Bybit تبادلے کے USDC آپشن کی حمایت کرتا ہے، اور ٹریڈنگ جوڑی کوETH_USDC
، کال فنکشنexchange.SetContractType
معاہدے کو ایک آپشن معاہدے کے طور پر مقرر کرنے کے لئے۔ آپشن معاہدے کا مثال کا کوڈ:ETH-25NOV22-1375-P
.
کےexchange.SetBase(Base)
تقریب تبادلہ اشیاء میں ریکارڈ API بیس ایڈریس سوئچ کرنے کے لئے استعمال کیا جاتا ہے؛ مثال کے طور پر، سوئچ کرنے کے لئےOKX
ڈومین نامhttps://aws.okx.com
، کے ساتھ ہم آہنگexchange.IO("base","https://aws.okx.com")
سوئچنگ کا طریقہ۔ بیک ٹیسٹ سسٹم ایکسچینج کے API بیس ایڈریس کو سوئچ کرنے کی حمایت نہیں کرتا ہے (بیک ٹیسٹ سسٹم ایک سینڈ باکس ماحول ہے ، ایکسچینج تک رسائی کے لئے کوئی حقیقی انٹرفیس نہیں) ۔
function main() {
// Use the default base address
Log(exchange.GetTicker())
// Switch to https://aws.okx.com
exchange.SetBase("https://aws.okx.com")
Log(exchange.GetTicker())
}
def main():
Log(exchange.GetTicker())
exchange.SetBase("https://aws.okx.com")
Log(exchange.GetTicker())
void main() {
Log(exchange.GetTicker());
exchange.SetBase("https://aws.okx.com");
Log(exchange.GetTicker());
}
exchange.SetProxy(...)
تبادلہ تک رسائی حاصل کرنے کے لئے پراکسی سرور پر سوئچ کرتا ہے۔ اس فنکشن میں کوئی واپسی کی قیمت نہیں ہے (متغیرات کے ذریعہ حاصل کی گئی ہے ، اور آپ جو حاصل کرتے ہیں وہ ہےundefined
) اگر پراکسی کی ترتیب ناکام ہوجاتی ہے تو ، جب انٹرفیس کو بلایا جاتا ہے تو ایک نل ویلیو لوٹایا جائے گا ، صرفآرام کرناپروٹوکول.exchanges[n]
ایک پراکسی مقرر کر سکتے ہیں. پراکسی قائم کرنے کے بعد, تبادلہ انٹرفیس پراکسی کے ذریعے حاصل کیا جائے گا.
پہلا شامل تبادلہ اعتراض لے لوexchange
، یعنی:exchanges[0]
مثال کے طور پر:
exchange.SetProxy("socks5://127.0.0.1:8889")
exchange.SetProxy("socks5://username:password@127.0.0.1:8889")
(username
صارف کا نام ہے،password
پاس ورڈ ہے.)exchange.SetProxy("")
تبادلہ آبجیکٹ کی طرف سے درخواست کردہ آئی پی ایڈریس مقرر کرنے کے لئے حمایت.
windows
سسٹم انٹرفیس ورژن براہ راست مقرر کیا جا سکتا ہے، مندرجہ ذیل تصویر کے طور پر دکھایا گیا ہے:کمانڈ پرامپٹ استعمال پیرامیٹر کے ذریعہ کام کرنے والے دیگر ڈاکرز-I
آئی پی ایڈریس کی وضاحت کرنے کے لئے:
تبادلہ کی بنیاد پر:
function main(){
exchange.SetProxy("ip://10.0.3.15")
exchange.GetTicker() // The reque