এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের বর্ধিত এপিআই সম্প্রতি সরাসরি অ্যাক্সেস সমর্থন করার জন্য আপগ্রেড করা হয়েছে, যাতে এটি স্বয়ংক্রিয় ট্রেডিংয়ের জন্য এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্ম রোবটে ট্রেডিংভিউ সতর্কতা সংকেত সহজেই প্রেরণ করতে পারে। যদি আপনি জানেন না যে এক্সটেনশন এপিআই কী, তবে আমার কথা মনোযোগ সহকারে শুনুন।
এফএমজেডের এপিআই ডকুমেন্টেশনের কিছু লিঙ্ক (https://www.fmz.com/api)
সম্প্রসারিত এপিআই প্রধান ফাংশন প্রোগ্রাম্যাটিক ক্রিয়াকলাপের জন্য FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্মে বিভিন্ন ফাংশনের জন্য ইন্টারফেস সরবরাহ করা, যেমন একযোগে ব্যাচে রোবটগুলি চালু করা, রোবটগুলি শুরু এবং বন্ধ করার সময় নির্ধারণ করা, রোবট তথ্যের বিশদ পড়া ইত্যাদি। আমরা FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের সম্প্রসারিত এপিআই ব্যবহার করি চাহিদা পরিকল্পনা বাস্তবায়নের জন্য ট্রেডিংভিউ সতর্কতা সংকেত ট্রেডিং, যা কেবলমাত্রCommandRobot(RobotId, Cmd)
এই ইন্টারফেসটি একটি নির্দিষ্ট আইডি সহ রোবটকে ইন্টারেক্টিভ নির্দেশাবলী পাঠাতে পারে এবং রোবট নির্দেশাবলী পাওয়ার পরে সংশ্লিষ্ট ক্রিয়াকলাপগুলি সম্পাদন করতে পারে (যেমন ক্রয়, বিক্রয়, ইত্যাদির অর্ডার দেওয়া) ।
বর্ধিত এপিআই ব্যবহার করার জন্য, আপনি একটি তৈরি করতে হবেAPI KEY
প্রথমে আপনার নিজের FMZ অ্যাকাউন্টের জন্যঃ
গোপন চাবিAPI KEY
এর মধ্যে রয়েছেঃaccess key
এবংsecret key
. API KEY
প্রোগ্রাম্যাটিক অপারেশনের FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের পরিমাণ নির্ধারণের মূল চাবিকাঠি, তাই এটি যথাযথভাবে রাখা উচিত এবং প্রকাশ করা উচিত নয়।API KEY
উদাহরণস্বরূপ, উপরের চিত্রটি শুধুমাত্রAPI KEY
অনুমতিCommandRobot(RobotId, Cmd)
এই উদাহরণে, নিরাপত্তা বিবেচনার উপর ভিত্তি করে, শুধুমাত্র বর্ধিতAPI KEY
এফএমজেডের অনুমতিCommandRobot(RobotId, Cmd)
interface.
সরাসরি অ্যাক্সেস মোড মানেAPI KEY
সরাসরি ইউআরএল ক্যোয়ারিতে লেখা হয়। উদাহরণস্বরূপ, এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের বর্ধিত এপিআইতে অ্যাক্সেসের জন্য ইউআরএল লিখতে পারেঃ
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 অ্যাকাউন্টের access_key পূরণ করুন) ।secret_key
yyyy দ্বারা প্রতিনিধিত্ব করা হয় (আপনি এটি ব্যবহার করার সময় আপনার নিজের অ্যাকাউন্ট secret_key পূরণ করুন). প্যারামিটারmethod
এক্সটেন্ডেড এপিআই ইন্টারফেসের নির্দিষ্ট নাম যা অ্যাক্সেস করা হবে এবং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 spot
var LONG = "long" // The command used for future
var SHORT = "short" // The command used for future
var COVER_LONG = "cover_long" // The command used for future
var COVER_SHORT = "cover_short" // The command used for future
function main() {
// Clear the log and delete it if not needed
LogReset(1)
// Set precision
exchange.SetPrecision(QuotePrecision, BasePrecision)
// Identify future or spot
var eType = 0
var eName = exchange.GetName()
var patt = /Futures_/
if (patt.test(eName)) {
Log("The added exchange is a futures exchange:", 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 exchange is a spots exchange:", eName, "#32CD32")
}
var lastMsg = ""
var acc = _C(exchange.GetAccount)
while(true) {
var cmd = GetCommand()
if (cmd) {
// Detect interactive commands
lastMsg = "command:" + cmd + "time:" + _D()
var arr = cmd.split(":")
if (arr.length != 2) {
Log("cmd incorrect 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("The spots exchange is 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("The futures exchange is 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)]) // Use it when testing
LogStatus(_D(), eName, "Last received command:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(1000)
}
}
কৌশল উৎস কোড (https://www.fmz.com/strategy/203063)
কৌশল কোড খুব সহজ. এটি রিটার্ন মান সনাক্তGetCommand
যখন একটি ইন্টারেক্টিভ বার্তা কৌশল প্রোগ্রাম পাঠানো হয়,GetCommand
ফাংশন বার্তা ফেরত, এবং কৌশল প্রোগ্রাম বার্তা বিষয়বস্তু অনুযায়ী সংশ্লিষ্ট লেনদেন অপারেশন করে তোলে. ইন্টারেক্টিভ ফাংশন পরীক্ষা করার জন্য এই কৌশল ইন্টারেক্টিভ বোতাম সেট করা হয়েছে. উদাহরণস্বরূপ, এই কৌশল চালান এবং রবট কনফিগারWexApp
এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের একটি সিমুলেশন এক্সচেঞ্জ।
আমরা ইন্টারেক্টিভ বোতামে ক্লিক করি রোবটের ক্রয়ের অর্ডার গ্রহণের ফাংশনটি পরীক্ষা করার জন্য, তারপর আমরা দেখতে পারি যে রোবট দ্বারা প্রাপ্ত কমান্ড স্ট্রিংটি হলঃbuy:0.01
.
আমরা শুধুমাত্র WebHook অনুরোধ URL করতে হবে যখন ট্রেডিংভিউ সতর্কতা অ্যাক্সেস করতে ট্রিগার করা হয়CommandRobot
FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের এক্সটেন্ডেড এপিআই এর ইন্টারফেস, বহন করা পরামিতি হলbuy:0.01
.
ট্রেডিংভিউ ফিরে, আমরা ওয়েবহুক এর URL পূরণ. পরামিতি জন্য আপনার নিজের API কী পূরণaccess_key
, secret_key
.method
ঠিক করা হয়. আমরা শুধুমাত্র অ্যাক্সেস করতে হবেCommandRobot
এক্সটেন্ডেডএপিআই ইন্টারফেস। প্যারামিটারargs
এর আকারে[Robot ID, Command String]
. আমরা রোবট আইডি পেতে পারি রোবট পৃষ্ঠার মাধ্যমে, সরাসরি চিত্র দেখানো হয়েছেঃ
এইবার, আমরা সিগন্যালটি ট্রিগার করি, 0.02 মুদ্রা কিনি, এবং কমান্ড স্ট্রিং হচ্ছেঃbuy:0.02
. তারপর WebHook URL সম্পূর্ণ. এই পদ্ধতি শুধুমাত্র URL- এ সংকেত লেখার সমর্থন করে. আপনি যদি সতর্কতা বার্তা বিষয়বস্তু যে টিভি কৌশল নিজেই দ্বারা পাঠানো যেতে পারে পেতে চান, পড়ুনhttps://www.fmz.com/api#সরাসরি যাচাইকরণ।
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args= [191755,"buy:0.02"]
ট্রেডিংভিউতে সেট করুনঃ
সিগন্যালের জন্য অপেক্ষা করো... সিগন্যালের জন্য অপেক্ষা করো... সিগন্যালের জন্য অপেক্ষা করো... ...
তারপর রোবটটি সংকেতটি গ্রহণ করবে, এইভাবে, আমরা ট্রেডিংভিউতে বিভিন্ন চার্ট ফাংশন এবং সূচক অ্যালগরিদমগুলি ব্যবহার করতে পারি যাতে আপনি চান স্বয়ংক্রিয় ট্রেডিং অর্জনের জন্য এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের কৌশল রোবটের সাথে সহযোগিতা করতে পারি। ট্রেডিংভিউতে কৌশলগুলি জাভাস্ক্রিপ্ট এবং পাইথন ভাষায় পোর্ট করার অসুবিধার তুলনায় অসুবিধা হ্রাস পেয়েছে।