TradingViewWebHook সিগন্যাল এক্সিকিউশন কৌশল (অধ্যয়ন)

লেখক:ছোট্ট স্বপ্ন, তারিখ: ২০২০-০৪-২৮ ১৭ঃ০১ঃ৩৫
ট্যাগঃঅধ্যয়নবাণিজ্যিকভাবে সহায়ক

সম্পর্কিত নিবন্ধঃhttps://www.fmz.com/bbs-topic/5533বি স্টেশন ভিডিও লিঙ্কঃhttps://www.bilibili.com/video/BV1Wk4y1k7zz/

  • ২০২০-৭-২৯ তারিখে আপডেট হয়েছে এসপিকে এবং বিপিকে দুটি নির্দেশনা যুক্ত করা হয়েছে, যথাক্রমেঃ প্লেইন পজিশন বিক্রি করার পরে খোলা পজিশন বিক্রি করা, প্লেইন পজিশন কেনার পরে খোলা পজিশন কেনা।

/*
- 交互命令字符串格式
  action:amount
  action: buy , sell , long , short , cover_long , cover_short, spk , bpk
- 交易所类型
  eType变量取值: 0 spot , 1 futures

- TV文档链接
  https://www.tradingview.com/pine-script-docs/en/v4/Quickstart_guide.html
  https://cn.tradingview.com/chart/8xfTuX7F/

- TV webhook 发送请求
  https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"action:amount"]

- 引用类库
  引用数字货币交易类库
*/

// 参数
// var IsMarketOrder = false 
// var QuotePrecision = 2
// var BasePrecision = 2

// 期货参数
// var Ct = ""


// 全局变量
var BUY = "buy"
var SELL = "sell"
var LONG = "long"
var SHORT = "short"
var COVER_LONG = "cover_long"
var COVER_SHORT = "cover_short"
var SPK = "spk"
var BPK = "bpk"


function main() {
    // 清空日志,如不需要,可以删除
    LogReset(1)

	// 设置精度
    exchange.SetPrecision(QuotePrecision, BasePrecision)

    // 识别期货还是现货
    var eType = 0
    var eName = exchange.GetName()
    var patt = /Futures_/
    if (patt.test(eName)) {
        Log("添加的交易所为期货交易所:", eName, "#FF0000")
        eType = 1
        if (Ct == "") {
            throw "Ct 合约设置为空"
        } else {
        	Log(exchange.SetContractType(Ct), "设置合约:", Ct, "#FF0000")
        }
    } else {
    	Log("添加的交易所为现货交易所:", eName, "#32CD32")
    }
    
    var lastMsg = ""
    var acc = _C(exchange.GetAccount)
    while(true) {
        var cmd = GetCommand()
        if (cmd) {
            // 检测交互命令
            lastMsg = "命令:" + cmd + "时间:" + _D()
            var arr = cmd.split(":")
            if (arr.length != 2) {
                Log("cmd信息有误:", 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("现货交易所不支持!", "#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 if (action == SPK) {   // 卖出平多仓,卖出开空仓
                    exchange.SetDirection("closebuy")
                    var tradeInfo1 = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
                    exchange.SetDirection("sell")
                    var tradeInfo2 = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
                    tradeInfo = [tradeInfo1, tradeInfo2]
                } else if (action == BPK) {   // 买入平空仓,买入开多仓
                    exchange.SetDirection("closesell")
                    var tradeInfo1 = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
                    exchange.SetDirection("buy")
                    var tradeInfo2 = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
                    tradeInfo = [tradeInfo1, tradeInfo2]
                } else {
                	Log("期货交易所不支持!", "#FF0000")
                }
                if (tradeInfo) {
                    Log("tradeInfo:", tradeInfo)
                }
            } else {
            	throw "eType error, eType:" + eType
            }
            acc = _C(exchange.GetAccount)
        }
        var tbl = {
        	type : "table", 
        	title : "状态信息", 
        	cols : ["数据"], 
        	rows : []
        }
        tbl.rows.push([JSON.stringify(acc)])
        LogStatus(_D(), eName, "上次接收到的命令:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
    	Sleep(1000)
    }
}



সম্পর্কিত

আরো

সুপারনV:maybeyeah.V:maybeyeah.V:maybeyeah.V:maybeyeah.

zz791377920কোন কোন এক্সচেঞ্জকে সমর্থন করে?

zz791377920আপনি যদি আপনার অ্যাকাউন্টের জন্য একটি অ্যাকাউন্ট তৈরি করতে চান তবে আপনার অ্যাকাউন্টের জন্য একটি অ্যাকাউন্ট তৈরি করতে হবে।

ফাঙ্গা 1ReferenceError: 'QuotePrecision' is not defined at main (__FILE__:13) রেফারেন্স ত্রুটিঃ 'QuotePrecision' is not defined at main (__FILE__:13)

কুকার্জপ্রশ্নঃ চুক্তির লেনদেনের মধ্যে কি শুধুমাত্র পরিমাণ সেট করা যায়, যদি প্রতিটি লেনদেন পূর্ণ হয় তাহলে কি লিখতে হবে?

15937556103শিক্ষকরা কি চুক্তির সম্পূর্ণ কৌশল পাঠাতে পারবেন?

15937556103/upload/asset/203b175e3c2c22ac9681c.png কেন সবসময়ই এমন হয়?

টোবি ২০২২হ্যালো, আপনি একক বট একাধিক লেনদেন করা যাবে? তারপর সতর্কতা URL টি যোগ করুন লেনদেনের নাম, একটি বট একাধিক লেনদেনের জোড়া চালানোর সতর্কতা

৭মার্চlong,short,cover_long,cover_SHORT,আপনি কি আলাদাভাবে ওয়েবহুক যোগ করবেন?

sbwffg198212এটা কি মানে, ফিউচার এক্সচেঞ্জ সমর্থন করে না, আমি বিএনএনের জন্য স্থায়ী চুক্তি করতে চাই।

sbwffg198212এটা কি মানে, ফিউচার এক্সচেঞ্জ সমর্থন করে না, আমি বিএনএনের জন্য স্থায়ী চুক্তি করতে চাই।

sbwffg198212/upload/asset/1cd7a606f646b8c0d32be.png

বিপরীত Qভাই, আপনি কি ভবিষ্যৎ চুক্তি যোগ এবং সেট আপ কিভাবে একটি শিক্ষামূলক ভিডিও প্রকাশ করতে পারেন?

সুগ210/upload/asset/125e8fed0f51ab1f8122e.jpg spk কমান্ড দিয়ে ত্রুটি রিপোর্ট

রাতের আকাশকীভাবে টিভি সতর্কতা প্রেরণ করে এবং FMZ মাঝে মাঝে সংকেত গ্রহণ করে না? বিশেষত টিভির দুটি নীতি একই সময়ে দুটি বটকে FMZ-তে সংকেত প্রেরণ করে এবং মাঝে মাঝে একটি বট গ্রহণ করে না। এবং দুটি টিভি অ্যাকাউন্ট প্রেরণের জন্য নিবন্ধিত রয়েছে, তবে এই সমস্যাটি এখনও ঘটতে পারে, যদিও FMZ হোস্ট করা সার্ভারগুলি একই। /upload/asset/1796a4b1725a66d015a9f.png /upload/asset/179cang7beaa5e8f9dd79cf.png

উপদ্বীপ ঠান্ডা নয়spk, bpk এর পরে সংখ্যা যোগ করতে চান? যদি টিভি সিগন্যালের একাধিক বার অ্যালার্ম চালু করা হয়, তবে একসাথে সমতল সামনে একাধিক বার খুলতে পারে।

মেলো২৩কন্ট্রাক্ট, গুণক যেখানে নির্বাচন করুন

ছোট্ট স্বপ্নআপনি যদি ফরেক্স এক্সচেঞ্জের অবজেক্ট যুক্ত করেন, তাহলে চুক্তি সেট করুন। অন্যথায়, রোবটটি কোন চুক্তিটি পরিচালনা করবে তা জানে না।

রিচিহ্যালো, ভুল টিউটোরিয়ালের কথা মনে করিয়ে দিচ্ছি, কেন চুক্তিটি ফাঁকা?

ছোট্ট স্বপ্নআপনি যদি আপনার টিভিতে ওয়েবহুক সেটিং ব্যবহার করতে চান তবে আপনি যা করতে চান তার উপর নির্ভর করে সেটিংস পরিবর্তন করতে পারেন।

ছোট্ট স্বপ্ন"এটি একটি বড় চুক্তি, যা আমি স্বাক্ষর করেছি।

ছোট্ট স্বপ্নআমি মনে করি আপনি ভুল করেছেন, এপিআই ডকুমেন্টেশন অনুসারে চেক করুন.

ফাঙ্গা 1আবার কী পরিবর্তন করা ঠিক হবে না, কি সম্পূর্ণ নীতিটি অনুলিপি করতে হবে

ছোট্ট স্বপ্নকোড ১ হল ভুল API KEY, চেক করুন।

ফাঙ্গা 1এখন আমি প্ল্যাটফর্মের ভিতরে পরীক্ষা করছি যে আমি অর্ডার করতে পারি, কিন্তু আমি এক্সটেনশন এপিআই কল করে একটি ত্রুটি রিপোর্ট করি, ফিরে আসি, কোডঃ 1, ডেটাঃ [], আমি সরাসরি লিঙ্কটি ব্যবহার করে অ্যাক্সেস করেছি, ব্রাউজারে লিঙ্কটি খোলার অনুরূপ

ছোট্ট স্বপ্নশুধু কোড কপি করবেন না, পুরো কৌশলটি কপি করুন।

ছোট্ট স্বপ্নটেলিভিশন বার্তা পাঠায়, এতে কত লিখিত আছে, কৌশল কত লিখিত আছে। যদি আপনি হপ ইত্যাদি করতে চান তবে কৌশল পরিবর্তন করতে হবে।

ছোট্ট স্বপ্নএই কৌশলটি নিজেই একটি নিখুঁত উদাহরণ, যেখানে আপনি ভবিষ্যতের জন্য একটি কমান্ড ব্যবহার করতে পারেন যা আপনি ভুলভাবে ব্যবহার করেছেন, চেক করুন।

ছোট্ট স্বপ্নআপনার ওয়েবহুক পুনরায় কল করার জন্য আপনি যে কমান্ডটি ব্যবহার করেছেন তা ভুল, ভবিষ্যতের কমান্ডটি ব্যবহার করুন, কোডটি সাবধানে দেখুন।

টোবি ২০২২ 好的,已经在众包板块发布了信息,期望你的成果和合作,thanks.

ছোট্ট স্বপ্নএটি পরিবর্তন করা হয়নি, এটি একটি বহুমুখী প্ল্যাটফর্মে প্রকাশ করা যেতে পারে, যেখানে ডেভেলপাররা অর্ডার গ্রহণ করবে।

টোবি ২০২২আপনি কি সরাসরি আপনার সম্পাদনা পাঠাতে পারেন? কারণ অন্যরা হয়তো কিছুক্ষণের জন্য পরিচিত হবে।

ছোট্ট স্বপ্নএই প্ল্যাটফর্মে একটি ভিউচার্জ প্ল্যাটফর্ম রয়েছে যেখানে আপনি আপনার চাহিদা প্রকাশ করতে পারেন।

টোবি ২০২২@ছোট ছোট স্বপ্ন, আপনি কি এই কৌশলটি পরিবর্তন করতে পারেন, যদি সম্ভব হয় তবে অবশ্যই এটি কিনতে হবে, আপনার ফলাফল এবং প্রতিক্রিয়া আশা করি, ধন্যবাদ।

ছোট্ট স্বপ্নতবে এই কৌশলটি পরিবর্তন করতে হবে।

ছোট্ট স্বপ্নআমি বুঝতে পারছি না আপনি কি বলতে চাচ্ছেন।

৭মার্চআমি লং, শর্ট, কভারলং, কভারশর্ট নামে চারটি সতর্কতা সেট করেছি, কিন্তু যেহেতু এটি স্ট্র্যাটেজি, স্টাডি নয়, তাই এই চারটি নির্দেশনা একই সময়ে প্রয়োগ করা হয়...

৭মার্চলং বা শর্ট এর মধ্যে পার্থক্য কি?

ছোট্ট স্বপ্নআপনি একটি ওয়েবহুকের ইউআরএলে এটি সনাক্ত করতে পারেন।

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

ছোট্ট স্বপ্নটেলিভিশনে অ্যালার্ম পাঠানোর অনুরোধ `` https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515, "action:amount"] `` আপনি কী লিখবেন এবং রোবটটি কী আদেশ পাবে তা এখানে Action-এ রয়েছে। উদাহরণস্বরূপঃ `` https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515, "long:1"] ``

ছোট্ট স্বপ্নপ্রথমে FMZ এর প্রাথমিক টিউটোরিয়ালটি দেখুন, ফরোয়ার্ড এক্সচেঞ্জ অ্যাকাউন্টটি পরিচালনা করতে, ফরোয়ার্ড এক্সচেঞ্জটি কনফিগার করুন। তারপর রোবটে ফরোয়ার্ড এক্সচেঞ্জের বস্তু যুক্ত করুন।

sbwffg198212/upload/asset/1ccc5603d54593dcba809.png

sbwffg198212আমি এই স্থানগুলি পরিবর্তন করেছি, ঈশ্বর আমাকে সাহায্য করুন, আমি ভুল কোথায় দেখতে হবে না, আমি ফিউচার এক্সচেঞ্জ অবজেক্ট যুক্ত করব না, পরামিতিতে চুক্তি সেট করব, চিরস্থায়ীভাবে swap, মুদ্রা মূলধন XXX_USD, U মূলধন XXX_USDT।

ছোট্ট স্বপ্নফিউচার এক্সচেঞ্জের অবজেক্ট যুক্ত করুন, প্যারামিটারে একটি চুক্তি সেট করুন, চিরস্থায়ীভাবে একটি সুইপ, মুদ্রা মূলধন XXX_USD, U মূলধন XXX_USDT।

ছোট্ট স্বপ্নএসপিকে-তে কল করার জন্য কোন স্টকের প্রয়োজন নেই কিনা তা পরীক্ষা করে দেখুন।

ছোট্ট স্বপ্নএফএমজেড প্ল্যাটফর্মের লাইব্রেরিতে উল্লেখিত টিভি ডাইরেক্ট সংযোগ পদ্ধতিটি ব্যবহার করা যেতে পারে, http://www.fmz.com/digest-topic/5969 ।

ছোট্ট স্বপ্নলিভারেজ এক্সচেঞ্জে সেট করা যায়; অথবা কৌশল কোডে অর্ডার দেওয়ার আগে লিভারেজ সেট করা যায়।

ছোট্ট স্বপ্নআমি একটি চুক্তি বিনিময় করতে চাই, একটি চুক্তি স্থাপন করতে চাই, অন্যথায় আমি জানি না কোন চুক্তি পরিচালনা করতে হবে।

ছোট্ট স্বপ্ন`` https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515, "action:amount"] `` action spk, bpk হিসাবে লেখা হয়

রাতের আকাশআমি SPK এবং BPK এর জন্য কিভাবে সেট আপ করব জানতে চাই।