পুরো নেটওয়ার্কের জন্য একটি শক্তিশালী, নমনীয় এবং সহজেই ব্যবহারযোগ্য পরিমাণগত ট্রেডিং প্ল্যাটফর্ম হিসাবে, এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের ব্যবহারের জন্য খুব কম বাধা রয়েছে এবং রোবট প্রোগ্রামটি খুব কম সংস্থান নেয়। তবে আমরা এখনও আশা করি যে রোবটটি যখন চালানোর প্রয়োজন হয় তখন শুরু করতে পারে এবং যখন এটি চালানোর প্রয়োজন হয় না তখন থামতে পারে। উদাহরণস্বরূপ, প্রোগ্রাম এবং কমোডিটি ফিউচারগুলির পরিমাণগত ট্রেডিং পরিচালনা করার সময় পুরো দিনের বেশিরভাগ অংশের জন্য অ-খোলার সময় অ্যাকাউন্ট রয়েছে। এইভাবে, আমরা আশা করি যে রোবটটি কেবল খোলার সময়ে চলবে এবং এটি অর্থ সাশ্রয়ের জন্য প্রতিদিন কেবল খোলার সময়ে চলবে। এটি উত্তেজনাপূর্ণ নয়? এই প্রয়োজনীয়তা পূরণের জন্য, আমরা পাইথন ভাষা ব্যবহার করতে পারি এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মে চলমান একটি কৌশল রোবট লিখতে, এবং রোবটকে এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের বর্ধিত এপিআই ইন্টারফেসের মাধ্যমে নিয়মিত ব্যবধানে রোবটের শুরু এবং থামানো নিয়ন্ত্রণ করতে দিন।
প্রকৃতপক্ষে, পুরো কোডটি খুব সহজ। এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্ম এক্সটেনশন এপিআই ইন্টারফেস কল করার উদাহরণ সরাসরি ব্যবহার করা যেতে পারে।
ঠিকানা:https://www.fmz.com/api#simpleউদাহরণ
উদাহরণে ফাংশনটি সরাসরি ব্যবহার করুনঃdef api (method, *args)
আমাদের যে ইন্টারফেসটি কল করতে হবে তাও খুব সহজ। নিম্নলিখিত দুটি ইন্টারফেস ব্যবহার করা হয় (এফএমজেড ডকুমেন্টে পাওয়া যাবে)
রবট পুনরায় চালু করুন
রোবট ইন্টারফেস পুনরায় চালু করুন এবং রোবট আইডিতে প্যারামিটারগুলি পাস করুন।
নির্দিষ্ট ব্যবহারid
কল করার জন্যঃapi ('RestartRobot', id)
বন্ধ করুনরোবট
রোবট ইন্টারফেস বন্ধ করার জন্য, পরামিতি এছাড়াও রোবট হয়ID
.
রোবটID
:
FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্ম এক্সটেনশন এপিআই কল করার জন্য, আপনি ব্যবহার করতে হবেAPI KEY
এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের।
আপনি অ্যাকাউন্ট ম্যানেজমেন্টে আপনার নিজের API কী তৈরি করতে পারেন।
আমরা পার হচ্ছিAPI KEY
কৌশলগত প্যারামিটার হিসেবে।
এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্ম অ্যাকাউন্ট পাওয়ার স্ক্রিনশটAPI KEY
:
বাকিটা হচ্ছে টাইমিং লজিক লিখতে হবে, যা খুবই সহজ। টাইমিং প্যারামিটার সেট করুনঃ
["175708,14:55:33-15:10:33", ...]
এলিপস ইঙ্গিত দেয় যে আরো সেটিংস মত"175708,14:55:33-15:10:33"
সেট করা যায়।
টাইমিং প্যারামিটারটি একটি JSON স্ট্রিং, যা কৌশল কোডে একটি তালিকায় বিশ্লেষণ করা হবে। তালিকার প্রতিটি উপাদান রোবট স্টার্ট / স্টপ সেটিংসের একটি সেট।
বিশেষ করে:
"175708,14:55:33-15:10:33"
তারা কমা দ্বারা পৃথক করা হয়. কমা আগে অংশ175708
রোবট আইডি, এবং কমা পরে অংশ শুরু / স্টপ সময়।
উপরের উদাহরণে, আইডি 175708 সহ রোবটটি 14:55:33 এ শুরু হয় এবং 15:10:33 এ বন্ধ হয়।
তারপর, কৌশল, রোবট ঘোরানো রাখা হবে. প্রতিটি বৃত্তাকার ঘূর্ণন প্রথম বর্তমান সময় পাবেন, এবং তারপর বর্তমান সময় এবং টাইমিং সময় মধ্যে তুলনা অনুযায়ী রোবট শুরু বা বন্ধ ট্রিগার কিনা বিচার।
যদি ট্রিগার করা হয়, তাহলে এপিআই ('RestartRobot', id) বা এপিআই (
সম্পূর্ণ কৌশল কোডঃ
# -*- 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
উদাহরণস্বরূপ, এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের বর্ধিত এপিআই এখনও খুব শক্তিশালী। এই বর্ধিত এপিআইগুলির সাথে এফএমজেড প্ল্যাটফর্মের উপর ভিত্তি করে আপনার নিজস্ব পরিমাণগত ট্রেডিং প্ল্যাটফর্ম তৈরি করা কোনও সমস্যা নয়। টাইমিং রোবটটি নকশায় সহজ, এটি সেই সময়ে শুরু হয় এবং সেই সময়ে থামে। এটিতে স্টার্টআপ সফল কিনা, পরিদর্শন, ব্যতিক্রম পুনরায় চেষ্টা ইত্যাদির মতো প্রক্রিয়া অন্তর্ভুক্ত নেই। যদি আপনি আগ্রহী হন তবে আপনি ফাংশন যুক্ত করতে এবং সেগুলি প্রসারিত করতে পারেন। কৌশলটি শুধুমাত্র রেফারেন্সের জন্য।