Los principiantes quieren utilizar la señal de trading view para negociar automáticamente bitcoins o contratos perpetuos. Después de desplegar el robot, aparece un error. El código es una copia de TradingViewWebHook. ¿Qué es eso?
El formato de la cadena de comandos interactiva Acción: cantidad acción: buy, sell, long, short, cover_long, cover_short, spk, bpk
Tipo de bolsa Valoración de las variables eType: 0 puntos, 1 futuros
Enlaces a la documentación de TVhttps://www.tradingview.com/pine-script-docs/en/v4/Quickstart_guide.html https://cn.tradingview.com/chart/8xfTuX7F/
TV webhook Envío de peticioneshttps://www.fmz.cn/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,
Librería de referencias Citando el catálogo de transacciones de moneda digital ¿Qué es esto?
El parámetro // var Es el orden del mercado = falso // var QuotePrecision es igual a 2 // var BasePrecisión = 2
// Parámetros de los futuros // var Ct es el
// Variables globales
var BUY = Venta de la caja
var SELL = el botón de venta
var LONG = conejillo largo
var SHORT = corto corto
var COVER_LONG = Cubierta_larga
var COVER_SHORT = Cubierta_corta
var SPK =
La función principal ((() { // Puede borrarse el registro en blanco si no lo necesita LogReset ((1)) es el nombre de un sistema de registro.
// 设置精度
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)
}
}
El rey del hip-hopNo hay información errónea, ¿cómo ver?.
- ¿Qué quieres decir?Nuevos, pedidos de consejos, cómo configurar el contrato permanente de btcusdt, y qué línea de código cambiar
- ¿Qué quieres decir?El robot de compra está completamente configurado en el video de la estación b y no funciona. Buynull regresa a sellnull después de recibir la instrucción de transacción.
Las hierbasNo hay suficiente dinero en la cuenta
- ¿Qué quieres decir?El error de los robots de futuros es 2021-01-02 23:40:08 Información Las bolsas de futuros no son compatibles! 2021-01-02 23:40:05 Información Las bolsas de futuros no son compatibles! 2021-01-02 23:38:23 Información {"InstrumentID:"BTCUSDT","instrument:"BTCUSDT"} Contrato de configuración: swap 2021-01-02 23:38:23 Información Añadido para el mercado de futuros: Futures_Binance No hay problemas. Gracias.
- ¿Qué quieres decir?Fecha Plataforma Tipo Precio Cantidad Información 2021-01-02 23:39:01 Información sellInfo: null 2021-01-02 23:39:01 Binance Error Sell ((-1, 0.01): 400: {"code":-2010, "msg:"Account has insufficient balance for requested action"} La cuenta tiene un saldo insuficiente para la acción solicitada. 2021-01-02 23:38:53 Información buyInfo: nulo 2021-01-02 23:38:53 Binance Error Buy ((-1, 0.01): 400: {"code":-2010, "msg:"Account has insufficient balance for requested action"} El código de la cuenta es el siguiente: