buy sell 모두 해결

This commit is contained in:
kyh
2024-10-17 12:40:38 +09:00
parent 29248e8d19
commit bf0e2ce980
3 changed files with 32 additions and 28 deletions

View File

@@ -83,14 +83,13 @@ namespace BitgetAPI.IndicatorConditionSetup
signals_SU.Clear();
//시작시 한번만 하면됨(양방향)
//ChangeFuturePositionMode(FuturePositionMode.hedge_mode);
ChangeFuturePositionMode(FuturePositionMode.hedge_mode);
GetFutureAccountList();
//order 로직
//FutureOrder("XRPUSDT", FutureMarginMode.isolated, 10, (double)0.531, FutureSide.BuyShort, OrderType.limit, 10);
var orderData = FutureOrder("XRPUSDT", FutureMarginMode.isolated, 10, (double)0.541, FutureSide.BuyShort, OrderType.limit, 10);
var sellData = FutureOrder("XRPUSDT", FutureMarginMode.isolated, 10, 0, FutureSide.SellShort, OrderType.market, 10, "1230644068203786241");
// 추후 공통화 및 소스정리 필요
while (true)
@@ -1091,13 +1090,13 @@ namespace BitgetAPI.IndicatorConditionSetup
if (futureSide == FutureSide.BuyShort)
{
id = new Guid().ToString();
id = Guid.NewGuid().ToString();
side = "sell";
tradeSide = "open";
}
else if (futureSide == FutureSide.BuyLong)
{
id = new Guid().ToString();
id = Guid.NewGuid().ToString();
side = "buy";
tradeSide = "Open";
}
@@ -1125,9 +1124,9 @@ namespace BitgetAPI.IndicatorConditionSetup
{
//change margin mode 이후 leverage 처리 해야 함
var changeMarginModeStr = "{\"symbol\": \"" + symbol + "\", \"productType\": \"usdt-futures\", \"marginCoin\": \"USDT\", \"marginMode\": \"" + Utils.Convertor.GetEnumDescription((Enum)marginMode) + "\"}";
var nvcMargin = new NameValueCollection {
{"ACCESS-KEY", YHKIM_AccessKey},
{"ACCESS-KEY", YHKIM_AccessKey},
{"ACCESS-SIGN", GenerateSignString(timestamp, "POST", "/api/v2/mix/account/set-margin-mode", "", changeMarginModeStr, YHKIM_SecreteKey)},
{"ACCESS-PASSPHRASE", YHKIM_PassphraseKey },
{"ACCESS-TIMESTAMP", timestamp}
@@ -1152,23 +1151,24 @@ namespace BitgetAPI.IndicatorConditionSetup
return null;
}
}
else
{
// sell은 ClientOID 가 필요
var orderDetailStr = "/api/v2/mix/order/detail";
timestamp = (((DateTimeOffset)timeSpan).ToUnixTimeSeconds() * 1000).ToString();
var orderDetailnvc = new NameValueCollection {
{"ACCESS-KEY", YHKIM_AccessKey},
{"ACCESS-SIGN", GenerateSignString(timestamp, "GET", orderDetailStr, "symbol="+symbol.ToString()+"&orderId="+id.ToString()+"&productType=usdt-future", null, YHKIM_SecreteKey) },
{"ACCESS-PASSPHRASE", YHKIM_PassphraseKey },
{"ACCESS-TIMESTAMP",timestamp}
};
//else
//{
// // sell은 ClientOID 가 필요
// var orderDetailStr = "/api/v2/mix/order/detail";
// timestamp = (((DateTimeOffset)timeSpan).ToUnixTimeSeconds() * 1000).ToString();
// var orderDetailnvc = new NameValueCollection {
// {"ACCESS-KEY", YHKIM_AccessKey},
// {"ACCESS-SIGN", GenerateSignString(timestamp, "GET", orderDetailStr, "symbol="+symbol.ToString()+"&orderId="+id.ToString()+"&productType=USDT-FUTURES", null, YHKIM_SecreteKey) },
// {"ACCESS-PASSPHRASE", YHKIM_PassphraseKey },
// {"ACCESS-TIMESTAMP",timestamp}
// };
var orderDetail = (Dictionary<string, object>)WebConnection.SendWebServer(ExchangeWebReqType.BitgetOrderDetail_Future, BitgetURL_OrderDetail_Future, null, MCandleTimeType.M1, "", "", orderDetailnvc);
if (orderDetail["msg"]?.ToString() != "success") return null;
var data = JsonConvert.DeserializeObject<Dictionary<string, object>>(JsonConvert.SerializeObject(orderDetail["data"]));
id = data["clientOid"].ToString();
}
// var orderDetail = (Dictionary<string, object>)WebConnection.SendWebServer(ExchangeWebReqType.BitgetOrderDetail_Future, BitgetURL_OrderDetail_Future + "?symbol=" + symbol.ToString() + "&orderId=" + id.ToString() + "&productType=USDT-FUTURES", null, MCandleTimeType.M1, "", "", orderDetailnvc);
// if (orderDetail == null || orderDetail["msg"]?.ToString() != "success") return null;
// var data = JsonConvert.DeserializeObject<Dictionary<string, object>>(JsonConvert.SerializeObject(orderDetail["data"]));
// //id = data["clientOid"].ToString();
//}
var postStr = "{\"symbol\": \"" + symbol + "\", \"productType\": \"usdt-futures\", \"marginMode\": \"" + Utils.Convertor.GetEnumDescription((Enum)marginMode) + "\", \"marginCoin\": \"USDT\", \"size\": \""
+ size.ToString() + "\", \"price\": \"" + price.ToString() + "\", \"side\": \"" + side + "\", " + "\"tradeSide\": \"" + tradeSide + "\", \"orderType\": \"" + Utils.Convertor.GetEnumDescription((Enum)orderType)