Les débutants veulent utiliser le signal de trading view pour négocier automatiquement des contrats permanents, après le déploiement du robot, l'erreur Ct Contract est définie comme vide. Le code est une copie de TradingViewWebHook stratégie d'exécution de signaux (instruction) Je ne sais pas.
Format de chaîne de commande interactive action:amount action: acheter, vendre, long, court, couvrir_long, couvrir_short, spk, bpk
Types d'échanges Valuation des variables eType: 0 points et 1 futures
Liens vers le documentaire téléviséhttps://www.tradingview.com/pine-script-docs/en/v4/Quickstart_guide.html https://cn.tradingview.com/chart/8xfTuX7F/
TV webhook envoyer une demandehttps://www.fmz.cn/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,
Bibliothèque de références Citation de la bibliothèque des transactions de devises numériques Je suis désolé.
Paramètres // var est l'ordre du marché = faux // var QuotePrecision est égal à 2 // var BasePrecision est égal à 2
// Paramètres des futures // var Ct est égal à
// Variable globale
Var BUY = achetez une poupée
Var SELL = Vérifier
Var LONG est une espèce de poulet.
Var SHORT = courte courte
Var COVER_LONG = couverture longue
var COVER_SHORT = couverture courte
Var SPK = coupe-coupe
Var BPK =
fonction main (() { // Les journaux blancs peuvent être supprimés s'ils ne sont pas nécessaires LogReset ((1)) est un logiciel de réinitialisation
// 设置精度
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)
}
}
Le roi du hip-hopIl n'y a pas de fausses informations, comment voir?
- Je ne sais pas.Comment mettre en place un contrat de perpétuité btcusdt, en particulier pour modifier les lignes de code
- Je ne sais pas.Le robot de vente au détail est entièrement configuré selon la vidéo de la station b et ne fonctionne pas non plus, après avoir reçu une instruction de transaction, buynull renvoie sellnull
Le foinLes fonds sont insuffisants
- Je ne sais pas.Les robots à terme ont fait une erreur. 2021-01-02 23:40:08 Informations Les échanges à terme ne sont pas pris en charge! 2021-01-02 23:40:05 Informations Les marchés à terme ne sont pas pris en charge! 2021-01-02 23:38:23 Informations {"InstrumentID:"BTCUSDT","instrument:"BTCUSDT"} Le contrat de mise en place est le swap 2021-01-02 23:38:23 Informations Échanges ajoutés pour les échanges à terme: Futures_Binance Les ennuis sont terminés. Merci.
- Je ne sais pas.Date Plateforme Type Prix Nombre d'informations 2021-01-02 23:39:01 Informations sur le produit sellInfo: null 2021-01-02 23:39:01 Binance Erreur Sell ((-1, 0.01): 400: { "code":-2010, "msg:"Account has insufficient balance for requested action"} Le compte est en train de se déconnecter de la plateforme. 2021-01-02 23:38:53 info buyInfo: nul 2021-01-02 23:38:53 Binance erreur Buy ((-1, 0.01): 400: {"code":-2010, "msg:"Account has insufficient balance for requested action"}