2시간 3시간봉 추가

This commit is contained in:
kyh
2024-10-31 10:46:24 +09:00
parent ce79a8ac7b
commit 32d24ea61a
5 changed files with 45 additions and 15 deletions

View File

@@ -4,8 +4,10 @@ using BitgetAPI.IndicatorConditionSetup;
using BitgetAPI.WebService;
using DevExpress.Internal.WinApi.Windows.UI.Notifications;
using DevExpress.Utils.IoC;
using DevExpress.Xpo.Logger;
using DevExpress.XtraPrinting.Native;
using Newtonsoft.Json;
using Serilog;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
@@ -117,6 +119,7 @@ namespace BitgetAPI.IndicatorConditionSetup
public void calProcess()
{
IchimokuConditionSetup ichimokuConditionSetup = new IchimokuConditionSetup();
MovingAverageConditionSetup movingAverageConditionSetup = new MovingAverageConditionSetup();
@@ -262,8 +265,6 @@ namespace BitgetAPI.IndicatorConditionSetup
if (checked구름떼상향돌파 && candleData_전봉.Open < candleData_전봉.IchimokData.상한선 && candleData.Open > candleData.IchimokData.상한선 && candleData.Low > candleData.IchimokData.상한선
&& candleData.Close > candleData.IchimokData.상한선)
{
var indicatorPrice = candleData.Open;
var indicatorRate = (candleData.Close / indicatorPrice) * 100 - 100;
@@ -372,15 +373,15 @@ namespace BitgetAPI.IndicatorConditionSetup
var Bol12 = candleData.movingAverageDataList[12].BolangerValue;
var Bol24 = candleData.movingAverageDataList[24].BolangerValue;
if ((int)interval != 5)
//5분봉이 default이지만 15분봉으로 변경
if ((int)interval != 15)
{
continue;
}
#region 15분봉 처리
//60분봉 관련 처리
var candleDatas15 = findedMarket.candleDataList[MCandleTimeType.M15];
//15분봉이지만 60분봉으로 변경
var candleDatas15 = findedMarket.candleDataList[MCandleTimeType.H1];
var candleDatas15_정렬 = candleDatas15.ToList().OrderBy(i => i.Argument).ToList();
var candleData15 = candleDatas15.Find(i => i.Argument == candleDatas15_정렬.Last().Argument);
@@ -434,8 +435,8 @@ namespace BitgetAPI.IndicatorConditionSetup
#endregion
#region 1분봉 처리
var candleDatas1 = findedMarket.candleDataList[MCandleTimeType.M1];
//1분봉이지만 3분봉으로 변경
var candleDatas1 = findedMarket.candleDataList[MCandleTimeType.M3];
var candleDatas1_정렬 = candleDatas1.ToList().OrderBy(i => i.Argument).ToList();
var candleData1 = candleDatas1.Find(i => i.Argument == candleDatas1_정렬.Last().Argument);
@@ -483,7 +484,8 @@ namespace BitgetAPI.IndicatorConditionSetup
#endregion
#region 60분봉 처리
var candleDatas60 = findedMarket.candleDataList[MCandleTimeType.H1];
//60분봉이지만 180분 처리
var candleDatas60 = findedMarket.candleDataList[MCandleTimeType.H3];
var candleDatas60_정렬 = candleDatas60.ToList().OrderBy(i => i.Argument).ToList();
var candleData60 = candleDatas60.Find(i => i.Argument == candleDatas60_정렬.Last().Argument);
@@ -816,7 +818,15 @@ namespace BitgetAPI.IndicatorConditionSetup
{
double.TryParse(orderDic["Size"].ToString(), out var size);
var sellOrder = FutureOrder(market, FutureMarginMode.isolated, size, 0, FutureSide.SellLong, OrderType.market, YHKIM_Leverage, orderDic["orderId"].ToString());
var sellOrderDic = JsonConvert.DeserializeObject<Dictionary<string, string>>(JsonConvert.SerializeObject(sellOrder["data"]));
if (sellOrder != null)
{
var sellOrderDic = JsonConvert.DeserializeObject<Dictionary<string, string>>(JsonConvert.SerializeObject(sellOrder["data"]));
}
else
{
Log.Error("Sell 안됨 확인 필요");
}
double.TryParse(orderDic["Price"].ToString(), out var buyPriceValue);
//var detail = GetFutureOrderDetail(market, sellOrderDic["orderId"]);
//var detailOrderDic = JsonConvert.DeserializeObject<Dictionary<string, string>>(JsonConvert.SerializeObject(detail["data"]));
@@ -1119,7 +1129,17 @@ namespace BitgetAPI.IndicatorConditionSetup
{
double.TryParse(orderDic["Size"].ToString(), out var size);
var sellOrder = FutureOrder(market, FutureMarginMode.isolated, size, 0, FutureSide.SellShort, OrderType.market, YHKIM_Leverage, orderDic["orderId"].ToString());
var sellOrderDic = JsonConvert.DeserializeObject<Dictionary<string, string>>(JsonConvert.SerializeObject(sellOrder["data"]));
if (sellOrder != null)
{
var sellOrderDic = JsonConvert.DeserializeObject<Dictionary<string, string>>(JsonConvert.SerializeObject(sellOrder["data"]));
}
else
{
Log.Error("Sell 안됨 확인 필요");
}
double.TryParse(orderDic["Price"].ToString(), out var buyPriceValue);
//var detail = GetFutureOrderDetail(market, sellOrderDic["orderId"]);
//var detailOrderDic = JsonConvert.DeserializeObject<Dictionary<string, string>>(JsonConvert.SerializeObject(detail["data"]));
@@ -1330,7 +1350,7 @@ namespace BitgetAPI.IndicatorConditionSetup
var result = CancelFutureOrder(symbol, id);
if (result == null || result["msg"]?.ToString() != "success")
{
Console.WriteLine("Sell에서 Cancel관련 Error");
Log.Error("Sell에서 Cancel관련 Error");
}
}