ট্রেডিংভিউ সতর্কতা সংকেত ট্রেডিং উপলব্ধি করতে FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্মে বর্ধিত এপিআই ব্যবহার করুন

লেখক:লিডিয়া, তৈরিঃ 2022-12-14 13:42:41, আপডেটঃ 2023-09-20 10:17:53

img

ট্রেডিংভিউ সতর্কতা সংকেত ট্রেডিং উপলব্ধি করতে FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্মে বর্ধিত এপিআই ব্যবহার করুন

এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের বর্ধিত এপিআই সম্প্রতি সরাসরি অ্যাক্সেস সমর্থন করার জন্য আপগ্রেড করা হয়েছে, যাতে এটি স্বয়ংক্রিয় ট্রেডিংয়ের জন্য এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্ম রোবটে ট্রেডিংভিউ সতর্কতা সংকেত সহজেই প্রেরণ করতে পারে। যদি আপনি জানেন না যে এক্সটেনশন এপিআই কী, তবে আমার কথা মনোযোগ সহকারে শুনুন।

এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের বর্ধিত এপিআই

এফএমজেডের এপিআই ডকুমেন্টেশনের কিছু লিঙ্ক (https://www.fmz.com/api)

সম্প্রসারিত এপিআই প্রধান ফাংশন প্রোগ্রাম্যাটিক ক্রিয়াকলাপের জন্য FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্মে বিভিন্ন ফাংশনের জন্য ইন্টারফেস সরবরাহ করা, যেমন একযোগে ব্যাচে রোবটগুলি চালু করা, রোবটগুলি শুরু এবং বন্ধ করার সময় নির্ধারণ করা, রোবট তথ্যের বিশদ পড়া ইত্যাদি। আমরা FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের সম্প্রসারিত এপিআই ব্যবহার করি চাহিদা পরিকল্পনা বাস্তবায়নের জন্য ট্রেডিংভিউ সতর্কতা সংকেত ট্রেডিং, যা কেবলমাত্রCommandRobot(RobotId, Cmd)এই ইন্টারফেসটি একটি নির্দিষ্ট আইডি সহ রোবটকে ইন্টারেক্টিভ নির্দেশাবলী পাঠাতে পারে এবং রোবট নির্দেশাবলী পাওয়ার পরে সংশ্লিষ্ট ক্রিয়াকলাপগুলি সম্পাদন করতে পারে (যেমন ক্রয়, বিক্রয়, ইত্যাদির অর্ডার দেওয়া) । বর্ধিত এপিআই ব্যবহার করার জন্য, আপনি একটি তৈরি করতে হবেAPI KEYপ্রথমে আপনার নিজের FMZ অ্যাকাউন্টের জন্যঃ

img

গোপন চাবি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_keyyyyy দ্বারা প্রতিনিধিত্ব করা হয় (আপনি এটি ব্যবহার করার সময় আপনার নিজের অ্যাকাউন্ট secret_key পূরণ করুন). প্যারামিটারmethodএক্সটেন্ডেড এপিআই ইন্টারফেসের নির্দিষ্ট নাম যা অ্যাক্সেস করা হবে এবংargsপ্যারামিটারmethodইন্টারফেস কল করা হবে.

আমরা ট্রেডিংভিউকে সিগন্যাল উত্স হিসাবে ব্যবহার করি FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্ম রোবটকে লেনদেনের কমান্ড পাঠাতে। আসলে আমরা শুধুমাত্রCommandRobot interface.

ট্রেডিংভিউ

প্রথমত, আপনার একটি ট্রেডিংভিউ প্রো স্তরের অ্যাকাউন্ট থাকতে হবে। সতর্কতার মধ্যে ওয়েবহাউড ফাংশন বেসিক স্তরে ব্যবহার করা যাবে না।

ট্রেডিংভিউ চার্টে, আপনি চার্টে একটি সূচক বা অন্যান্য স্ক্রিপ্ট অ্যালগরিদম যোগ করতে পারেন। এখানে, আমরা সবচেয়ে সাধারণভাবে ব্যবহৃতMACDসূচক, এবং তারপর আমরা 1 মিনিটের জন্য K-লাইন সময়কাল সেট (দ্রুত সংকেত ট্রিগারিং এবং সহজ প্রদর্শন জন্য) ।

চার্টে ডান ক্লিক করুন এবং পপ-আপ মেনু থেকে Add Alert নির্বাচন করুন।

সেটWebHookAlert পপ-আপ উইন্ডোতে. এই সময়ে, আমরা প্রথম FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্মে পর্যবেক্ষণ সংকেত রোবট চালাতে পারেন.img

মনিটরিং সিগন্যাল অর্ডারিং রোবট

কৌশল উৎস কোডঃ

// 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 করতে হবে যখন ট্রেডিংভিউ সতর্কতা অ্যাক্সেস করতে ট্রিগার করা হয়CommandRobotFMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের এক্সটেন্ডেড এপিআই এর ইন্টারফেস, বহন করা পরামিতি হলbuy:0.01.

ট্রেডিংভিউ এর ওয়েবহুক সেট করুন

ট্রেডিংভিউ ফিরে, আমরা ওয়েবহুক এর URL পূরণ. পরামিতি জন্য আপনার নিজের API কী পূরণaccess_key, secret_key.methodঠিক করা হয়. আমরা শুধুমাত্র অ্যাক্সেস করতে হবেCommandRobotএক্সটেন্ডেডএপিআই ইন্টারফেস। প্যারামিটারargsএর আকারে[Robot ID, Command String]. আমরা রোবট আইডি পেতে পারি রোবট পৃষ্ঠার মাধ্যমে, সরাসরি চিত্র দেখানো হয়েছেঃ

img

এইবার, আমরা সিগন্যালটি ট্রিগার করি, 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"]

ট্রেডিংভিউতে সেট করুনঃ

img

সিগন্যালের জন্য অপেক্ষা করো... সিগন্যালের জন্য অপেক্ষা করো... সিগন্যালের জন্য অপেক্ষা করো... ...

img

তারপর রোবটটি সংকেতটি গ্রহণ করবে, এইভাবে, আমরা ট্রেডিংভিউতে বিভিন্ন চার্ট ফাংশন এবং সূচক অ্যালগরিদমগুলি ব্যবহার করতে পারি যাতে আপনি চান স্বয়ংক্রিয় ট্রেডিং অর্জনের জন্য এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের কৌশল রোবটের সাথে সহযোগিতা করতে পারি। ট্রেডিংভিউতে কৌশলগুলি জাভাস্ক্রিপ্ট এবং পাইথন ভাষায় পোর্ট করার অসুবিধার তুলনায় অসুবিধা হ্রাস পেয়েছে।

robot এর কৌশল কোডটি কেবলমাত্র শেখার এবং গবেষণার জন্য। আসল বটের উপর ব্যবহারটি স্ব-অপ্টিমাইজড এবং ফিউচার সমর্থন করার জন্য সামঞ্জস্য করা দরকার। এটিকে বাজার মূল্য অর্ডার মোডে সেট করার পরামর্শ দেওয়া হয়। বিস্তারিত জানার জন্য কৌশল কোড পরামিতিগুলি দেখুন। যদি আপনার কোন প্রশ্ন বা পরামর্শ থাকে, তাহলে দয়া করে একটি বার্তা ছেড়ে মুক্ত মনে করুন।


সম্পর্কিত

আরো