এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের বর্ধিত এপিআই সম্প্রতি আপগ্রেড করা হয়েছে, এবং আপগ্রেডটি সরাসরি অ্যাক্সেস মোডকে সমর্থন করে, যাতে ট্রেডিংভিউ সতর্কতা সংকেতটি স্বয়ংক্রিয় ট্রেডিংয়ের জন্য এফএমজেডের বটগুলিতে সহজেই পাঠানো যেতে পারে। যদি আপনি জানেন না যে একটি বর্ধিত এপিআই কী, এখন আমাকে বিস্তারিতভাবে শুনুন।
FMZ API ডকুমেন্টেশনে সম্পর্কিত অংশের লিঙ্ক
সম্প্রসারিত এপিআই এর প্রধান ফাংশন হল এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের বিভিন্ন ফাংশনের জন্য ইন্টারফেস সরবরাহ করা, যেমন একযোগে ব্যাচ স্টার্ট বট, টাইমিং বট স্টার্ট এবং স্টপ, বট তথ্য বিশদ পড়া ইত্যাদি। আমরা ট্রেডিংভিউ সতর্কতা সংকেত ট্রেডিং বাস্তবায়নের জন্য এফএমজেড সম্প্রসারিত এপিআই ব্যবহার করি। এই চাহিদাটি কেবলমাত্রCommandRobot(RobotId, Cmd)
এক্সটেন্ডেড এপিআইতে ইন্টারফেস। এই ইন্টারফেসটি নির্দিষ্ট আইডি সহ বটকে ইন্টারেক্টিভ কমান্ড পাঠাতে পারে এবং বট সংশ্লিষ্ট ক্রিয়াকলাপগুলি সম্পাদন করতে পারে (যেমন ক্রয় বা বিক্রয় অর্ডার দেওয়া ইত্যাদি)
বর্ধিত এপিআই ব্যবহার করার জন্য, আপনাকে প্রথমে আপনার নিজের অ্যাকাউন্ট তৈরি করতে হবেAPI KEY
এফএমজেডেঃ
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
এক্সটেন্ডেড এপিআই ইন্টারফেসের নির্দিষ্ট নাম যা অ্যাক্সেস করা হবে এবংargs
প্যারামিটারmethod
ইন্টারফেস কল করা হবে.
আমরা ট্রেডিংভিউকে সিগন্যাল উৎস হিসেবে ব্যবহার করি, যাতে আমরা FMZ বটগুলোকে ট্রেডিং কমান্ড পাঠাতে পারি।CommandRobot
interface.
প্রথমত, আপনার একটি ট্রেডিংভিউ প্রো অ্যাকাউন্ট থাকা দরকার। বেসিক স্তরটি সতর্কতায় ওয়েবহাউড ফাংশন ব্যবহার করতে পারে না। আমরা ট্রেডিংভিউ চার্ট প্রবেশ করি।
চার্টে একটি সূচক যোগ করুন, এবং অন্যান্য স্ক্রিপ্ট অ্যালগরিদমগুলিও ব্যবহার করা যেতে পারে। এখানে, প্রদর্শনের সুবিধার জন্য, আমরা সর্বাধিক ব্যবহৃতMACD
সূচক, এবং তারপর K-লাইন সময়কাল 1 মিনিটে সেট করুন (সাইনালটি দ্রুততর এবং প্রদর্শনকে সহজতর করার জন্য) ।
চার্টে ডান ক্লিক করুন এবং পপ-আপ মেনু থেকে
সেট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
যখন ট্রেডিং ভিউ সতর্কতা ট্রিগার করা হয় তখন ওয়েবহুক অনুরোধ ইউআরএলে এফএমজেড কোয়ান্ট এক্সটেন্ডেড এপিআইয়ের ইন্টারফেস।
ট্রেডিংভিউ ফিরে, আমরা ওয়েবহুক এর URL পূরণ. আপনার নিজের পূরণAPI KEY
মধ্যেaccess_key
এবংsecret_key
প্যারামিটারmethod
স্থির করা হয়, আমরা শুধুমাত্র বর্ধিত এপিআই অ্যাক্সেস করতে হবেCommandRobot
;args
প্যারামিটারটি হল[robot ID, command string]
, আমরা সরাসরি বট পৃষ্ঠার মাধ্যমে রোবট আইডি পেতে পারি, যেমন চিত্রটিতে দেখানো হয়েছেঃ
এইবার যখন আমরা সিগন্যালটি ট্রিগার করব, 0.02 মুদ্রা কিনব, এবং কমান্ড স্ট্রিং হবেঃ"buy:0.02"
. যে WebHook URL সম্পূর্ণ.
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[443999,"buy:0.02"]
ট্রেডিংভিউতে সেট করুনঃ
সিগন্যালের জন্য অপেক্ষা করুন। যখন বট সিগন্যালটি পায়, আপনি পৃষ্ঠার উপরের ডানদিকে সিগন্যাল সতর্কতা দেখতে পাবেন, এবং পৃষ্ঠার নীচে ডানদিকে ট্রিগার লগগুলি দেখতে পাবেন।
বট সিগন্যালটি পেয়েছে:
এই ভাবে, আপনি ট্রেডিং ভিউতে সমৃদ্ধ চার্ট ফাংশন এবং সূচক অ্যালগরিদম ব্যবহার করে আপনার পছন্দসই স্বয়ংক্রিয় ট্রেডিং উপলব্ধি করতে FMZ Quant এর কৌশল বটের সাথে সহযোগিতা করতে পারেন। ট্রেডিং ভিউতে কৌশলগুলি জাভাস্ক্রিপ্ট এবং পাইথনে প্রতিস্থাপনের তুলনায় অসুবিধা হ্রাস পেয়েছে।