Please tell me how to add a flat full store.

Author: q631207207, Created: 2022-05-16 23:37:41, Updated:

/*

// The parameter // var isMarketOrder = false // var QuotePrecision is equal to 2 // var BasePrecision is equal to 2

// The futures parameter //var Ct = swing swap

// global variable var BUY = buy and sell var SELL = Sell the shell var LONG = long shrimp var SHORT = shortened var COVER_LONG = cover_long // more than or equal to -1 var COVER_SHORT = cover_short // open space-1 var COVER_LONG1 = cover_long1 tonne // is also -2 var COVER_SHORT1 = cover_short1 // flat space-2 var COVER_LONG2 = cover_long2 = cover_long2 is equal to -3 var COVER_SHORT2 = cover_short2 // flat-3

var SPK = “spk” var BPK = “bpk” var Ct = “swap”

function main (()) { // Clear logs, if not needed, can be deleted LogReset ((1)) is a

// 设置精度
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)
}

}

I'm going to add a flat stock, and I'm going to add a flat stock, and I'm going to add a flat stock.


More

Light cloudsMy whole way is to get the current number of holdings, and then the number in the parameter is the number of holdings when the holdings are tied.

Light clouds https://www.fmz.com/api#exchange.getposition

q631207207Can you tell me how to write it?