پورے نیٹ ورک کے لئے ایک طاقتور ، لچکدار اور استعمال میں آسان مقداری ٹریڈنگ پلیٹ فارم کی حیثیت سے ، ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم میں استعمال کرنے میں بہت کم رکاوٹیں ہیں ، اور روبوٹ پروگرام کم وسائل استعمال کرتا ہے۔ لیکن ہم پھر بھی امید کرتے ہیں کہ روبوٹ کو چلانے کی ضرورت ہونے پر شروع ہوسکتا ہے اور جب اسے چلانے کی ضرورت نہیں ہوتی ہے تو رک سکتا ہے۔ مثال کے طور پر ، پروگرام اور کمیٹی فیوچر کی مقداری تجارت کرتے وقت پورے دن کی اکثریت غیر کھلنے کے وقت پر مشتمل ہوتی ہے۔ اس طرح ، ہم امید کرتے ہیں کہ روبوٹ صرف کھلنے کے وقت چلتا ہے ، اور یہ ہر دن پیسہ بچانے کے لئے صرف کھلنے کے وقت چلتا ہے۔ کیا یہ دلچسپ نہیں ہے؟ اس ضرورت کو پورا کرنے کے ل we ، ہم پییٹون زبان کا استعمال کرتے ہوئے ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر چلنے والے حکمت عملی روبوٹ کو لکھ سکتے ہیں ، اور روبوٹ کو ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کے توسیع شدہ اے پی آئی انٹرفیس کے ذریعے روبوٹ کے آغاز اور روکنے کو باقاعدہ وقفوں پر کنٹرول کرنے دیں۔
دراصل ، پورا کوڈ بہت آسان ہے۔ ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم توسیع API انٹرفیس کو کال کرنے کی مثال براہ راست استعمال کی جاسکتی ہے۔
ایڈریس:https://www.fmz.com/api#simpleمثال
براہ راست مثال میں فنکشن استعمال کریں:def api (method, *args)
ہمیں جس انٹرفیس کو کال کرنے کی ضرورت ہے وہ بھی بہت آسان ہے۔ مندرجہ ذیل دو انٹرفیس استعمال کیے جاتے ہیں (ایف ایم زیڈ دستاویز میں پایا جاسکتا ہے)
روبوٹ دوبارہ شروع کریں
روبوٹ انٹرفیس دوبارہ شروع کریں اور روبوٹ ID میں پیرامیٹرز میں منتقل.
مخصوص استعمالid
کال کرنے کے لئے:api ('RestartRobot', id)
روبوٹ کو روکیں
روبوٹ انٹرفیس کو روکنے کے لئے، پیرامیٹرز بھی روبوٹ ہیںID
.
روبوٹID
:
FMZ کوانٹ ٹریڈنگ پلیٹ فارم توسیع API کال کرنے کے لئے، آپ کو استعمال کرنے کی ضرورت ہےAPI KEY
ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کا۔
آپ اپنے اکاؤنٹ مینجمنٹ میں اپنی API کلید پیدا کر سکتے ہیں.
ہم گزر جاتے ہیںAPI KEY
ایک حکمت عملی پیرامیٹر کے طور پر.
FMZ کوانٹ ٹریڈنگ پلیٹ فارم اکاؤنٹ حاصل کرنے کا اسکرین شاٹAPI KEY
:
باقی ٹائمنگ منطق لکھنا ہے، جو بھی بہت آسان ہے۔ ٹائمنگ پیرامیٹرز مقرر کریں:
["175708,14:55:33-15:10:33", ...]
ellipses کے زیادہ ترتیبات کی طرح اشارہ کرتا ہے"175708,14:55:33-15:10:33"
مقرر کیا جا سکتا ہے.
ٹائمنگ پیرامیٹر ایک JSON سٹرنگ ہے ، جسے حکمت عملی کوڈ میں ایک فہرست میں تجزیہ کیا جائے گا۔ فہرست میں ہر عنصر روبوٹ اسٹارٹ / اسٹاپ کی ترتیبات کا ایک مجموعہ ہے۔
یعنی:
"175708,14:55:33-15:10:33"
وہ کوما سے الگ ہیں۔ کوما سے پہلے کا حصہ175708
روبوٹ ID ہے، اور کاما کے بعد حصہ شروع وقت / سٹاپ وقت ہے.
مندرجہ بالا مثال میں، ID 175708 کے ساتھ روبوٹ 14:55:33 پر شروع ہوتا ہے اور 15:10:33 پر رک جاتا ہے.
پھر ، حکمت عملی میں ، روبوٹ گھومتا رہے گا۔ ہر گول گھومنے سے پہلے موجودہ وقت مل جائے گا ، اور پھر فیصلہ کیا جائے گا کہ موجودہ وقت اور ٹائمنگ ٹائم کے مابین موازنہ کے مطابق روبوٹ کو اسٹارٹ یا اسٹاپ کرنا ہے۔
اگر ٹرگر کیا جاتا ہے تو، روبوٹ کو شروع کرنے اور روکنے کے لئے اے پی آئی ('RestartRobot '، id) یا API (
مکمل حکمت عملی کا کوڈ:
# -*- coding: utf-8 -*-
import time
import json
try:
import md5
import urllib2
from urllib import urlencode
except:
import hashlib as md5
import urllib.request as urllib2
from urllib.parse import urlencode
def api(method, *args):
d = {
'version': '1.0',
'access_key': accessKey,
'method': method,
'args': json.dumps(list(args)),
'nonce': int(time.time() * 1000),
}
d['sign'] = md5.md5(('%s|%s|%s|%d|%s' % (d['version'], d['method'], d['args'], d['nonce'], secretKey)).encode('utf-8')).hexdigest()
return json.loads(urllib2.urlopen('https://www.fmz.com/api/v1', urlencode(d).encode('utf-8')).read().decode('utf-8'))
RobotParams = json.loads(strRobotParams)
def main():
global RobotParams
arrParams = []
nowDay = 0
strPush = ""
if isPushMsg:
strPush = "@"
for i in range(len(RobotParams)):
param = {}
arr = RobotParams[i].split(",")
if len(arr) != 2:
raise Exception("String configuration error: delimiter,")
param["id"] = arr[0]
param["isProcessOpenThisDay"] = False
param["isProcessCloseThisDay"] = False
arr = arr[1].split("-")
if len(arr) != 2:
raise Exception("String configuration error: delimiter-")
begin = arr[0]
arrBegin = begin.split(":")
if len(arrBegin) != 3:
raise Exception("String configuration error: start time separator:")
param["begin"] = {}
param["begin"]["hour"] = float(arrBegin[0])
param["begin"]["min"] = float(arrBegin[1])
param["begin"]["sec"] = float(arrBegin[2])
end = arr[1]
arrEnd = end.split(":")
if len(arrEnd) != 3:
raise Exception("String configuration error: end time separator:")
param["end"] = {}
param["end"]["hour"] = float(arrEnd[0])
param["end"]["min"] = float(arrEnd[1])
param["end"]["sec"] = float(arrEnd[2])
arrParams.append(param)
# Test
Log("Output parameters", arrParams, "#FF0000")
while True:
nowTime = time.localtime(time.time())
nowHour = nowTime.tm_hour
nowMin = nowTime.tm_min
nowSec = nowTime.tm_sec
tbl = {
"type" : "table",
"title" : "msg",
"cols" : ["id", "begin", "end", "Did you perform a start today", "Did you perform a stop today"],
"rows" : []
}
for i in range(len(arrParams)):
tbl["rows"].append([arrParams[i]["id"], json.dumps(arrParams[i]["begin"]), json.dumps(arrParams[i]["end"]), arrParams[i]["isProcessOpenThisDay"], arrParams[i]["isProcessCloseThisDay"]])
if nowDay != nowTime.tm_mday:
arrParams[i]["isProcessOpenThisDay"] = False
arrParams[i]["isProcessCloseThisDay"] = False
if arrParams[i]["isProcessOpenThisDay"] == False:
if nowTime.tm_hour == arrParams[i]["begin"]["hour"] and nowTime.tm_min >= arrParams[i]["begin"]["min"] and nowTime.tm_sec >= arrParams[i]["begin"]["sec"]:
ret = api('RestartRobot', int(arrParams[i]["id"]))
arrParams[i]["isProcessOpenThisDay"] = True
Log("Robot ID:", arrParams[i]["id"], "Execution started, please log in to the platform to check if it started successfully", "Extended API return value:", ret, strPush)
if arrParams[i]["isProcessCloseThisDay"] == False:
if nowTime.tm_hour == arrParams[i]["end"]["hour"] and nowTime.tm_min >= arrParams[i]["end"]["min"] and nowTime.tm_sec >= arrParams[i]["end"]["sec"]:
ret = api('StopRobot', int(arrParams[i]["id"]))
arrParams[i]["isProcessCloseThisDay"] = True
Log("Robot ID:", arrParams[i]["id"], "Execution stopped, please log in to the platform to check if it stopped successfully", "Extended API return value:", ret, strPush)
if nowDay != nowTime.tm_mday:
nowDay = nowTime.tm_mday
LogStatus(_D(), nowTime, "\n`" + json.dumps(tbl) + "`")
Sleep(500)
اسکرین شاٹس:
حکمت عملی کا پتہ:https://www.fmz.com/strategy/184600
مثال کے طور پر ، ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم