"ট্রেডিংভিউ" সতর্কতা সংকেত ট্রেডিং উপলব্ধি করতে FMZ Quant এ বর্ধিত API ব্যবহার করুন

লেখক:নিনাবাদাস, সৃষ্টিঃ ২০২২-০৩-৩০ 16:28:০৯, আপডেটঃ ২০২২-০৩-৩১ 17:32:25

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

বিলিবিলির ভিডিও লিঙ্ক

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

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

FMZ API ডকুমেন্টেশনে সম্পর্কিত অংশের লিঙ্ক

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

বর্ধিত এপিআই ব্যবহার করার জন্য, আপনাকে প্রথমে আপনার নিজের অ্যাকাউন্ট তৈরি করতে হবেAPI KEYএফএমজেডেঃimg

API KEYএর মধ্যে রয়েছেঃaccess keyএবংsecret key; API KEYপ্রোগ্রাম্যাটিকভাবে FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্ম পরিচালনা করার মূল চাবিকাঠি, তাই এটি সঠিকভাবে রাখা নিশ্চিত করুন এবং এটি প্রকাশ করবেন না।API KEYউদাহরণস্বরূপ, উপরের চিত্রটি শুধুমাত্রAPI KEYঅ্যাক্সেস করার অনুমতিCommandRobot(RobotId, Cmd)ইন্টারফেস. এই উদাহরণে, নিরাপত্তা কারণে, শুধুমাত্র অ্যাক্সেস অনুমতি প্রদান করুনCommandRobot(RobotId, Cmd)এফএমজেডের সাথে ইন্টারফেস প্রসারিতAPI KEY.

এক্সটেন্ডেড এপিআই এর সরাসরি অ্যাক্সেস মোড

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

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

ট্রেডিংভিউ

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

img

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

img

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

img

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

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

কৌশল উৎস কোডঃ

// 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এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের।

img

ক্রয় করার জন্য একটি কমান্ড পেতে বট ক্ষমতা পরীক্ষা করতে ইন্টারঅ্যাকশন বোতামে ক্লিক করুন।

img

আমরা দেখতে পাচ্ছি যে বট দ্বারা প্রাপ্ত কমান্ড স্ট্রিং হলঃbuy:0.01.

আমরা শুধুমাত্র বহন প্যারামিটার করা প্রয়োজনbuy:0.01অ্যাক্সেস করার সময়CommandRobotযখন ট্রেডিং ভিউ সতর্কতা ট্রিগার করা হয় তখন ওয়েবহুক অনুরোধ ইউআরএলে এফএমজেড কোয়ান্ট এক্সটেন্ডেড এপিআইয়ের ইন্টারফেস।

ট্রেডিং ভিউ এর ওয়েবহুক কনফিগারেশন

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

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

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

img

সিগন্যালের জন্য অপেক্ষা করুন। যখন বট সিগন্যালটি পায়, আপনি পৃষ্ঠার উপরের ডানদিকে সিগন্যাল সতর্কতা দেখতে পাবেন, এবং পৃষ্ঠার নীচে ডানদিকে ট্রিগার লগগুলি দেখতে পাবেন।

বট সিগন্যালটি পেয়েছে:img

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

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


আরো