/*
Format String Perintah Interaktif action:amount action: buy, sell, long, short, cover_long, cover_short, spk, bpk
Jenis Bursa Pemuliharaan pemboleh ubah eType: 0 spot, 1 futures
Pautan dokumen TVhttps://www.tradingview.com/pine-script-docs/en/v4/Quickstart_guide.html https://cn.tradingview.com/chart/8xfTuX7F/
TV webhook menghantar permintaanhttps://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,
Perpustakaan rujukan Buku Perdagangan Mata Wang Digital */
// Parameter // var IsMarketOrder = palsu // var QuotePrecision = 2 // var BasePrecision = 2
// Parameter niaga hadapan //var Ct = Tangki pertukaran
Variabel global
var BUY = penukar
var SELL = penyampaian
var LONG = ikan long
var SHORT = kurungkurung
var COVER_LONG = penutup_panjang
var COVER_SHORT = penutup_pendek penutup // kosong-1
var COVER_LONG1 = penutup_panjang 1 tan // ping + -2
var COVER_SHORT1 =
var SPK =
fungsi utama (() { // Hapus log, jika tidak diperlukan, boleh dipadamkan LogReset ((1))
// 设置精度
exchange.SetPrecision(QuotePrecision, BasePrecision)
// 识别期货还是现货
var eType =1
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])
var amount =0.10 //开单数
var amount1 =0.3 //第一止盈
var amount2 =0.5 //第二止盈
var amount3 =0.2 //第三止盈
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, amount1) : exchange.Sell(ticker.Buy, amount1)
} else if (action == COVER_LONG1) {
exchange.SetDirection("closebuy")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount2) : exchange.Sell(ticker.Buy, amount2)
} else if (action == COVER_LONG2) {
exchange.SetDirection("closebuy")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount3) : exchange.Sell(ticker.Buy, amount3)
} else if (action == COVER_SHORT) {
exchange.SetDirection("closesell")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount1) : exchange.Buy(ticker.Sell, amount1)
} else if (action == COVER_SHORT1) {
exchange.SetDirection("closesell")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount2) : exchange.Buy(ticker.Sell, amount2)
} else if (action == COVER_SHORT2) {
exchange.SetDirection("closesell")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount3) : exchange.Buy(ticker.Sell, amount3)
} 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)
}
}
Saya ingin menambah satu stok kosong, dan saya ingin tahu bagaimana saya boleh menambahnya.
Awan ringanCara saya adalah dengan mendapatkan jumlah simpanan semasa, dan apabila simpanan selesai, jumlah dalam parameter adalah jumlah simpanan.
Awan ringan https://www.fmz.com/api#exchange.getposition
q631207207Bolehkah anda beritahu saya cara menulisnya?