TradingViewWebHook सिग्नल निष्पादन रणनीति (शिक्षण)

लेखक:छोटे सपने, दिनांकः 2020-04-28 17:01:35
टैगःअध्ययनव्यापार सहायता प्राप्त

संबंधित लेखःhttps://www.fmz.com/bbs-topic/5533बी स्टेशन वीडियो लिंकःhttps://www.bilibili.com/video/BV1Wk4y1k7zz/

  • 2020.7.29 को अपडेट किया गया एसपीके और बीपीके के दो निर्देश जोड़े गए हैं, जो क्रमशः हैं: एक सपाट स्थिति बेचने के बाद एक खुली स्थिति बेचें, एक खाली स्थिति खरीदने के बाद एक खुली स्थिति खरीदें।

/*
- 交互命令字符串格式
  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: शायद हाँ, शायद हाँ, शायद हाँ, शायद नहीं, शायद नहीं, शायद नहीं, शायद नहीं, शायद नहीं, शायद नहीं, शायद नहीं, शायद नहीं, शायद नहीं, शायद नहीं, शायद नहीं, शायद नहीं।

zz791377920यह किस एक्सचेंज का समर्थन करता है?

zz791377920एक बार जब आप एक आदेश देते हैं, तो यह 10u में बदल जाता है, यह सेटिंग समस्या कहां है?

फ्यूजी 1ReferenceError: 'QuotePrecision' is not defined at main (__FILE__:13) संदर्भ त्रुटिः 'QuotePrecision' को मुख्य पर परिभाषित नहीं किया गया है (__FILE__:13)

कुकरज़्ज़प्रश्न यह है कि क्या अनुबंध लेनदेन में केवल मात्रा निर्धारित की जा सकती है, अगर हर बार पूर्ण लेनदेन होता है तो क्या लिखा जाना चाहिए?

15937556103क्या आप मुझे एक पूर्ण रणनीति भेज सकते हैं?

15937556103/upload/asset/203b175e3c2c22ac9681c.png क्यों हमेशा ऐसा होता है?

टोबी2022हैलो, एक एकल रोबोट पर कई लेनदेन डाल सकते हैं? तो चेतावनी के URL जोड़ने के लिए लेनदेन जोड़े के नाम, एक रोबोट चलाने के लिए कई लेनदेन जोड़े चेतावनी

नौसातlong,short,cover_long,cover_SHORT, क्या आपको अलग से वेबहूक जोड़ना है?

sbwffg198212यह क्या मतलब है, वायदा एक्सचेंज समर्थन नहीं करता है, मैं बिनान के लिए स्थायी अनुबंध करना चाहता हूँ BTC_USDT कैसे सेट अप करें

sbwffg198212यह क्या मतलब है, वायदा एक्सचेंज समर्थन नहीं करता है, मैं बिनान के लिए स्थायी अनुबंध करना चाहता हूँ BTC_USDT कैसे सेट अप करें

sbwffg198212/upload/asset/1cd7a606f646b8c0d32be.png

उलटा क्यूभाई, क्या आप भविष्य के अनुबंधों को जोड़ने और स्थापित करने के तरीके के बारे में एक शिक्षण वीडियो जारी कर सकते हैं?

सुग210/upload/asset/125e8fed0f51ab1f8122e.jpg spk कमांड के साथ त्रुटि रिपोर्ट

रात का आकाशटीवी अलार्म भेजता है, FMZ कभी-कभी सिग्नल प्राप्त नहीं करता है? विशेष रूप से टीवी की दो नीतियां एक ही समय में FMZ को दो रोबोटों को सिग्नल भेजती हैं, कभी-कभी एक रोबोट प्राप्त नहीं करता है। और दो टीवी खाते भेजने के लिए पंजीकृत हैं, फिर भी यह समस्या हो सकती है, लेकिन FMZ द्वारा होस्ट किए गए सर्वर एक ही हैं। /upload/asset/1796a4b1725a66d015a9f.png /upload/asset/179cang7beaa5e8f9dd79cf.png

प्रायद्वीप ठंडा नहीं हैspk, bpk के बाद जोड़ना चाहते हैं? यदि टीवी सिग्नल में कई बार अलार्म के बाद एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में एक बार में खोलने की कुल संख्या, खाली सूची के रूप में; कोड कैसे लिखा जाता है

मेलो23अनुबंध गुणक कहाँ चुनें

छोटे सपनेनीति पैरामीटर को देखें, यदि आप वायदा एक्सचेंज ऑब्जेक्ट जोड़ते हैं, तो अनुबंध सेट करें; अन्यथा रोबोट नहीं जानता कि कौन सा अनुबंध संचालित करना है।

रिचीनमस्ते, मुझे याद दिलाएं कि ct अनुबंध त्रुटि खाली क्यों है?

छोटे सपनेयह सब संभव है, लेकिन TV पर वेबहूक सेटिंग्स को आपके द्वारा किए गए प्रकार के आधार पर समायोजित किया जा सकता है।

छोटे सपनेएक बार जब आप एक आदेश भेजते हैं, तो आप उस आदेश का भुगतान करते हैं।

छोटे सपनेमुझे लगता है कि आपने गलत किया है, एपीआई दस्तावेज़ीकरण के अनुसार जाँच करें. नीति ठीक चल रही है.

फ्यूजी 1फिर से कुंजी बदलना ठीक नहीं है, क्या आपको पूरी नीति को कॉपी करने की आवश्यकता है ताकि इसे समायोजित किया जा सके?

छोटे सपनेकोड 1 गलत एपीआई कुंजी है, जाँच करें।

फ्यूजी 1अब मैं मंच के भीतर परीक्षण कर रहा हूं कि मैं ऑर्डर कर सकता हूं, लेकिन एक एक्सटेंशन एपीआई कॉल के साथ एक त्रुटि रिपोर्ट करता है, जो वापस आता है, कोडः 1, डेटाः [], मैं लिंक के साथ सीधे पहुंच रहा हूं, जो ब्राउज़र के लिंक खोलने के समान है।

छोटे सपनेएक बार जब आप अपने ब्लॉग पर एक लेख लिखते हैं, तो आप इसे लिखते हैं।

छोटे सपनेटीवी के सिग्नल, जिसमें लिखा है कि कितना, रणनीति में लिखा है कि कितना। अगर आप हप करना चाहते हैं, तो रणनीति को बदलना होगा।

छोटे सपनेयह रणनीति स्वयं एक पूर्ण उदाहरण है कि आप एक फ्यूचर्स चला सकते हैं, आप एक गलत कमांड का उपयोग करते हैं, जांचें।

छोटे सपनेभविष्य के आदेश का उपयोग करने के लिए, कोड को ध्यान से देखें.

टोबी2022 好的,已经在众包板块发布了信息,期望你的成果和合作,thanks.

छोटे सपनेयह नहीं बदला है, यह एक बहु-स्तरीय प्लेटफ़ॉर्म पर जानकारी प्रकाशित कर सकता है, और कुछ डेवलपर्स इसे प्राप्त कर सकते हैं।

टोबी2022क्या आप इसे सीधे भेज सकते हैं? क्योंकि अन्य लोग शायद कुछ समय के लिए परिचित होंगे।

छोटे सपनेइस प्लेटफॉर्म पर एक ब्रीचबॉक्स प्लेट है, जहां आप अपनी मांगों को पोस्ट कर सकते हैं।

टोबी2022@कोलकोल सपना, क्या आप इस तरह की रणनीति को संशोधित कर सकते हैं, अगर यह संभव है, तो निश्चित रूप से इसे खरीदने के लिए भुगतान किया जा सकता है, और आपके परिणामों और प्रतिक्रियाओं की उम्मीद है, धन्यवाद।

छोटे सपनेयह संभव है, लेकिन इस रणनीति को संशोधित करने की आवश्यकता है।

छोटे सपनेमैं समझ नहीं पा रहा हूँ कि आप क्या कहना चाहते हैं।

नौसातमैंने चार अलर्ट सेट किए हैं, लंबे, छोटे, कवरलॉन्ग और कवरशॉर्ट, लेकिन चूंकि यह स्टडी नहीं बल्कि रणनीति है, इसलिए ये चार निर्देश एक साथ ट्रिगर होते हैं...

नौसातआप इसे कैसे अलग करते हैं? लंबे या छोटे में?

छोटे सपनेएक वेबहूक के यूआरएल में अलर्ट की पहचान की जा सकती है।

नौसातसमस्या का पता चला है, केवल ट्रेडिंग व्यू संकेतकों के लिए ट्रेडिंग अलर्ट प्राप्त कर सकता है, लेकिन मैंने जो रणनीति लिखी है, वह चार अलग-अलग अलर्ट सेट करती है, लेकिन पहचानने में असमर्थ है, जब संकेत उत्पन्न होते हैं, तो चार संकेत एक साथ खुलते हैं।

छोटे सपनेटेलीविजन पर चेतावनी भेजने का अनुरोध `` https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515, "action:amount"] `` उदाहरण के लिए, आप जो भी आदेश लिखते हैं, वह रोबोट को प्राप्त होता है। `` https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515, "long:1"] ``

छोटे सपनेएफएमजेड के शुरुआती ट्यूटोरियल को देखें, जिसमें फ्यूचर्स एक्सचेंज खाते को संचालित करने के लिए फ्यूचर्स एक्सचेंज को कॉन्फ़िगर करना है। फिर फ्यूचर्स एक्सचेंज ऑब्जेक्ट को रोबोट में जोड़ना है।

sbwffg198212/upload/asset/1ccc5603d54593dcba809.png

sbwffg198212मैं सिर्फ इन जगहों को बदल दिया है, भगवान ने मुझे यह देखने के लिए कि क्या गलत है मदद करो, मैं नहीं जोड़ना होगा वायदा एक्सचेंज वस्तुओं, पैरामीटर पर अनुबंध सेट, स्थायी रूप से स्वैप है, मुद्रा मूल मूल्य है XXX_USD, U मूल मूल्य है XXX_USDT.

छोटे सपनेफ्यूचर्स एक्सचेंज ऑब्जेक्ट जोड़ें, पैरामीटर पर अनुबंध सेट करें, स्थायी रूप से स्वैप है, मुद्रा मूल XXX_USD है, U मूल XXX_USDT है।

छोटे सपनेजांचें कि क्या SPK को बिना स्टॉक के कॉल किया जा सकता है।

छोटे सपनेएफएमजेड प्लेटफॉर्म के लिए लाइव टीवी कनेक्शन का उपयोग करना संभव है, 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 के लिए कैसे सेट किया जाए, टीवी के लिए।