Administrator
3 days ago 80e9bd1f5a167a5c7c76b2d61919aa163664076d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package com.xcong.excoin.modules.gateApi;
 
// Import classes:
import io.gate.gateapi.ApiClient;
import io.gate.gateapi.ApiException;
import io.gate.gateapi.Configuration;
import io.gate.gateapi.GateApiException;
import io.gate.gateapi.api.FuturesApi;
import io.gate.gateapi.auth.*;
import io.gate.gateapi.models.*;
import io.gate.gateapi.api.AccountApi;
 
public class Example {
    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();
        defaultClient.setBasePath("https://api-testnet.gateapi.io/api/v4");
//        defaultClient.setBasePath("https://api.gateio.ws/api/v4");
 
        // Configure APIv4 authorization: apiv4
        defaultClient.setApiKeySecret("d90ca272391992b8e74f8f92cedb21ec", "1861e4f52de4bb53369ea3208d9ede38ece4777368030f96c77d27934c46c274");
 
        try {
 
            String contract = "ETH_USDT";
            String settle = "usdt";
            //保证金模式 isolated/cross
            String marginMode = "cross";
            AccountApi accountApi = new AccountApi(defaultClient);
            AccountDetail accountDetail = accountApi.getAccountDetail();
            System.out.println(accountDetail.toString());
 
 
            /**
             * 获取账户余额
             */
            FuturesApi futuresApi = new FuturesApi(defaultClient);
            FuturesAccount futuresAccount = futuresApi.listFuturesAccounts(settle);
            String available = futuresAccount.getAvailable();
            String result = "可用余额:" + available;
            System.out.println(result);
 
            /**
             * 设置仓位模式
             * 可选值:single, dual, dual_plus,分别表示单向、双向、分仓
             */
 
            String position_mode = "dual";
            String positionMode = futuresAccount.getPositionMode();
            if (!position_mode.equals(positionMode)){
                futuresApi.setPositionMode(settle, position_mode);
            }
 
            /**
             * 设置杠杆倍数(双向持仓模式专用)
             * 设置合理的杠杆倍数,不能为0
             */
            String leverage = "25";
            futuresApi.updateDualModePositionLeverageCall(
                    settle,
                    contract,
                    leverage,
                    marginMode,
                    null);
        } catch (GateApiException e) {
            System.err.println(String.format("Gate api exception, label: %s, message: %s", e.getErrorLabel(), e.getMessage()));
            e.printStackTrace();
        } catch (ApiException e) {
            System.err.println("Exception when calling AccountApi#getAccountDetail");
            System.err.println("Status code: " + e.getCode());
            System.err.println("Response headers: " + e.getResponseHeaders());
            e.printStackTrace();
        }
    }
}