218 lines
6.9 KiB
Go
218 lines
6.9 KiB
Go
package binanceservice
|
|
|
|
import (
|
|
"fmt"
|
|
"go-admin/app/admin/models"
|
|
"go-admin/common/helper"
|
|
"go-admin/pkg/utility"
|
|
"go-admin/pkg/utility/snowflakehelper"
|
|
"testing"
|
|
|
|
"github.com/bytedance/sonic"
|
|
|
|
"github.com/shopspring/decimal"
|
|
"gorm.io/driver/mysql"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func TestCancelFutClosePosition(t *testing.T) {
|
|
dsn := "root:root@tcp(192.168.123.216:3306)/gp-bian?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
|
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
var apiUserInfo models.LineApiUser
|
|
db.Model(&models.LineApiUser{}).Where("id = 21").Find(&apiUserInfo)
|
|
err := CancelFutClosePosition(apiUserInfo, "ADAUSDT", "BUY", "SHORT")
|
|
if err != nil {
|
|
t.Log("err:", err)
|
|
}
|
|
fmt.Println("成功")
|
|
}
|
|
|
|
func TestDecimal(t *testing.T) {
|
|
|
|
fromString, err := decimal.NewFromString("")
|
|
if err != nil {
|
|
fmt.Println("err:", err)
|
|
}
|
|
fmt.Println(fromString)
|
|
}
|
|
|
|
func TestPositionV3(t *testing.T) {
|
|
api := FutRestApi{}
|
|
dsn := "root:root@tcp(192.168.1.12:3306)/gp-bian?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
|
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
var apiUserInfo models.LineApiUser
|
|
db.Model(&models.LineApiUser{}).Where("id = 21").Find(&apiUserInfo)
|
|
err := CancelFutClosePosition(apiUserInfo, "ADAUSDT", "BUY", "SHORT")
|
|
if err != nil {
|
|
t.Log("err:", err)
|
|
}
|
|
|
|
v3, err := api.GetPositionV3(&apiUserInfo, "DOGEUSDT")
|
|
if err != nil {
|
|
t.Log("err:", err)
|
|
}
|
|
fmt.Println(v3)
|
|
}
|
|
|
|
func TestCancelSpotOrder(t *testing.T) {
|
|
//dsn := "root:root@tcp(192.168.1.12:3306)/gp-bian?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
|
//db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
//var apiUserInfo models.LineApiUser
|
|
//db.Model(&models.LineApiUser{}).Where("id = 21").Find(&apiUserInfo)
|
|
//api := SpotRestApi{}
|
|
//dto.CancelOpenOrderReq{
|
|
// ApiId: 21,
|
|
// Symbol: "ADAUSDT",
|
|
// OrderSn: utility.Int64ToString(snowflakehelper.GetOrderId()),
|
|
// OrderType: 0,
|
|
//}
|
|
//api.CancelOpenOrders()
|
|
}
|
|
|
|
func TestCancelAllFutOrder(t *testing.T) {
|
|
dsn := "root:root@tcp(192.168.1.12:3306)/gp-bian?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
|
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
var apiUserInfo models.LineApiUser
|
|
db.Model(&models.LineApiUser{}).Where("id = 21").Find(&apiUserInfo)
|
|
api := FutRestApi{}
|
|
api.CancelAllFutOrder(apiUserInfo, "TRUMPUSDT")
|
|
}
|
|
|
|
//func TestName(t *testing.T) {
|
|
// api := FutRestApi{}
|
|
// dsn := "root:root@tcp(192.168.1.12:3306)/gp-bian?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
|
// db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
// var apiUserInfo models.LineApiUser
|
|
// db.Model(&models.LineApiUser{}).Where("id = 21").Find(&apiUserInfo)
|
|
// api.CancelBatchFutOrder(apiUserInfo, "ADAUSDT",[]{""})
|
|
//}
|
|
|
|
func TestFutOrderPalce(t *testing.T) {
|
|
api := FutRestApi{}
|
|
dsn := "root:root@tcp(192.168.1.12:3306)/gp-bian?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
|
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
api.OrderPlace(db, FutOrderPlace{
|
|
ApiId: 21,
|
|
Symbol: "ADAUSDT",
|
|
Side: "SELL",
|
|
Quantity: decimal.NewFromFloat(7),
|
|
Price: decimal.NewFromFloat(0.9764),
|
|
SideType: "LIMIT",
|
|
OpenOrder: 0,
|
|
Profit: decimal.Zero,
|
|
StopPrice: decimal.Zero,
|
|
OrderType: "LIMIT",
|
|
NewClientOrderId: "367580922570080256",
|
|
})
|
|
}
|
|
|
|
func TestCancelOpenOrderByOrderSn(t *testing.T) {
|
|
api := SpotRestApi{}
|
|
dsn := "root:root@tcp(192.168.1.12:3306)/go_exchange_single?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
|
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
var apiUserInfo models.LineApiUser
|
|
db.Model(&models.LineApiUser{}).Where("id = ?", 50).Find(&apiUserInfo)
|
|
err := api.CancelOpenOrderByOrderSn(apiUserInfo, "TRUMPUSDT", "1698362708")
|
|
if err != nil {
|
|
t.Log("err:", err)
|
|
} else {
|
|
fmt.Println("成功")
|
|
}
|
|
}
|
|
|
|
func TestCancelOpenOrderBySymbol(t *testing.T) {
|
|
// api := SpotRestApi{}
|
|
dsn := "root:root@tcp(192.168.1.12:3306)/gp-bian?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
|
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
var apiUserInfo models.LineApiUser
|
|
db.Model(&models.LineApiUser{}).Where("id = ?", 10).Find(&apiUserInfo)
|
|
err := CancelSpotOrder("ADAUSDT", &apiUserInfo, "SELL")
|
|
if err != nil {
|
|
t.Log("err:", err)
|
|
} else {
|
|
fmt.Println("成功")
|
|
}
|
|
}
|
|
|
|
func TestDelRedisKeys(t *testing.T) {
|
|
//初始redis 链接
|
|
helper.InitDefaultRedis("192.168.1.12:6379", "", 0)
|
|
helper.InitLockRedisConn("192.168.1.12:6379", "", "0")
|
|
prefixs := []string{
|
|
"api_user_hold",
|
|
"spot_trigger_lock",
|
|
"fut_trigger_lock",
|
|
"fut_trigger_stop_lock",
|
|
"spot_trigger_stop_lock",
|
|
"spot_addposition_trigger",
|
|
"fut_addposition_trigger",
|
|
"spot_hedge_close_position",
|
|
"futures_hedge_close_position",
|
|
"spot_callback",
|
|
"fut_callback",
|
|
"holde_a",
|
|
"holde_b",
|
|
}
|
|
helper.DefaultRedis.DeleteKeysByPrefix(prefixs...)
|
|
}
|
|
|
|
func TestOpenOrders(t *testing.T) {
|
|
dsn := "root:root@tcp(192.168.1.12:3306)/gp-bian?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
|
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
var apiUserInfo models.LineApiUser
|
|
db.Model(&models.LineApiUser{}).Where("id = ?", 21).Find(&apiUserInfo)
|
|
client := GetClient(&apiUserInfo)
|
|
auth, _, err := client.SendSpotAuth("/api/v3/order", "GET", map[string]string{"symbol": "ADAUSDT", "orderId": "6001232151"})
|
|
if err != nil {
|
|
fmt.Println("err:", err)
|
|
}
|
|
m := make(map[string]interface{}, 0)
|
|
sonic.Unmarshal(auth, &m)
|
|
fmt.Println("m:", m)
|
|
}
|
|
|
|
func TestClosePosition(t *testing.T) {
|
|
endpoint := "/fapi/v1/order"
|
|
params := map[string]string{
|
|
"symbol": "ADAUSDT",
|
|
"type": "LIMIT",
|
|
"quantity": "5",
|
|
"newClientOrderId": utility.Int64ToString(snowflakehelper.GetOrderId()),
|
|
"positionSide": "SHORT",
|
|
}
|
|
params["side"] = "BUY"
|
|
params["price"] = "0.98"
|
|
params["timeInForce"] = "GTC"
|
|
dsn := "root:root@tcp(192.168.1.12:3306)/gp-bian?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
|
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
var apiUserInfo models.LineApiUser
|
|
db.Model(&models.LineApiUser{}).Where("id = ?", 21).Find(&apiUserInfo)
|
|
|
|
client := GetClient(&apiUserInfo)
|
|
resp, _, err := client.SendFuturesRequestAuth(endpoint, "POST", params)
|
|
fmt.Println("resp:", string(resp))
|
|
fmt.Println("err:", err)
|
|
|
|
}
|
|
|
|
func TestFutOrderPlace(t *testing.T) {
|
|
futureApi := FutRestApi{}
|
|
dsn := "root:root@tcp(192.168.1.12:3306)/go_exchange_single?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
|
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
err := futureApi.OrderPlace(db, FutOrderPlace{
|
|
ApiId: 50,
|
|
Symbol: "ADAUSDT",
|
|
Side: "SELL",
|
|
Quantity: decimal.NewFromFloat(8),
|
|
Price: decimal.NewFromFloat(0.7012),
|
|
SideType: "LIMIT",
|
|
OpenOrder: 0,
|
|
Profit: decimal.NewFromFloat(0.7017),
|
|
StopPrice: decimal.NewFromFloat(0.7017),
|
|
OrderType: "STOP",
|
|
NewClientOrderId: "5465465784222554477",
|
|
})
|
|
fmt.Println("err:", err)
|
|
|
|
}
|