
مقداری تجارت کی مقبولیت اور ترقی کے ساتھ، سرمایہ کاروں کو عام طور پر حقیقی کھاتوں کی ایک بڑی تعداد کا انتظام کرنے کی ضرورت ہوتی ہے، جو ٹریڈنگ کے فیصلہ سازی، نگرانی اور عمل درآمد کے لیے بہت بڑے چیلنجز لاتی ہے۔ انتظامی کارکردگی کو بہتر بنانے اور آپریشنل دشواری کو کم کرنے کے لیے، FMZ پر تاجر گروپ کنٹرول مینجمنٹ کے لیے FMZ کے توسیعی API کا استعمال کر سکتے ہیں۔ یہ مضمون مقداری تجارت میں FMZ توسیعی API کے استعمال کے فوائد اور گروپ کنٹرول کے موثر انتظام کو حاصل کرنے کے طریقے تلاش کرے گا۔
بہت سے صارفین کے پاس ان کے اپنے کلائنٹ اکاؤنٹس ہوتے ہیں جن کا نظم و نسق کرنے کی ضرورت ہوتی ہے جب کلائنٹ اکاؤنٹس کی ایک بڑی تعداد ہوتی ہے، تو انتظام اور دیکھ بھال کے زیادہ آسان طریقے کی ضرورت ہوتی ہے (کم از کم ایک درجن اکاؤنٹس، اور زیادہ سے زیادہ سینکڑوں اکاؤنٹس)۔ FMZ ایک طاقتور توسیعی API فراہم کرتا ہے، اور FMZ کے توسیعی API کے ذریعے گروپ کنٹرول مینجمنٹ ایک مثالی انتخاب بن جاتا ہے۔
FMZ کے توسیعی API کے ذریعے، آپ مرکزی طور پر تمام حقیقی کھاتوں کی تجارتی سرگرمیوں اور اثاثوں کی حیثیت کی نگرانی کر سکتے ہیں۔ چاہے یہ ہر اکاؤنٹ کی پوزیشنوں، تاریخی لین دین کے ریکارڈ، یا اکاؤنٹ کے منافع اور نقصان کی صورتحال کی حقیقی وقت کی نگرانی ہو، یہ حاصل کیا جا سکتا ہے۔
// 全局变量
var isLogMsg = true // 控制日志是否打印
var isDebug = false // 调试模式
var arrIndexDesc = ["all", "running", "stop"]
var descRobotStatusCode = ["空闲中", "运行中", "停止中", "已退出", "被停止", "策略有错误"]
var dicRobotStatusCode = {
"all" : -1,
"running" : 1,
"stop" : 4,
}
// 扩展的日志函数
function LogControl(...args) {
if (isLogMsg) {
Log(...args)
}
}
// FMZ扩展API调用函数
function callFmzExtAPI(accessKey, secretKey, funcName, ...args) {
var params = {
"version" : "1.0",
"access_key" : accessKey,
"method" : funcName,
"args" : JSON.stringify(args),
"nonce" : Math.floor(new Date().getTime())
}
var data = `${params["version"]}|${params["method"]}|${params["args"]}|${params["nonce"]}|${secretKey}`
params["sign"] = Encode("md5", "string", "hex", data)
var arrPairs = []
for (var k in params) {
var pair = `${k}=${params[k]}`
arrPairs.push(pair)
}
var query = arrPairs.join("&")
var ret = null
try {
LogControl("url:", baseAPI + "/api/v1?" + query)
ret = JSON.parse(HttpQuery(baseAPI + "/api/v1?" + query))
if (isDebug) {
LogControl("Debug:", ret)
}
} catch(e) {
LogControl("e.name:", e.name, "e.stack:", e.stack, "e.message:", e.message)
}
Sleep(100) // 控制频率
return ret
}
// 获取指定策略Id的所有运行中的实盘信息
function getAllRobotByIdAndStatus(accessKey, secretKey, strategyId, robotStatusCode, maxRetry) {
var retryCounter = 0
var length = 100
var offset = 0
var arr = []
if (typeof(maxRetry) == "undefined") {
maxRetry = 10
}
while (true) {
if (retryCounter > maxRetry) {
LogControl("超过最大重试次数", maxRetry)
return null
}
var ret = callFmzExtAPI(accessKey, secretKey, "GetRobotList", offset, length, robotStatusCode)
if (!ret || ret["code"] != 0) {
Sleep(1000)
retryCounter++
continue
}
var robots = ret["data"]["result"]["robots"]
for (var i in robots) {
if (robots[i].strategy_id != strategyId) {
continue
}
arr.push(robots[i])
}
if (robots.length < length) {
break
}
offset += length
}
return arr
}
function main() {
var robotStatusCode = dicRobotStatusCode[arrIndexDesc[robotStatus]]
var robotList = getAllRobotByIdAndStatus(accessKey, secretKey, strategyId, robotStatusCode)
if (!robotList) {
Log("获取实盘数据失败")
}
var robotTbl = {"type": "table", "title": "实盘列表", "cols": [], "rows": []}
robotTbl.cols = ["实盘Id", "实盘名称", "实盘状态", "策略名称", "实盘收益"]
_.each(robotList, function(robotInfo) {
robotTbl.rows.push([robotInfo.id, robotInfo.name, descRobotStatusCode[robotInfo.status], robotInfo.strategy_name, robotInfo.profit])
})
LogStatus(_D(), "`" + JSON.stringify(robotTbl) + "`")
}
حکمت عملی پیرامیٹر ڈیزائن:

تعامل ڈیزائن:

اصلی ڈسک آپریشن:

گروپ کنٹرول مینجمنٹ ایک کلک کے ساتھ لین دین کو انجام دینا بہت آسان بناتا ہے۔ آپ ایک ہی وقت میں ایک سے زیادہ حقیقی آرڈرز پر خرید، فروخت، بند پوزیشنز اور دیگر کارروائیاں ایک ایک کرکے مختلف اصلی آرڈرز کھولے بغیر کر سکتے ہیں۔ یہ نہ صرف عملدرآمد کی کارکردگی کو بہتر بناتا ہے، بلکہ آپریشنل غلطیوں کے امکان کو بھی کم کرتا ہے۔
ریئل ٹائم لسٹ کی معلومات حاصل کرنے کے بعد، ہم ریئل ٹائم مارکیٹ کو پہلے سے متعین آپریشنز کی ایک سیریز کو انجام دینے کے لیے ہدایات بھیج سکتے ہیں۔ مثال کے طور پر: ریئل ٹائم لیکویڈیشن، ریئل ٹائم معطلی پروٹیکشن، اور ریئل ٹائم موڈ سوئچنگ۔ ان کو FMZ API کے ذریعے بڑھایا جا سکتا ہے۔CommandRobotپورا کرنا
ہم کوڈ لکھنا جاری رکھتے ہیں، بس کچھ تعاملات شامل کریں اور مرکزی فنکشن میں API انٹرفیس کو بڑھا دیں۔CommandRobotکال:
function main() {
var robotStatusCode = dicRobotStatusCode[arrIndexDesc[robotStatus]]
var robotList = getAllRobotByIdAndStatus(accessKey, secretKey, strategyId, robotStatusCode)
if (!robotList) {
Log("获取实盘数据失败")
}
var robotTbl = {"type": "table", "title": "实盘列表", "cols": [], "rows": []}
robotTbl.cols = ["实盘Id", "实盘名称", "实盘状态", "策略名称", "实盘收益"]
_.each(robotList, function(robotInfo) {
robotTbl.rows.push([robotInfo.id, robotInfo.name, descRobotStatusCode[robotInfo.status], robotInfo.strategy_name, robotInfo.profit])
})
LogStatus(_D(), "`" + JSON.stringify(robotTbl) + "`")
while(true) {
LogStatus(_D(), ", 等待接收交互命令", "\n", "`" + JSON.stringify(robotTbl) + "`")
var cmd = GetCommand()
if (cmd) {
var arrCmd = cmd.split(":")
if (arrCmd.length == 1 && cmd == "coverAll") {
_.each(robotList, function(robotInfo) {
var strCmd = "清仓" // 可以定义所需的消息格式
if (robotInfo.status != 1) { // 只有”活着“的实盘才能接收命令
return
}
var ret = callFmzExtAPI(accessKey, secretKey, "CommandRobot", parseInt(robotInfo.id), strCmd)
LogControl("向id:", robotInfo.id, "的实盘发送命令:", strCmd, ", 执行结果:", ret)
})
}
}
Sleep(1000)
}
}

گروپ کنٹرول کی حکمت عملی نے پھر “ٹیسٹ 1 اے” اور “ٹیسٹ 1 بی” کو ہدایات بھیجیں۔


FMZ کے توسیعی API کا استعمال کرتے ہوئے، آپ آسانی سے بیچوں میں حکمت عملی کے پیرامیٹرز میں ترمیم کر سکتے ہیں اور بیچوں میں حقیقی تجارت شروع اور روک سکتے ہیں۔ مضمون کی طوالت کی وجہ سے، ہم تفصیل سے بات کریں گے کہ کس طرح بیچ حکمت عملی کے پیرامیٹرز میں ترمیم کریں اور اسے اگلے مضمون میں شروع کریں۔
مقداری تجارت میں، گروپ کنٹرول مینجمنٹ کے لیے FMZ کے توسیعی API کا استعمال کرتے ہوئے، تاجر ایک سے زیادہ حقیقی اکاؤنٹس کی نگرانی، عمل درآمد اور ایڈجسٹ کر سکتے ہیں۔ یہ مرکزی انتظامی نقطہ نظر نہ صرف آپریشنل کارکردگی کو بہتر بناتا ہے بلکہ رسک کنٹرول اور حکمت عملی کی ہم آہنگی کو بہتر طریقے سے نافذ کرنے میں بھی مدد کرتا ہے۔ ایسے تاجروں کے لیے جو بڑی تعداد میں حقیقی اکاؤنٹس کا انتظام کرتے ہیں، FMZ کا توسیعی API انہیں ایک طاقتور اور لچکدار ٹول فراہم کرتا ہے، جو مقداری تجارت کو زیادہ آسان اور قابل کنٹرول بناتا ہے۔