币安量化交易
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
8.6 KiB

using Binance.Net.Clients;
using Binance.Net.Objects;
using Binance.TradeRobot.Model.Base;
using CryptoExchange.Net.Authentication;
using Newtonsoft.Json;
using SDKAdapter.APIClient;
using System;
namespace SDKTestConsole
{
internal class Program
{
private static System.Threading.Timer timer;
static void Main(string[] args)
{
var apiKey = "RsQ5RuhYbNRXCTGAQXhwb5Dt3jgPnwKXfR1OXz0qWmf3IsAC7zPQd14WGIr18rDA";
var secret = "yxW4PPb65rVpdo7fMt2mZcbNOtjOe3J4fMSRVtX5YJfj7kRzHW3dY6xfoW4jje1I";
var client = BaseAPIClient.Create(Enums.Exchange.Binance, 0, apiKey, secret);
//逐仓杠杆账户资产
var marginList = client.GetIsolatedMarginAccountAssets();
var s = JsonConvert.SerializeObject(marginList);
//查询最大借币额度
var maxLoan = client.QueryMaxLoanAmount("GMTUSDT");
//Console.WriteLine(maxLoan);
//借币
//var r1 = client.IsolatedMarginLoan("ETHUSDT", 10M);
//var r2 = client.IsolatedMarginLoan("ETHUSDT", 10M);
//Console.WriteLine(r2.AccountLoanAmount);
//还币
//var r3 = client.IsolatedMarginRepay("ETHUSDT", 20M);
//Console.WriteLine(r3);
var spotClientOption = new BinanceApiClientOptions()
{
BaseAddress = "https://api.binance.com",
ApiCredentials = new ApiCredentials(apiKey, secret)
};
var usdFuturesClientOption = new BinanceApiClientOptions()
{
BaseAddress = "https://fapi.binance.com",
ApiCredentials = new ApiCredentials(apiKey, secret)
};
var binanceClient = new BinanceClient(new BinanceClientOptions()
{
UsdFuturesApiOptions = usdFuturesClientOption,
SpotApiOptions = spotClientOption
});
var binanceSocketClient = new BinanceSocketClient();
//市价买币
//var r = client.IsolatedMarginPlaceOrder("ETHUSDT",
// Enums.TradeDirection.Buy,
// Enums.OrderType.MARKET,
// quoteAmount: 20M);
//var r = binanceClient.SpotApi.Trading.PlaceMarginOrderAsync("ETHUSDT",
// Binance.Net.Enums.OrderSide.Buy,
// Binance.Net.Enums.SpotOrderType.Market,
// quoteQuantity: 30M, //报价币金额
// //quantity: 100M,
// //timeInForce: Binance.Net.Enums.TimeInForce.GoodTillCanceled,
// //stopPrice: 1899M,
// isIsolated: true,
// orderResponseType: Binance.Net.Enums.OrderResponseType.Full).Result;
//
//市价卖币
//var qty = 0.00985570M.CutDecimal(4);
//var r = client.IsolatedMarginPlaceOrder("ETHUSDT",
// Enums.TradeDirection.Sell,
// Enums.OrderType.MARKET,
// quantity: qty);
//var r = binanceClient.SpotApi.Trading.PlaceMarginOrderAsync("ETHUSDT",
// Binance.Net.Enums.OrderSide.Sell,
// Binance.Net.Enums.SpotOrderType.Market,
// quantity: 0.0098M,
// //quoteQuantity: 20M, //报价币金额
// //quantity: 100M,
// //timeInForce: Binance.Net.Enums.TimeInForce.GoodTillCanceled,
// //stopPrice: 1899M,
// isIsolated: true,
// orderResponseType: Binance.Net.Enums.OrderResponseType.Full).Result;
//止损卖币
//var qty = 0.01224350M.CutDecimal(4);
//var r = client.IsolatedMarginPlaceOrder("ETHUSDT",
// Enums.TradeDirection.Sell,
// Enums.OrderType.STOP_LOSS_LIMIT,
// quantity: qty,
// price: 2033M,
// stopPrice: 2035M);
//var r = binanceClient.SpotApi.Trading.PlaceMarginOrderAsync("ETHUSDT",
// Binance.Net.Enums.OrderSide.Sell,
// Binance.Net.Enums.SpotOrderType.StopLossLimit,
// quantity: 0.0149M,
// price: 1699M,
// //quoteQuantity: 20M, //报价币金额
// //quantity: 100M,
// timeInForce: Binance.Net.Enums.TimeInForce.GoodTillCanceled,
// stopPrice: 1699M,
// isIsolated: true,
// orderResponseType: Binance.Net.Enums.OrderResponseType.Full).Result;
//
//var s = JsonConvert.SerializeObject(r);
//Console.WriteLine(s);
//
//var r1 = binanceClient.SpotApi.Trading.PlaceMarginOrderAsync("ETHUSDT",
// Binance.Net.Enums.OrderSide.Sell,
// Binance.Net.Enums.SpotOrderType.StopLossLimit,
// quantity: 0.0149M,
// price: 1699M,
// //quoteQuantity: 20M, //报价币金额
// //quantity: 100M,
// timeInForce: Binance.Net.Enums.TimeInForce.GoodTillCanceled,
// stopPrice: 1699M,
// isIsolated: true,
// orderResponseType: Binance.Net.Enums.OrderResponseType.Full).Result;
//var s1 = JsonConvert.SerializeObject(r1);
//var s = JsonConvert.SerializeObject(r);
//Console.WriteLine(s);
//var orderClient = new BinanceSpotOrderWebSocketClient(Enums.BusinessType.IsolateMargin, 0, apiKey, secret, LogManager.GetCurrentClassLogger());
//orderClient.Start("ETHUSDT");
//timer = new System.Threading.Timer(new System.Threading.TimerCallback(Callback), null, -1, 5000);
//while (true)
//{
// var input = Console.ReadLine();
// if (input == "start")
// timer.Change(3000, 5000);
// else if (input == "stop")
// timer.Change(-1, 5000);
// else if (input == "close")
// {
// timer.Dispose();
// break;
// }
//}
Console.ReadKey();
}
private static void Callback(object? o)
{
Console.WriteLine($"Callback on {DateTime.Now}");
}
}
}