0
tập trung vào
0
Người theo dõi

Nền tảng Ftx thiết lập lệnh chờ để giao dịch hay lệnh sẽ được thanh toán theo giá thị trường?

Được tạo ra trong: 2021-08-12 10:19:51, cập nhật trên:
comments   4
hits   1227

Nó được tạo ra bởi một nhóm các nhà phát triển. Trong một bài đăng trên blog của mình, ông nói: Trong khi đó, một số người khác cũng đã sử dụng nó. Bạn có thể làm điều đó bằng cách sử dụng một số từ khóa.

Có một số giao dịch được thực hiện bởi các nhà giao dịch khác nhau, hoặc có nhiều người giao dịch.

/*

// tham số // var IsMarketOrder = false // var QuotePrecision = 2 // var BasePrecision = 2

// tham số tương lai // var Ct = “”

// biến toàn cầu var BUY = “xxx” var SELL = “xxxxx” var LONG = “long” var SHORT = “short” var COVER_LONG = “cover_long” var COVER_SHORT = “cover_short” var SPK = “sell” var BPK = “buy”

function main() { // Hủy sổ nhật ký nếu không cần thiết 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)
}

}