ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کی توسیع شدہ API کو حال ہی میں اپ گریڈ کیا گیا ہے ، اور اپ گریڈ براہ راست رسائی کے موڈ کی حمایت کرتا ہے ، تاکہ ٹریڈنگ ویو الرٹ سگنل کو خودکار تجارت کے لئے ایف ایم زیڈ پر بوٹس کو آسانی سے بھیجا جاسکے۔ اگر آپ نہیں جانتے کہ توسیع شدہ API کیا ہے تو ، اب مجھے تفصیل سے سنیں۔
FMZ API دستاویزات میں متعلقہ حصہ کا لنک
توسیع شدہ API کا بنیادی کام ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر مختلف افعال کے لئے انٹرفیس فراہم کرنا ہے ، جیسے بیک وقت بیچ اسٹارٹ بوٹس ، ٹائمنگ بوٹ اسٹارٹ اور اسٹاپ ، بوٹ انفارمیشن کی تفصیلات وغیرہ کو پڑھنا۔ ہم ٹریڈنگ ویو الرٹ سگنل ٹریڈنگ کو نافذ کرنے کے لئے ایف ایم زیڈ توسیع شدہ API کا استعمال کرتے ہیں۔ اس مطالبہ کے لئے صرفCommandRobot(RobotId, Cmd)
توسیع شدہ API میں انٹرفیس۔ یہ انٹرفیس مخصوص ID کے ساتھ بوٹ کو انٹرایکٹو کمانڈ بھیج سکتا ہے ، اور بوٹ اسی طرح کے آپریشن انجام دے سکتا ہے (جیسے خریدنے یا فروخت کرنے کا آرڈر دینا وغیرہ)
توسیع API استعمال کرنے کے لئے، آپ سب سے پہلے آپ کے اپنے اکاؤنٹ بنانے کی ضرورت ہےAPI KEY
FMZ پر:
API KEY
پر مشتمل ہےaccess key
اورsecret key
; API KEY
پروگرام کے مطابق FMZ کوانٹ ٹریڈنگ پلیٹ فارم کو چلانے کی کلید ہے، لہذا اس بات کو یقینی بنائیں کہ اسے مناسب طریقے سے رکھیں اور اسے ظاہر نہ کریں.API KEY
، آپ کی اجازت کی وضاحت کر سکتے ہیں. مثال کے طور پر مندرجہ بالا اعداد و شمار صرف دیتا ہےAPI KEY
رسائی کی اجازتCommandRobot(RobotId, Cmd)
انٹرفیس. اس مثال میں، سیکورٹی وجوہات کی بناء پر، صرف رسائی کی اجازت عطا کریںCommandRobot(RobotId, Cmd)
ایف ایم زیڈ کے ساتھ رابطے میں توسیعAPI KEY
.
براہ راست رسائی موڈ براہ راست لکھنے کا اشارہ کرتا ہےAPI KEY
URL کی استفسار میں؛ مثال کے طور پر FMZ Quant پلیٹ فارم کے توسیع شدہ API تک رسائی حاصل کرنے والا URL اس طرح لکھا جاسکتا ہے:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]
ان میں،https://www.fmz.com/api/v1
انٹرفیس ایڈریس ہے؛?
کے بعد آتا ہےQuery
؛ پیرامیٹرaccess_key
مثال کے طور پر xxx کی طرف سے نمائندگی کی جاتی ہے (استعمال کرتے وقت، اپنے FMZ اکاؤنٹ کی رسائی_کلیدی درج کریں) ؛ پیرامیٹرsecret_key
yyyy کی طرف سے نمائندگی کی جاتی ہے (استعمال کرتے وقت، آپ کے اپنے اکاؤنٹ secret_key میں بھریں) ؛ پیرامیٹرmethod
توسیع شدہ API انٹرفیس کا مخصوص نام ہے جس تک رسائی حاصل کی جائے گی، اورargs
کے پیرامیٹر ہےmethod
انٹرفیس بلایا جائے گا.
ہم ٹریڈنگ ویو کو FMZ بوٹس کو تجارتی احکامات بھیجنے کے لئے سگنل کا ذریعہ کے طور پر استعمال کرتے ہیں۔ حقیقت میں ہم صرفCommandRobot
interface.
سب سے پہلے ، آپ کو ٹریڈنگ ویو پرو اکاؤنٹ کی ضرورت ہے۔ بنیادی سطح انتباہ میں ویب ہڈ فنکشن کا استعمال نہیں کرسکتی ہے۔ ہم ٹریڈنگ ویو کے چارٹ میں داخل ہوتے ہیں۔
چارٹ میں ایک اشارے کا اضافہ کریں، اور دیگر اسکرپٹ الگورتھم بھی استعمال کیا جا سکتا ہے. یہاں، مظاہرے کی سہولت کے لئے، ہم سب سے زیادہ عام طور پر استعمال کیا جاتا ہےMACD
اشارے، اور پھر 1 منٹ پر K لائن مدت مقرر (سگنل تیزی سے چالو کرنے اور مظاہرے کو آسان بنانے کے لئے).
چارٹ پر دائیں کلک کریں اور پاپ اپ مینو سے
سیٹWebHook
حکمت عملی کا ماخذ کوڈ:
// global variable
var BUY = "buy" // Note: the command used for spot
var SELL = "sell" // the command used for futures
var LONG = "long" // the command used for futures
var SHORT = "short" // the command used for futures
var COVER_LONG = "cover_long" // the command used for futures
var COVER_SHORT = "cover_short" // the command used for futures
function main() {
// Empty the logs; delete, if not needed
LogReset(1)
// Set the precision
exchange.SetPrecision(QuotePrecision, BasePrecision)
// Judge whether it is spot or futures
var eType = 0
var eName = exchange.GetName()
var patt = /Futures_/
if (patt.test(eName)) {
Log("The added platform is a futures platform:", eName, "#FF0000")
eType = 1
if (Ct == "") {
throw "Ct contract set to null"
} else {
Log(exchange.SetContractType(Ct), "Set contract:", Ct, "#FF0000")
}
} else {
Log("The added platform is a spot platform:", eName, "#32CD32")
}
var lastMsg = ""
var acc = _C(exchange.GetAccount)
while(true) {
var cmd = GetCommand()
if (cmd) {
// Detect the interactive command
lastMsg = "Command:" + cmd + "Time:" + _D()
var arr = cmd.split(":")
if (arr.length != 2) {
Log("Wrong cmd information:", cmd, "#FF0000")
continue
}
var action = arr[0]
var amount = parseFloat(arr[1])
if (eType == 0) {
if (action == BUY) {
var buyInfo = IsMarketOrder ? exchange.Buy(-1, amount) : $.Buy(amount)
Log("buyInfo:", buyInfo)
} else if (action == SELL) {
var sellInfo = IsMarketOrder ? exchange.Sell(-1, amount) : $.Sell(amount)
Log("sellInfo:", sellInfo)
} else {
Log("Spot trading platforms are not supported!", "#FF0000")
}
} else if (eType == 1) {
var tradeInfo = null
var ticker = _C(exchange.GetTicker)
if (action == LONG) {
exchange.SetDirection("buy")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
} else if (action == SHORT) {
exchange.SetDirection("sell")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
} else if (action == COVER_LONG) {
exchange.SetDirection("closebuy")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
} else if (action == COVER_SHORT) {
exchange.SetDirection("closesell")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
} else {
Log("Futures trading platforms are not supported!", "#FF0000")
}
if (tradeInfo) {
Log("tradeInfo:", tradeInfo)
}
} else {
throw "eType error, eType:" + eType
}
acc = _C(exchange.GetAccount)
}
var tbl = {
type : "table",
title : "Status information",
cols : ["Data"],
rows : []
}
// tbl.rows.push([JSON.stringify(acc)]) // Used during testing
LogStatus(_D(), eName, "The command received last time:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(1000)
}
}
کوڈ بہت آسان ہے. یہ واپسی کی قدر کا پتہ لگاتا ہےGetCommand
تقریب. جب ایک انٹرایکٹو پیغام حکمت عملی کے پروگرام میں بھیجا جاتا ہے،GetCommand
اس پیغام کو واپس کرے گا، اور پھر حکمت عملی پروگرام پیغام کے مواد کی بنیاد پر ایک متعلقہ ٹریڈنگ آپریشن کرے گا. انٹرایکشن بٹن حکمت عملی پر قائم کیا گیا ہے، جو انٹرایکٹو تقریب کی جانچ کر سکتے ہیں. مثال کے طور پر، جب حکمت عملی کام کیا جاتا ہے، بوٹ تخروپن پلیٹ فارم کے ساتھ ترتیب دیا جاتا ہےWexApp
ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کی.
خریدنے کے لئے ایک کمانڈ حاصل کرنے کے لئے بوٹ کی صلاحیت کی جانچ کرنے کے لئے بات چیت کے بٹن پر کلک کریں.
ہم دیکھ سکتے ہیں کہ روبوٹ کی طرف سے موصول کمانڈ سٹرنگ ہے:buy:0.01
.
ہم صرف لے پیرامیٹر بننے کے لئے کی ضرورت ہےbuy:0.01
رسائی کے دورانCommandRobot
FMZ Quant توسیع API کے انٹرفیس میں WebHook درخواست یو آر ایل، جب TradingView انتباہ چالو کیا جاتا ہے.
ٹریڈنگ ویو پر واپس، ہم ویب ہک کے یو آر ایل کو بھرنے.API KEY
میںaccess_key
اورsecret_key
پیرامیٹرmethod
طے ہے، ہم صرف توسیع API تک رسائی حاصل کرنے کی ضرورت ہےCommandRobot
؛args
پیرامیٹر کی شکل میں ہے[robot ID, command string]
، ہم براہ راست روبوٹ ID حاصل کر سکتے ہیں روبوٹ صفحے کے ذریعے، کے طور پر شکل میں دکھایا گیا ہے:
اس بار جب ہم سگنل کو ٹرگر کرتے ہیں، 0.02 سکے خریدتے ہیں، اور کمانڈ سٹرنگ یہ ہے:"buy:0.02"
. کہ WebHook یو آر ایل مکمل.
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[443999,"buy:0.02"]
ٹریڈنگ ویو پر سیٹ کریں:
سگنل کے ٹرگر ہونے کا انتظار کریں۔ جب بوٹ سگنل وصول کرتا ہے، آپ صفحے کے اوپری دائیں جانب سگنل الرٹ دیکھ سکتے ہیں، اور صفحے کے نیچے دائیں جانب ٹرگر لاگ دیکھ سکتے ہیں۔
روبوٹ نے سگنل موصول کیا:
اس طرح ، آپ ٹریڈنگ ویو پر بھرپور چارٹ افعال اور اشارے کے الگورتھم استعمال کرسکتے ہیں تاکہ آپ اپنی مطلوبہ خودکار تجارت کا احساس کرنے کے لئے ایف ایم زیڈ کوانٹ کے حکمت عملی بوٹ کے ساتھ تعاون کرسکیں۔ ٹریڈنگ ویو پر حکمت عملیوں کو جاوا اسکرپٹ اور پائتھون میں منتقل کرنے کے مقابلے میں ، مشکل کم ہوگئی ہے۔