v5sdkgo/ws/ws_priv_channel_test.go
2024-12-14 19:09:06 +08:00

248 lines
5.4 KiB
Go

package ws
import (
"fmt"
"log"
"testing"
"time"
)
const (
TRADE_ACCOUNT = iota
ISOLATE_ACCOUNT
CROSS_ACCOUNT
CROSS_ACCOUNT_B
)
func prework_pri(t int) *WsClient {
ep := "wss://wsaws.okex.com:8443/ws/v5/private"
var apikey, passphrase, secretKey string
// 把账号密码写这里
switch t {
case TRADE_ACCOUNT:
apikey = "fe468418-5e40-433f-8d04-04951286d417"
passphrase = "M4pw71Id"
secretKey = "D6D74DF9DD60A25BE2B27CA71D8F814D"
case ISOLATE_ACCOUNT:
apikey = "fe468418-5e40-433f-8d04-04951286d417"
passphrase = "M4pw71Id"
secretKey = "D6D74DF9DD60A25BE2B27CA71D8F814D"
case CROSS_ACCOUNT:
apikey = "fe468418-5e40-433f-8d04-04951286d417"
passphrase = "M4pw71Id"
secretKey = "D6D74DF9DD60A25BE2B27CA71D8F814D"
case CROSS_ACCOUNT_B:
apikey = "fe468418-5e40-433f-8d04-04951286d417"
passphrase = "M4pw71Id"
secretKey = "D6D74DF9DD60A25BE2B27CA71D8F814D"
}
r, err := NewWsClient(ep)
if err != nil {
log.Fatal(err)
}
err = r.Start()
if err != nil {
log.Fatal(err)
}
var res bool
//start := time.Now()
res, _, err = r.Login(apikey, secretKey, passphrase)
if res {
//usedTime := time.Since(start)
//fmt.Println("登录成功!",usedTime.String())
} else {
log.Fatal("登录失败!", err)
}
fmt.Println(apikey, secretKey, passphrase)
return r
}
// 账户频道 测试
func TestAccout(t *testing.T) {
r := prework_pri(CROSS_ACCOUNT)
var res bool
var err error
var args []map[string]string
arg := make(map[string]string)
//arg["ccy"] = "BTC"
args = append(args, arg)
start := time.Now()
res, _, err = r.PrivAccout(OP_SUBSCRIBE, args)
if res {
usedTime := time.Since(start)
fmt.Println("订阅所有成功!", usedTime.String())
} else {
fmt.Println("订阅所有成功!", err)
t.Fatal("订阅所有成功!", err)
}
time.Sleep(100 * time.Second)
start = time.Now()
res, _, err = r.PrivAccout(OP_UNSUBSCRIBE, args)
if res {
usedTime := time.Since(start)
fmt.Println("取消订阅所有成功!", usedTime.String())
} else {
fmt.Println("取消订阅所有失败!", err)
t.Fatal("取消订阅所有失败!", err)
}
}
// 持仓频道 测试
func TestPositon(t *testing.T) {
r := prework_pri(CROSS_ACCOUNT)
var err error
var res bool
var args []map[string]string
arg := make(map[string]string)
arg["instType"] = FUTURES
arg["uly"] = "BTC-USD"
//arg["instId"] = "BTC-USD-210319"
args = append(args, arg)
start := time.Now()
res, _, err = r.PrivPostion(OP_SUBSCRIBE, args)
if res {
usedTime := time.Since(start)
fmt.Println("订阅成功!", usedTime.String())
} else {
fmt.Println("订阅失败!", err)
t.Fatal("订阅失败!", err)
//return
}
time.Sleep(60000 * time.Second)
//等待推送
start = time.Now()
res, _, err = r.PrivPostion(OP_UNSUBSCRIBE, args)
if res {
usedTime := time.Since(start)
fmt.Println("取消订阅成功!", usedTime.String())
} else {
fmt.Println("取消订阅失败!", err)
t.Fatal("取消订阅失败!", err)
}
}
// 订单频道 测试
func TestBookOrder(t *testing.T) {
r := prework_pri(CROSS_ACCOUNT)
var err error
var res bool
var args []map[string]string
arg := make(map[string]string)
arg["instId"] = "BTC-USDT"
arg["instType"] = "ANY"
//arg["instType"] = "SWAP"
args = append(args, arg)
start := time.Now()
res, _, err = r.PrivBookOrder(OP_SUBSCRIBE, args)
if res {
usedTime := time.Since(start)
fmt.Println("订阅成功!", usedTime.String())
} else {
fmt.Println("订阅失败!", err)
t.Fatal("订阅失败!", err)
//return
}
time.Sleep(6000 * time.Second)
//等待推送
start = time.Now()
res, _, err = r.PrivBookOrder(OP_UNSUBSCRIBE, args)
if res {
usedTime := time.Since(start)
fmt.Println("取消订阅成功!", usedTime.String())
} else {
fmt.Println("取消订阅失败!", err)
t.Fatal("取消订阅失败!", err)
}
}
// 策略委托订单频道 测试
func TestAlgoOrder(t *testing.T) {
r := prework_pri(CROSS_ACCOUNT)
var err error
var res bool
var args []map[string]string
arg := make(map[string]string)
arg["instType"] = "SPOT"
args = append(args, arg)
start := time.Now()
res, _, err = r.PrivBookAlgoOrder(OP_SUBSCRIBE, args)
if res {
usedTime := time.Since(start)
fmt.Println("订阅成功!", usedTime.String())
} else {
fmt.Println("订阅失败!", err)
t.Fatal("订阅失败!", err)
//return
}
time.Sleep(60 * time.Second)
//等待推送
start = time.Now()
res, _, err = r.PrivBookAlgoOrder(OP_UNSUBSCRIBE, args)
if res {
usedTime := time.Since(start)
fmt.Println("取消订阅成功!", usedTime.String())
} else {
fmt.Println("取消订阅失败!", err)
t.Fatal("取消订阅失败!", err)
}
}
// 账户余额和持仓频道 测试
func TestPrivBalAndPos(t *testing.T) {
r := prework_pri(CROSS_ACCOUNT)
var err error
var res bool
var args []map[string]string
arg := make(map[string]string)
args = append(args, arg)
start := time.Now()
res, _, err = r.PrivBalAndPos(OP_SUBSCRIBE, args)
if res {
usedTime := time.Since(start)
fmt.Println("订阅成功!", usedTime.String())
} else {
fmt.Println("订阅失败!", err)
t.Fatal("订阅失败!", err)
//return
}
time.Sleep(600 * time.Second)
//等待推送
start = time.Now()
res, _, err = r.PrivBalAndPos(OP_UNSUBSCRIBE, args)
if res {
usedTime := time.Since(start)
fmt.Println("取消订阅成功!", usedTime.String())
} else {
fmt.Println("取消订阅失败!", err)
t.Fatal("取消订阅失败!", err)
}
}